5 Uvod u statistiku

R je napravljen od strane statisticara, i namena mu je prevashodno bas primena statistickih metoda na racunaru. Stoga je vrlo pogodan za implementaciju raznih statistickih alata o kojima smo ucili na Uvodu u statistiku, a skoro svi su vec i implementirani u nekom od nebrojano mnogo paketa na CRAN repozitorijumu. Za vecinu metoda koje biste zeleli da primenite u statistici, verovatno postoji bar 1 paket koji to vec radi, pa mozete preskociti rucnu implementaciju. U ovom, poslednjem, poglavlju cemo proci kroz neke od statistickih testova koje smo prosli na kursu Uvod u statistiku.

Pre svega, reklama… Ukoliko vam treba da formule iz pdf-ova pretvarate u LaTeX bez prekucavanja, koristite program MathPix.

5.1 Intervali poverenja

Pre testova, podseticemo se intervala poverenja i implementirati ih u R-u. Ako pretpostavimo uzorak \(X_1, \dots, X_n\) potice iz normalne raspodele \(\mathcal{N}(m, \sigma^2)\), znamo da vazi sledece \[ \frac{\overline{X} - m}{\widetilde{S}}\sqrt{n} \sim t_{n-1}, \] gde je \(\overline{X}\) uzoracka sredina, a \(\widetilde{S}\) (popravljena) uzoracka standardna devijacija.

Imajuci u vidu ovu raspodelu, interval poverenja nivoa \(\beta\) za parametar \(m\) se lako izvodi i dobija se da je jednak \[ \left( \overline{X} - C\frac{\widetilde{S}}{\sqrt{n}},\quad \overline{X} + C\frac{\widetilde{S}}{\sqrt{n}}\right), \] gde je \(C = F^{-1}_{t_{n-1}}(\frac{1+\beta}2)\).

Ovakav interval se moze koristiti ne samo za normalnu raspodelu, vec primenu nalazi i za druge raspodele kada je uzorak jako veliki, zbog efekta centralne granicne teoreme. Naravno, u tom slucaju trazi se interval poverenja za ocekivanje date raspodele, sto je u slucaju normalne bas \(m\).

Implementiracemo sad funkciju koja za dati uzorak vraca ovaj interval poverenja, pa se malo pozabaviti interpretacijom.

Primer upotrebe:

## [1] -0.3480458  0.2604904

Obratimo paznju na trenutak na interpretaciju nivoa poverenja \(\beta\). To je verovatnoca da dobijeni interval poverenja obuhvati stvarnu vrednost parametra \(m\). To znaci (ako je \(\beta=0.95\)) da ako mnogo puta izvucemo uzorak, u \(95%\) slucajeva ce interval poverenja sadrzati vrednost \(m\). Ispitajmo to:

Prvo generisemo 10000 uzoraka i odgovarajucih intervala poverenja

##            [,1]       [,2]       [,3]       [,4]       [,5]
## [1,] -0.1358313 -0.1580114 -0.4081886 -0.2097923 -0.3424593
## [2,]  0.3367278  0.3926643  0.1032177  0.3635308  0.2798359
## [1]     2 10000

Kao rezultat poziva replicate dobijamo matricu sa 2 vrste i 10000 kolona, gde svaka kolona predstavlja jedan interval poverenja.

Pogledajmo koliko od tih intervala poverenja sadrzi nulu, koja je bila stvarna vrednost parametra \(m\) (rnorm po default-u uzima \(m=0, \sigma=1\)):

## [1] 0.9491

Vidimo da je nula sadrzana u \(94.9%\) intervala, sto je jako blizu trazenog nivoa poverenja od \(95%\).

Rekli smo da se ovaj interval moze primeniti i na neke druge raspodele kad je uzorak veliki (za trazenje intervala poverenja za ocekivanje), pa mozemo i to probati, na primer na eksponencijalnoj raspodeli.

## [1] 0.9498

Opet nam je u \(94.9%\) slucajeva stvarna vrednost ocekivanja \(\frac1\lambda = 1/2\) upala u intervale poverenja.

5.2 Studentov t test

5.2.1 Slucaj jednog uzorka

