- 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.