- MATH.APP.210
- 6. Tilastollinen testaaminen
- 6.4 Varianssien testaus
Varianssien testaus¶
Olkoon X_1,X_2,\ldots,X_n otos satunnaismuuttujasta X\sim\rN(\mu, \sigma^2), jonka odotusarvo ja varianssi ovat tuntemattomia. Varianssin nollahypoteesin
testaaminen lähtee liikkeelle havainnosta, että sen sisältävä otossuure
Nollahypoteesin ollessa voimassa siis testisuureeksi saadaan
missä n on otoskoko ja S^2 muuttujan X otosvarianssi. Riippuen vaihtoehtoisesta hypoteesista merkitsevyystasoa \alpha vastaava kriittinen alue valitaan yksi- tai kaksiosaisena ei-symmetrisen \chi^2-jakauman toisesta tai molemmista reunoista. Kriittisen alueen muodot ja p-arvot on tiivistetty seuraavaan taulukkoon, jossa testisuureelle W realisoitunutta arvoa merkitään symbolilla w, ja merkinnöillä w_{1, \gamma} ja w_{2, \gamma} tarkoitetaan lukuja, joille P(W < w_{1, \gamma}) = \gamma ja P(W < w_{2, \gamma}) = 1 - \gamma.
Esimerkki 6.4.1
Oletetaan, että mittaustulos X on normaalijakaumasta X\sim\rN(\mu, \sigma^2) ja että aikaisempien tulosten perusteella varianssiksi on arvioitu \sigma^2=1100. Nyt halutaan tietää, onko varianssi pysynyt ennallaan ja suoritetaan 11 mittausta ja saadaan mittaustulokset 453, 460, 351, 421, 339, 439, 402, 422, 470, 310, 416. Suorita hypoteesin testaus 1~\%:n merkitsevyystasolla.
Nyt nollahypoteesi on muotoa H_0 : \sigma^2=1100 ja \alpha = 0.01. Realisoitunut otosvarianssi s^2 \approx 2761.1 (Matlabin/R:n funktio var
). Tämän perusteella näyttäisi siltä, että jos varianssi on muuttunut, se on kasvanut. Valitaan vaihtoehtoiseksi hypoteesiksi siis H_1 : \sigma^2>1100.
Testisuure ja sen jakauma on
ja testisuureelle realisoituu arvo w \approx 25.1007. Kriittinen alue on jakauman oikeassa reunassa, ja taulukon vapausastelukua 10 vastaavalta riviltä, tai Matlabin komennolla chi2inv(1 - 0.01, 10)
/ R-komennolla qchisq(1 - 0.01, 10)
arvioidaan, että w_{2, \alpha} \approx 23.2093. Kriittinen alue on siis väli (23.2093, \infty) ja testisuureen realisoitunut arvo kuuluu sille. Nollahypoteesi hylätään ja päätellään, että todellinen varianssi on todennäköisesti suurempi kuin 1100. Testin p-arvoksi voidaan laskea Matlab-komennolla
1 - chi2cdf(25.1007, 10) % Matlab 1 - pchisq(25.1007, 10) # R
p = 1 - P(W < w) \approx 0.0052, mikä luonnollisesti johtaa samaan johtopäätökseen.
Esimerkki 6.4.2
Edellisessä esimerkissä on käytössä myös alkuperäinen havaintoaineisto, jolloin testaus voidaan tehdä Matlabin vartest
-funktiolla. Tallennetaan arvot pystyvektoriksi
x = [453, 460, 351, 421, 339, 439, 402, 422, 470, 310, 416]'
Tämän ns. varianssin \chi^2-testin nollahypoteesina H_0: \sigma=\sigma_0 voi suorittaa Matlabin komennolla
[h,p,ci,stats] = vartest(x, 1100, 'Tail','right', 'Alpha', 0.01)
missä
\begin{array}{lll} & \texttt{x} & \text{muuttuja } x \text{ vektorina} \\ & \texttt{1100} & \text{nollahypoteesin mukainen varianssin arvo} \\ & \texttt{'Tail'} & \text{riippuen vaihtoehtoisesta hypoteesista tämän jälkeen annetaan} \\ & & \texttt{'left' } (H_1: \sigma^2<\sigma^2_0), \texttt{ 'right' } (H_1: \sigma^2>\sigma^2_0) \text{ tai} \\ & & \texttt{'both' } (H_1: \sigma^2\ne\sigma^2_0). \text{ Oletusarvona on } \texttt{'both'} \\ & \texttt{'Alpha'} & \text{tämän jälkeen annetaan merkitsevyystaso } \alpha. \text{ Oletusarvona on } 0.05. \end{array}
Tuloksena saadaan
\begin{array}{lll} & \texttt{h} & 0, \text{ jos } H_0 \text{ jää voimaan; } 1, \text{jos } H_0 \text{ hylätään} \\ & \texttt{p} & \text{testin } p \text{-arvo}\\ & \texttt{ci} & \text{otosvarianssin luottamusväli. Vaihtoehtoisen hypoteesin mukaan joko}\\ & & \text{kaksi- tai yksisuuntainen luottamusväli}\\ & \texttt{stats} & \text{tietoja testisuureesta: arvo, vapausaste.}\\ \end{array}
R:llä varianssin testaamiseen löytyy funktio paketista PairedData. Asenna tarvittaessa install.packages("PairedData")
ja ota käyttöön library(PairedData)
.
Tallennetaan arvot vektoreiksi
x <- c(453, 460, 351, 421, 339, 439, 402, 422, 470, 310, 416)
Testaus saadaan edellä esitellyllä funktiolla Var.test
(koko komento yhdelle riville)
Var.test( x, ratio = 1100, alternative = "greater", conf.level = 0.95)
missä
\begin{array}{lll} & \texttt{x} & \text{muuttuja } x \text{ vektorina} \\ & \texttt{ratio} & \text{annetaan nollahypoteesin mukainen varianssi } \sigma_0 \\ & \texttt{alternative} & \text{riippuen vaihtoehtoisesta hypoteesista arvona annetaan} \\ & & \texttt{"less" } (H_1: \sigma^2<\sigma^2_0), \texttt{ "greater" } (H_1: \sigma^2>\sigma^2_0) \text{ tai} \\ & & \texttt{"two.sided" } (H_1: \sigma^2\ne\sigma^2_0). \text{ Oletusarvona on } \texttt{"two.sided"} \\ & \texttt{conf.level} & \text{arvona annetaan } 1-\alpha. \end{array}
Vastauksessa annetaan testisuureen arvo t, p-arvo, otoskeskiarvot ja otoskeskiarvojen erotuksen luottamusväli vaihtoehtoisen hypoteesin mukaan yksi- tai kaksisuuntaisena.
Kahden varianssin yhtäsuuruuden testaus¶
Myös kahden populaation varianssien yhtäsuuruutta voidaan testata, mutta sitä varten tarvitaan uusi jakauma.
Määritelmä 6.4.3
Jatkuva satunnaismuuttuja F noudattaa \rF-jakaumaa vapausasteluvuin n_1 ja n_2 (\rF distribution with parameters n_1 and n_2), F \sim \rF(n_1, n_2), jos sen tiheysfunktio
missä \Gamma(t) = \int_{0}^{\infty}e^{-x}x^{t - 1}\,\rd x on Eulerin gammafunktio. \rF-jakaumaa kutsutaan myös Fisherin tai Snedecorin jakaumaksi.
Liitetaulukoista löytyy tai valmisohjelmien (Matlab, R) funktioilla voi laskea muuttujan F \sim \rF(n_1, n_2) kertymäfunktion F(x)=P(F\leq x) ja sen käänteisfunktion arvoja.
Esimerkki 6.4.4
Oletetaan, että F \sim \rF(10, 15) ja tutkitaan mitä ovat luvut f_1 ja f_2, kun P(F \leq f_1) = 0.95 ja P(F \geq f_2) = 0.01. Taulukoiden arvot on rajattu kertymäfunktioiden arvoihin 0.95, 0.975 ja 0.99, jolloin ensimmäisestä taulukosta luetaan, että f_1 \approx 2.54 ja kolmannesta että f_2 \approx 3.80. Matlabin komentojen
finv(0.95, 10, 15) % Matlab, f1 finv(1 - 0.01, 10, 15) % Matlab, f2 qf(0.95, 10, 15) # R, f1 qf(1 - 0.01, 10, 15) # R, f2
avulla saadaan tarkemmat likiarvot f_1 \approx 2.5437 ja f_2 \approx 3.8049.
Harjoitustehtäväksi jätetään osoittaa, että jos F \sim \rF(n_1, n_2), niin
Sen seurauksena ehto P(F \leq x) = \alpha on yhtäpitävää ehdon P\left(\frac{1}{F} \geq \frac{1}{x}\right) = \alpha, eli
Tämä laajentaa \rF-jakauman taulukoiden käyttökelpoisuutta myös tapauksiin, joissa kertymäfunktion arvo P(F \leq x) \in \{0.05, 0.025, 0.01\}. Yksinkertaisempaa, tarkempaa ja yleisemmin toimivaa on kuitenkin hyödyntää ohjelmistojen kertymäfunktion käänteisfunktiota.
Erityisesti kahden \chi^2-jakautuneen satunnaismuuttujan sopivasti painotettu osamäärä on \rF-jakautunut.
Lause 6.4.5
Oletetaan, että satunnaismuuttujat W_1\sim\chi^2(n_1) ja W_2\sim\chi^2(n_2) ovat riippumattomia. Tällöin satunnaismuuttuja
\rF-jakaumaa käytetään normaalijakautuneiksi oletettujen satunnaismuuttujien varianssien yhtäsuuruuden testaamiseen seuraavan tuloksen perusteella.
Lause 6.4.6
Olkoot X_1, X_2, \ldots, X_n ja Y_1, Y_2, \ldots, Y_m otoksia riippumattomista satunnaismuuttujista X \sim \rN(\mu_X, \sigma_X^2) ja Y \sim \rN(\mu_Y, \sigma_Y^2). Tällöin
missä S_X^2 ja S_Y^2 ovat muuttujien X ja Y otosvarianssit.
Koska muuttujat X ja Y ovat riippumattomia, myös S_X^2 ja S_Y^2 ovat riippumattomia. Lauseen 5.3.7 mukaan
joten edellisen lauseen nojalla
kuten väitettiinkin.
Jos nyt X_1, X_2, \ldots, X_n ja Y_1, Y_2, \ldots, Y_m ovat otoksia riippumattomista normaalijakautuneista muuttujista X ja Y, joiden tuntemattomat varianssit ovat \sigma_X^2 ja \sigma_Y^2, niin
missä S_X^2 ja S_Y^2 ovat muuttujien X ja Y otosvarianssit. Yhtäsuuruustestin nollahypoteesiksi asetetaan H_0 : \sigma_X^2 = \sigma_Y^2, ja sen voimassa ollessa
joten valitaan se testisuureeksi. Riippuen vaihtoehtoisesta hypoteesista merkitsevyystasoa \alpha vastaava kriittinen alue valitaan yksi- tai kaksiosaisena epäsymmetrisen \rF-jakauman toisesta tai molemmista reunoista. Kriittisten alueiden muodot ja p-arvot on tiivistetty seuraavaan taulukkoon, jossa testisuureelle F realisoitunutta arvoa merkitään symbolilla f, ja merkinnöillä f_{1, \gamma} ja f_{2, \gamma} tarkoitetaan lukuja, joille P(F < f_{1, \gamma}) = \gamma ja P(F < f_{2, \gamma}) = 1 - \gamma.
Esimerkki 6.4.7
Kurssin A tenttiin osallistui 51 opiskelijaa ja tulosten otosvarianssi s_A^2=478. Rinnakkaisen kurssin B tenttiin osallistui 26 opiskelijaa otosvarianssin ollessa s_B^2=372. Voidaanko näitä havaintoja pitää näyttönä siitä, että tenttitulosten varianssit rinnakkaisilla kursseilla ovat erisuuret? Tutki asiaa merkitsevyytasolla \alpha=0.05. Pistemäärien jakaumat oletetaan normaaleiksi.
Testataan siis hypoteesiparia H_0: \sigma_A^2=\sigma_B^2 ja H_1: \sigma_A^2\neq \sigma_B^2. Valitaan merkitsevyystasoksi \alpha=0.05, ja testisuureeksi
jolle realisoituu arvo f = \dfrac{478}{372} \approx 1.2849. Kriittinen alue on [0, f_{1, \alpha/2}) \cup (f_{2, \alpha/2}, \infty), missä päätepisteiksi ratkaistaan Matlabin tai R:n komennoilla
finv([0.05/2, 1 - 0.05/2], 50, 25) % Matlab, [f1, f2] qf(0.05/2, 50, 25) # R, f1 qf(1 - 0.05/2, 50, 25) # R, f2
arvot f_{1, \alpha/2} \approx 0.5212 ja f_{2, \alpha/2} \approx 2.0787. Testisuureelle realisoitunut arvo jää siis kriittisen alueen [0, 0.5212) \cup (2.0787, \infty) ulkopuolelle, joten nollahypoteesi jää voimaan. Vastaavasti p-arvoksi lasketaan Matlab tai R-komennolla
2*min([fcdf(1.2849, 50, 25), 1 - fcdf(1.2849, 50, 25)]) % Matlab 2*min( pf(1.2849, 50, 25), 1 - pf(1.2849, 50, 25)) # R
arvo p \approx 0.5033, joka on selvästi suurempi kuin riskitaso \alpha. Tulosten valossa kurssien tenttien variansseja voidaan siis pitää yhtä suurina.
Esimerkki 6.4.8
Jos on käytössä alkuperäiset havainnot x
ja y
voidaan tämä ns. kahden otoksen varianssien F-testi nollahypoteesina H_0: \sigma^2_x=\sigma^2_y suorittaa Matlabin komennolla
[h,p,ci,stats] = vartest2(x, y, 'Tail','both', 'Alpha', 0.05)
missä
\begin{array}{lll} & \texttt{x, y} & \text{muuttujat } x \text{ ja } y \text{ vektoreina} \\ & \texttt{'Tail'} & \text{riippuen vaihtoehtoisesta hypoteesista tämän jälkeen annetaan} \\ & & \texttt{'left' } (H_1: \sigma^2<\sigma^2_0), \texttt{ 'right' } (H_1: \sigma^2>\sigma^2_0) \text{ tai} \\ & & \texttt{'both' } (H_1: \sigma^2\ne\sigma^2_0). \text{ Oletusarvona on } \texttt{'both'} \\ & \texttt{'Alpha'} & \text{tämän jälkeen annetaan merkitsevyystaso } \alpha. \text{ Oletusarvona on } 0.05. \end{array}
Tuloksena saadaan
\begin{array}{lll} & \texttt{h} & 0, \text{ jos } H_0 \text{ jää voimaan; } 1, \text{jos } H_0 \text{ hylätään} \\ & \texttt{p} & \text{testin } p \text{-arvo}\\ & \texttt{ci} & \text{varianssien suhteen luottamusväli. Vaihtoehtoisen hypoteesin mukaan}\\ & & \text{oko kaksi- tai yksisuuntainen luottamusväli}\\ & \texttt{stats} & \text{tietoja testisuureesta: arvo, vapausasteet.}\\ \end{array}
R:llä varianssien testaamiseen löytyy funktio paketista PairedData. Asenna tarvittaessa install.packages("PairedData")
ja ota käyttöön library(PairedData)
.
Kun havainnot on tallennettu vektoreiksi x
ja y
, testaus saadaan edellä esitellyllä funktiolla Var.test
(koko komento yhdelle riville)
Var.test( x, y, ratio = 1, alternative = "two.sided", paired = FALSE, conf.level = 0.95)
missä
\begin{array}{lll}& \texttt{x, y} & \text{muuttujat } x \text{ ja } y \text{ vektoreina} \\ & \texttt{ratio} & \text{annetaan nollahypoteesin mukainen varianssien suhde } \sigma_x/\sigma_y. \\& & \text{Jos } H_0:\sigma_x=\sigma_y \text{ on } \texttt{ratio = 1} \\& \texttt{alternative} & \text{riippuen vaihtoehtoisesta hypoteesista arvona annetaan} \\& & \texttt{"less" } (H_1: \sigma^2<\sigma^2_0), \texttt{ "greater" } (H_1: \sigma^2>\sigma^2_0) \text{ tai} \\& & \texttt{"two.sided" } (H_1: \sigma^2\ne\sigma^2_0). \text{ Oletusarvona on } \texttt{"two.sided"} \\& \texttt{paired} & \text{arvo } \texttt{FALSE} \text{: } \texttt{x} \text{ ja } \texttt{y} \text{ arvot eivät ole vastinpareja} \\& \texttt{conf.level} & \text{arvona annetaan } 1-\alpha.\end{array}
Vastauksessa annetaan testisuureen arvo F, p-arvo, johtopäätös sekä varianssien suhteen luottamusväli vaihtoehtoisen hypoteesin mukaan yksi tai kaksisuuntaisena.