Vjeºbe - Statistika Praktikum Statisti ki testovi (2)
Prilagodba modela podacima U praksi naj e² e imamo sljede i problem: Raspolaºemo s realizacijom nekog slu ajnog uzorka i htjeli bi utvrditi iz kojeg statisti kog modela (distribucije) dolazi uzorak. Postupak se moºe podijeliti u nekoliko koraka: 1 Pretpostaviti model (distribuciju) - koriste se tehnike deskriptivne statistike (histogram, uzora ka funkcija gusto e, QQ-plot) 2 Za pretpostavljene distribucije napraviti procjenu parametara (prvi dio kolegija) 3 Analizirati kvalitetu prilagodbe - usporediti uzora ke i teorijske gusto e, histogram i teorijska gusto a... 4 Statisti kim testovima potvrditi model - testovi prilagodbe modela podacima (goodness of t tests)
χ 2 test Test prilagodbe modela podacima za diskretne i neprekidne distribucije Nulta hipoteza ( ) a1 a H 0 : X 2 a k p 1 p 2 p k Test statistika H = H 1 : ne H 0 k (N j np j ) 2 j=1 np j H0 A χ 2 (k d 1), gdje je d broj parametara koji su procjenjuju iz istog uzorka. Za neprekidne distribucije treba sliku slu ajne varijable podijeliti u disjunktne razrede Vaºno je da o ekivane frekvencije np j budu ve e ili jednake od 5 R sintaksa chisq.test(x, p=vjer)
Primjer 1. Kockar je optuºen da koristi namje²tenu kocku. Zabiljeºeni su podaci o njegovih prethodnih 60 bacanja. Utvrdite je li kockar nevin na nivou zna ajnosti 0.05. vrijednost 1 2 3 4 5 6 frekvencija 4 6 17 16 8 9
Kolmogorov-Smirnovljev test Sluºi testiranju hipoteze o distribuciji uzorka za neprekidne distribucije. Neka je (X 1,..., X n ) jednostavan slu ajan uzorak iz populacije s neprekidnom funkcijom distribucije F i neka je F 0 neka pretpostavljena neprekidna distribucija. Nedostatak KS testa je to ²to F 0 mora biti jednozna no odrežena, tj. moramo znati vrijednosti parametara. Uvr²tavanje procjenjenih vrijednosti moºe promijeniti distribuciju test statistike. Hipoteze testa H 0 : F = F 0 H 1 : F F 0 R sintaksa ks.test(podaci, "naziv funkcije distribucije", parametri)
Primjer 2. Testirajte dolaze li sljede i podaci iz uniformne razdiobe na intervalu [0, 1]. 0.07, 0, 30, 0.50, 0.54, 0.95
Testovi normalnosti Naj e² e ºelimo testirati dolaze li podaci iz normalne distribucije. Postoji veliki broj testova za testiranje normalnosti: Lillieforsova ina ica Kolmogorov-Smirnovljevog testa, Shapiro-Wilk test, JarqueBera test, D'Agostinov test, AndersonDarling test, Cramervon Mises test... Svaki ima svojih prednosti i nedostataka. Koristit emo Shapiro-Wilk test normalnosti R sintaksa shapiro.test(x)
Primjer 3. U R bazi podataka ChickWeight nalaze se podaci o teºinama pili a mjerenima po danima od njihova roženja. Promotrimo samo teºine pili a starih to no 18 dana. Testirajte je li teºina normalno distribuirana na razini zna ajnosti 0.05.
Zadaci Zadatak 1. Trºi²ni analiti ar ºeli istraºiti imaju li potro²a i neke posebne sklonosti prema jednom od okusa sokova koji su se pojavili na trºi²tu. Na uzorku od 100 ljudi prikupio je preferencije prema ponuženim okusima. Frekvencije su dane u sljede oj tablici: vi²nja jagoda naran a limun grejp 32 28 16 14 10 Ispitajte postoji li na nivou zna ajnosti α = 0.05 statisti ki zna ajna preferencija potro²a a prema nekom od okusa ili je sklonost potro²a a jednaka prema svim ponuženim okusima.
Zadatak 2. Jedna je studija na osnovu istraºivanja o razlozima povratka na posao ljudi koji su umirovljeni postavila sljede u distribuciju: 38% se ponovo zaposli u drugom poduze u 32% osnuje obrt 23% rade kao konzultanti 7% osnuje vlastito poduze e Poklapaju li se sljede i rezultati, dobiveni ponovnim istraºivanjem, s prethodno postavljenom tezom ili moºemo utvrditi postojanje statisti ki zna ajne razlike? (α = 0.05) 122 se ponovo zaposli u drugom poduze u 85 osnuje obrt 76 rade kao konzultanti 17 osnuje vlastito poduze e
Zadatak 3. Tri nov i a se bacaju 250 puta i broji se broj pisama koji su pali. Dobiveni su sljede i podaci: broj pisama 0 1 2 3 frekvencija 24 108 95 23 Provjerite jesu li nov i i simetri ni na razini zna ajnosti 0.05.
Zadatak 4. U datoteci zarulje.txt nalaze se podaci o ºivotnom vijeku 100 ºarulja. Gra ki pokaºite da bi duljina trajanja mogla biti eksponencijalno distribuirana a zatim testirajte hipotezu da podaci dolaze iz eksponencijalne distribucije s parametrom 0.005.
Zadatak 5. Promatramo prvu zna ajnu znamenku u nekim brojevima, tj. prvu znamenku razli itu od 0. Vjerojatnost slu ajno odabrane znamenke od 1 do 9 je 1/9. To vrijedi za podatke generirane random funkcijama. Mežutim, kod podataka koji se pojavljuju u prirodi distribucija nije uniformna ve vrijedi tzv. Benfordov zakon. Benfordov zakon kaºe da vjerojatnost da prva zna ajna znamenka nekog broja iz prirode bude jednaka d, d = 1,... 9, nije 1/9 ve je dana izrazom log 10 (d + 1) log 10 (d). Primjerice, iz neke 52 zikalne konstante dobivene su frekvencije prve zna ajne znamenke d 1 2 3 4 5 6 7 8 9 frekvencije 17 11 3 5 5 4 3 1 3 Testirajte Benfordov zakon na nivou zna ajnosti 0.05. Testirajte Benfordov zakon za prvih 1000 Fibonaccijevih brojeva na nivou zna ajnosti 0.05.
Zadatak 6. U datoteci cvrstoca.txt nalaze se mjerenja vrsto e eli ne ºice. Na razini zna ajnosti 0.05 testirajte hipotezu da su podaci normalno distribuirani. Na razini zna ajnosti 0.05 testirajte hipotezu da podaci dolaze iz N (300, 289) distribucije.
Vježbe 6. prilagodba modela podacima Chi^2 test Primjer Nulta hipoteza je da je kockar nevin, tj. kocka je simetrična 1 2 3 4 5 6 H0: X ~ ( ) 1/6 1/6 1/6 1/6 1/6 1/6 H1: ne H0 Očigledno je da dani uzorak favorizira neke vrijednosti kocke. Pitanje je, da li je to samo zbog slučajnosti, ili tu ima nešto više od same slučajnosti. Sintaksa chisq.test(x,p=vjer) x je vektor frekvencija koje su zadane u zadatku. vjer je vektor vjerojatnosti pretpostavljene distribucije x <- c(4,6,17,16,8,9) vjer <- rep(1/6,6) ili vjer <- c(1/6,1/6,1/6,1/6,1/6,1/6) x vjer chisq.test(x,p=vjer) p vrijednost< 0.05 => odbacujemo H0 na nivou značajnosti 0.05. Kockar koristi namještenu kocku. Kolmogorov- Smirnovljev test Primjer Hipoteze testa H0: X ima U([0,1]) razdiobu H1: ne H0 R funkcija ks.test prvi argument su podaci, drugi argument je string koji daje naziv odgovarajuće funkcije distribucije u R-u, zatim se navode parametri te distribucije kao kod primjerice računanja vrijednosti funkcije distribucije u nekoj točki, podaci <- c(0.07,0.3,0.51,0.54,0.95) ks.test(podaci, "punif", 0, 1) 1
p vrij > 0.05, pa ne odbacujemo H0. Nema razloga tvrditi da ne dolaze iz U[0,1], na nivou značajnosti 0.05 Testovi normalnosti Primjer Hipoteze testa H0: X ima normalnu razdiobu H1: X nema normalnu razdiobu jedini argument shapiro.test() funkcije je vektor podataka str(chickweight) x <- ChickWeight$weight[ChickWeight$Time==18] x shapiro.test(x) p vrijednost < 0.05 => ne odbacujemo H0. Nema dokaza da X nema normalnu distribuciju. ZADACI Zadatak 1. Označimo okuse redom s 1,2,3,4,5. Treba testirati ima li obilježje uniformnu distribuciju ili ne, tj. 1 2 3 4 5 H0: X ~ ( ) 1/5 1/5 1/5 1/5 1/5 H1: ne H0 x <- c(32,18,16,14,10) vjer <- rep(1/5,5) ili jednostavno vjer <- c(1/5,1/5,1/5,1/5,1/5) chisq.test(x,p=vjer) p<0.05, odbacujemo H0 na nivou značajnosti 0.05. Postoji sklonost prema nekim okusima. Zadatak 2. 2
Označimo sve moguće ishode redom s 1,2,3,4. Treba testirati ima li obilježje sljedeću distribuciju 1 2 3 4 H0: X ~ ( ) 0.38 0.32 0.23 0.07 H1: ne H0 x <- c(122,85,76,17) vjer <- c(0.38,0.32,0.23,0.07) chisq.test(x,p=vjer) p>0.05, ne odbacujemo H0 na nivou značajnosti 0.05. Nema razloga tvrditi da prva teza nije u skladu s novim istraživanjem. Zadatak 3. Svaki od 250 puta, bacamo novčić 3 puta. Sl. var. koja broji broj pisama imat će binomnu razdiobu. Ako su novčići simetrični tada će to biti binomna B(1/2,3) razdioba. P(X=0)=1*(1/2)^0*(1/2)^(3-0)=1/8 P(X=1)=3*(1/2)^1*(1/2)^(3-1)=3/8 Treba testirati ima li obilježje sljedeću distribuciju 0 1 2 3 H0: X ~ ( ) 1/8 3/8 3/8 1/8 H1: ne H0 x <- c(24,108,95,23) vjer <- c(1/8,3/8,3/8,1/8) chisq.test(x,p=vjer) p>0.05, ne odbacujemo H0 na nivou značajnosti 0.05. Nema razloga da su novčići neispravni. Zadatak 4. Prvo ćemo grafičkim metodama vidjeti kako izgleda distribucija zarulje <- read.table("zarulje.txt", header=true) str(zarulje) x <- zarulje$x plot(density(x),col="red",ylim=c(0,0.005)) curve(dexp(x,0.005),col="blue",add=t) hist(x,col="red",probability=true) curve(dexp(x,0.005),col="blue",add=t) Hipoteze testa H0: X ima E(0.005) razdiobu H1: ne H0 3
ks.test(x,"pexp",0.005) p>0.05 pa ne odbacujemo H0. Nema dokaza da nema E(0.005) razdiobu. Zadatak 5. Vjerojatnosti Benfordove distribucije dane su s vjer <- log10(1:9+1)-log10(1:9) vjer plot(vjer,type="b") Dakle, u prirodi najčešće je 1 prva značajna znamenka, i pada do 9 Hipoteze: H0: X ima Benfordovu distribuciju H1: X nema Benfordovu distribuciju x <- c(17,11,3,5,5,4,3,1,3) chisq.test(x,p=vjer) p>0.05 => ne odbacujemo H0. Nema razloga tvrditi da se razlikuje od Benfordove distribucije Warning koji dobijemo je zato jer su očekivane frekvencije manje od 5 chisq.test(x,p=vjer)$expected Trebalo bi grupirati razrede, npr. 8 i 9, onda 6 i 7, onda 4 i 5 Onda će frekvencije biti x <- c(17,11,3,10,7,4) Sad su vjerojatnosti vjer1 <- c(vjer[1:3], vjer[4]+vjer[5],vjer[6]+vjer[7],vjer[8]+vjer[9]) chisq.test(x,p=vjer1) Sad nema Warninga jer su očekivane frekvencije veće od 5 chisq.test(x,p=vjer1)$expected Za Fibonaccijeve brojeve fib <- function(n){ niz <- c(0,1) for(i in 3:n){ niz <- c(niz, niz[i-1]+niz[i-2]) } return(niz) } x <- fib(1000) x <- as.numeric(substring(formatc(x, format = 'e'), 1, 1)) frek <- tabulate(x, nbins = 9) frek chisq.test(frek, p=vjer) p>0.05 => sigurno ne odbacujemo H0, nema nikakvog dokaza da nema Benfordovu distribuciju 4
Zadatak 6. Prvo ćemo grafičkim metodama vidjeti kako izgleda distribucija cvrstoca <- read.table("cvrstoca.txt", header=true) str(cvrstoca) x <- cvrstoca$x Hipoteze testa H0: X ima normalnu razdiobu H1: X nema normalnu razdiobu Ovdje ništa ne govorimo o parametrima, samo je bitno da li je normalna ili ne, s bilo kojim parametrima To je Shapiro-Wilk test shapiro.test(x) p>0.05, ne odbacujemo H0,nema razloga tvrditi da nije normalno distribuirano Hipoteze testa H0: X ima N(300,289) razdiobu H1: X nema N(300,289) razdiobu Sad točno testiramo jednu distribuciju koja je jednoznačno određena svojim parametrima. U tom slučaju koristimo KS test. plot(density(x),col="red") curve(dnorm(x,300,sqrt(289)),col="blue",add=t) ks.test(x,"pnorm",300,sqrt(289)) p>0.05 pa ne odbacujemo H0. Nema dokaza da nema N(300,289) razdiobu. 5