Ako imamo uzorak iz normalne \(\mathcal{N}(m, \sigma^2)\) raspodele, mozemo testirati hipotezu \[H_0: m = m_0,\] naspram neke od alternativa oblika \[H_1: \begin{cases}m< m_0\\m\neq m_0\\m > m_0\end{cases}.\] Za to mozemo da koristimo test statistiku \[t= \frac{\overline{X} - m_0}{\widetilde{S}}\sqrt{n} \sim t_{n-1}.\]

Kriticna oblast ovog testa, sa nivoom \(\alpha\) je oblika (za odgovarajuce alternative)

\[W = \begin{cases}\{t < F^{-1}_{t_{n-1}}(\alpha)\}\\ \{ |t| > F^{-1}_{t_{n-1}}(1-\frac\alpha2)\}\\\{t > F^{-1}_{t_{n-1}}(1-\alpha)\}\end{cases}.\]

Cesci nacin na koji se u statistickim paketima vrsi testiranje je nalazenje p vrednosti testa, pa poredjenje te vrednosti sa nivoom znacajnosti. P vrednst testa se ugrubo moze opisati kao “kolicina dokaza za nultu hipotezu”, pa ukoliko je velika (\(p>\alpha\)), onda ne odbacujemo nultu hipotezu, a ako je \(p < \alpha\), onda odbacujemo nultu hipotezu u korist alternativne. P vrednost mozemo da izracunamo (u dvostranoj nultoj hipotezi slicno za ostale) kao \[p = P\{|t| > |t_0|\},\] gde je \(t_0\) realizovana vrednost test statistike na osnovu uzorka. U slucaju \(t\) testa, p vrednost ce biti jednaka \[ p = \begin{cases}F_{t_{n-1}}(t_0)\\ 2(1-F_{t_{n-1}}(|t_0|))\\ 1 - F_{t_{n-1}}(t_0)\end{cases}, \] za odgovarajuce alternativne hipoteze, redom.

Implementiracemo ovaj test za jedan uzorak, pa cemo nadalje koristiti ugradjenu funkciju u R-u t.test.

Ugradjena funkcija u R-u koja sprovodi \(t\) test se naziva t.test. Uporedicemo rezultate nase i ugradjene funkcije:

## [1] 0.03838225
## 
##  One Sample t-test
## 
## data:  x
## t = -2.1281, df = 49, p-value = 0.03838
## alternative hypothesis: true mean is not equal to 1
## 95 percent confidence interval:
##  -0.182027  0.966136
## sample estimates:
## mean of x 
## 0.3920545

Ugradjena funkcija nam daje vise informacija od same p vrednosti, a p vrednost se poklapa u nasoj funkciji i ugradjenoj.

Ugradjena funkcija nam daje i interval poverenja, pa mozemo i to proveriti:

## [1] -0.182027  0.966136

Naravno, poklapaju se vrednosti.

Pogledajmo kroz ugradjenu funkciju i moguce alternative

## 
##  One Sample t-test
## 
## data:  x
## t = -2.1281, df = 49, p-value = 0.01919
## alternative hypothesis: true mean is less than 1
## 95 percent confidence interval:
##   -Inf 0.871
## sample estimates:
## mean of x 
## 0.3920545

ko testiramo \(H_1 : m < m_0\), dobijamo vrlo visoku p vrednost, pa cemo da prihvatimo hipotezu \(H_0: m = 1\). Primetimo i da interval poverenja koji vrati ova funkcija u slucaju da gledamo jednostrani test je takodje jednostran – leva granica mu je \(-\infty\).

Ako testiramo \(H_1 : m > m_0\) rezultat je slican

## 
##  One Sample t-test
## 
## data:  x
## t = -2.1281, df = 49, p-value = 0.9808
## alternative hypothesis: true mean is greater than 1
## 95 percent confidence interval:
##  -0.08689089         Inf
## sample estimates:
## mean of x 
## 0.3920545

Nadalje cemo samo koristiti ugradjene testove u R-u i necemo implementirati svoje.

5.2.2 Slucaj dva uzorka

Ukoliko imamo dva nezavisna uzorka \(X_1,\dots,X_{n_1}\) i \(Y_1,\dots, Y_{n_2}\), iz raspodela, redom, \(\mathcal{N}(m_1, \sigma_1)\) i \(\mathcal{N}(m_2, \sigma_2)\), za testiranje hipoteze \[H_0: m_1 = m_2\] koristimo test statistiku \[t=\frac{\overline{X}_{n_{1}}-\overline{Y}_{n_{2}}}{\sqrt{\frac{\widetilde{S}_{n_{1}}^{2}}{n_{1}}+\frac{\widetilde{S}_{n_{2}}^{2}}{n_{2}}}},\] koja ima studentovu raspodelu pod \(H_0\).

Alternativne hipoteze mogu biti kao u slucaju jednog uzorka (\(m_1<m_2, m_1\neq m_2, m_1>m_2\)).

Ovaj test se u R-u izvrsava dodajuci jos jedan uzorak u poziv t.test. Primer:

## 
##  Welch Two Sample t-test
## 
## data:  x and y
## t = -3.2342, df = 36.018, p-value = 0.002614
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -3.651159 -0.836842
## sample estimates:
## mean of x mean of y 
## 0.1004483 2.3444487

Ovde dobijamo malu p vrednost (0.002), sto ukazuje na to da treba odbaciti nultu hipotezu u korist alternativne, koja je po default-u \(H_1:m_1 \neq m_2\), sto i pise u izlazu funkcije.

Ako bismo testirali sa alternativom \(H_1:m_1 > m_2\)

## 
##  Welch Two Sample t-test
## 
## data:  x and y
## t = -3.2342, df = 36.018, p-value = 0.9987
## alternative hypothesis: true difference in means is greater than 0
## 95 percent confidence interval:
##  -3.415402       Inf
## sample estimates:
## mean of x mean of y 
## 0.1004483 2.3444487

…dobijena je p vrednost 0.99 sto je jako veliko, pa ne bismo mogli da odbacimo nultu hipotezu! Primetimo, ne znaci da je nulta hipoteza tacna, nego na osnovu dobijenog uzorka, ne mozemo odbaciti nultu hipotezu u korist alternative.

5.2.3 Upareni test

Ako obelezja \(X\) i \(Y\) nisu nezavisna, vec imamo uzorak parova \((X_1,Y_1),\dots,(X_n,Y_n)\) testiranje hipoteze \(H_0: m_1 = m_2\) se vrsi uparenim \(t\) testom, koji je u R-u implementiran takodje u funkciji t.test, gde se samo doda argument paired = TRUE.

## 
##  Paired t-test
## 
## data:  x and y
## t = 0.3173, df = 49, p-value = 0.7524
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -0.02659998  0.03657477
## sample estimates:
## mean of the differences 
##             0.004987398

Kao rezultat imamo veliku p vrednost i ne odbacujemo nultu hipotezu.

5.3 Neparametarski testovi

5.3.1 Vilkoksonov test zasnovan na rangovima i znakovima

Vilkoksonov test ima slicnu svrhu kao t test, ali pretpostavljamo da je raspodela obelezja \(X\) simetricna i zelimo da testiramo \(H_0 : m = m_0\), bez pretpostavke normalnosti. Koristimo test statistiku \[T=\sum_{i=1}^{n} r_{i} I\left\{X_{i}-m_{0} \geq 0\right\},\] gde su \(r_i\) rangovi elemenata \(|X_i-m_0|\) u uzorku \(\left|X_{1}-m_{0}\right|, \ldots,\left|X_{n}-m_{0}\right|\).

U R-u je ovaj test implementiran u funkciji wilcox.test. Ova funkcija ima isti interfejs kao t.test (argumente koje prima i slicno).

Proverimo test nekim uzorkom iz binomne raspodele \(\mathcal{B}(10, 0.3)\). Trebalo bi da bude ocekivanje \(3\).

## Warning in wilcox.test.default(x, mu = 3): cannot compute exact p-value with
## ties
## Warning in wilcox.test.default(x, mu = 3): cannot compute exact p-value with
## zeroes
## 
##  Wilcoxon signed rank test with continuity correction
## 
## data:  x
## V = 507.5, p-value = 0.3053
## alternative hypothesis: true location is not equal to 3

Primenimo ga i na neki uzorak iz t raspodele, za npr. alternativu \(H_1:m>0\).

## 
##  Wilcoxon signed rank test
## 
## data:  x
## V = 72, p-value = 0.8919
## alternative hypothesis: true location is greater than 0

Dakle, ukoliko imamo pretpostavku o normalnoj raspodeli, koristimo t.test, a ukoliko nemamo, wilcox.test moze biti zadovoljavajuci.

Kao i t.test i wilcox.test se moze primeniti na 2 uzorka (upareni i neupareni)

## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  x and y
## W = 832, p-value = 0.418
## alternative hypothesis: true location shift is not equal to 0

5.3.2 Kolmogorov–Smirnovljev test saglasnosti sa raspodelom

Test Kolmogorov–Smirnova sluzi za testiranje da li se za neki uzorak \(X_1,\dots,X_n\) moze reci da odgovara raspodeli sa funkcijom raspodele \(F_0\). Zasnovan je na test statistici \[T=\sup _{x}\left|F_{n}(x)-F_{0}(x)\right|,\] gde je \(F_n\) empirijska funkcija raspodele uzorka.

U R-u je implementiran kroz funkciju ks.test, a kao argumente prima uzorak, kao i funkciju raspodele (funkcije koje obicno pocinju sa p*, npr. pnorm, pexp itd.)

Testirajmo da li kolona speed iz skupa podataka cars ima standardnu normalnu raspodelu:

## Warning in ks.test(x, "pnorm"): ties should not be present for the Kolmogorov-
## Smirnov test
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  x
## D = 0.99997, p-value < 2.2e-16
## alternative hypothesis: two-sided

p vrednost je prakticno nula, pa odbacujemo nultu hipotezu koja kaze da uzorak ima normalnu \(\mathcal{N}(0,1)\) raspodelu.

Mozemo da testiramo da li ima normalnu raspodelu \(\mathcal{N}(15,5^2)\) (primetite promenjene parametre)

## Warning in ks.test(cars$speed, function(x) pnorm(x, 15, 5)): ties should not be
## present for the Kolmogorov-Smirnov test
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  cars$speed
## D = 0.10575, p-value = 0.631
## alternative hypothesis: two-sided

U ovom slucaju je p vrednost 0.6, sto je vece od \(\alpha=0.05\), pa ne odbacujemo hipotezu koja kaze da je uzorak cars$speed saglasan sa normalnom \(\mathcal{N}(15,5^2)\) raspodelom.

I ovaj test se moze primeniti na testiranje o saglasnosti raspodele dva uzorka, tj. da li 2 uzorka imaju istu raspodelu:

Npr. ako imamo dva uzorka iz iste normalne raspodele, ocekujemo visoku p vrednost

## 
##  Two-sample Kolmogorov-Smirnov test
## 
## data:  x and y
## D = 0.165, p-value = 0.5286
## alternative hypothesis: two-sided

A ako imamo uzorke iz razlicitih raspodela ocekujemo nisku p vrednost…

## 
##  Two-sample Kolmogorov-Smirnov test
## 
## data:  x and y
## D = 0.56, p-value = 6.168e-07
## alternative hypothesis: two-sided

…sto i dobijamo.

5.3.3 \(\chi^2\) test nezavisnosti

Konacno, prikazacemo i upotrebu \(\chi^2\) testa koji se koristi za testiranje nezavisnosti dva obelezja \(X\) i \(Y\), koji je zasnovan na test statistici \[T=\sum_{i j} \frac{\left(M_{i j}-n \hat{p}_{i j}\right)^{2}}{n \hat{p}_{i j}}.\]

Koristicemo podatke survey iz paketa MASS.

U ovom skupu postoje promenljive Smoke i Exer koje se ticu toga da li je student pusac i u kojoj meri, kao i o ucestalosti bavljenja fizickom aktivnoscu. Tabelu kontigencije vidimo i sledecoj tabeli (pozivom funkcije table pravimo tabelu kontigencije).

##        
##         Freq None Some
##   Heavy    7    1    3
##   Never   87   18   84
##   Occas   12    3    4
##   Regul    9    1    7

Zanima nas da li postoji zavisnost izmedju cinjenice da je student pusac i nivoa fizicke aktivnosti. Da testiramo hipotezu da su ova dva obelezja nezavisna (nulta hipoteza), mozemo da koristimo funkciju chisq.test:

## Warning in chisq.test(survey$Smoke, survey$Exer): Chi-squared approximation may
## be incorrect
## 
##  Pearson's Chi-squared test
## 
## data:  survey$Smoke and survey$Exer
## X-squared = 5.4885, df = 6, p-value = 0.4828

P vrednost od 0.49 nam ukazuje da ne mozemo da odbacimo nultu hipotezu o nezavisnosti, tako da nemamo dokaza da tvrdimo da postoji veza izmedju pusenja i fizicke aktivnosti.