Testovi saglasnosti

\(\chi^2\) test

Hoćemo da testiramo da li neko obilježje \(X\) ima raspodjelu \(F_0\), protiv alternative da \(X\) nema tu raspodjelu.
Podijelimo skup svih vrijednosti koje \(X\) može da uzme na nekih \(r\) kategorija. Broj elemenata u \(k\)-toj kategoriji označimo sa \(M_k\). Neki elemenat uzorka će se naći u \(k\)-toj kategoriji sa vjerovatnoćom \(p_k\), pa možemo da primijetimo da slučajna veličina \(X\) ima binomnu \(B(N,p_k)\) raspodjelu, gdje je \(N\) obim uzorka. Njeno očekivanje je onda \(Np_k\). Ako izrachunamo \(p_k\) pri \(H_0\), odnosno pri pretpostavci da \(X\) ima raspodjelu \(F_0\), ima smisla da test statistiku formiramo na osnovu razlika \(M_k-Np_k\), odnosno razlika broja elemenata u k-toj kategoriji, \(M_k\), i njegovog očekivanja. Ispostavlja se da test statistika \[ \chi_0^2=\sum\limits_{k=1}^{r}\frac{(M_k-Np_k)^2}{Np_k} \] ima \(\chi^2_{r-1}\), pri \(H_0\).
Ako testiramo da \(X\) pripada nekoj klasi raspodjelu sa nepoznatim parametrima \(\theta_1,\dots,\theta_n\), onda te parametre ocijenimo nekom od poznatih metoda, a test statistika u tom slučaju ima \(\chi^2\) raspodjelu sa \(r-n-1\) stepenom slobode, gdje je \(n\) broj ocijenjenih parametara.
Napomena: Ako kategorije ne pokrivaju cijeli skup vrijednosti, dodamo jednu kategoriju.
U svakoj kategoriji treba da važi \(Np_k \geq 5\), u suprotnom spajamo kategorije.

Kako nam u korist nulte hipoteze ne odgovara da ove razlike budu velike, kritična oblast ovog testa je \[W=\{\chi_0^2>c \}\], gdje je \(c=F_{\chi^2_{r-n-1}}(1-\alpha)\).

Primjeri

  1. Baca se kockica za igru. Testirati hipotezu da je kockica homogena.
# Treba da testiramo da li kockica ima diskretnu ravnomjernu raspodjelu, odnosno da li je 
# vjerovatnoca da se dobije svaki od brojeva 1,2,3,4,5,6 jednaka 1/6.
# Prvo simuliramo bacanje kockice da dobijemo neki uzorak. Pravimo uzorak kockice koja jeste 
# homogena, na primjer.

uzorak <- sample(6, 60, replace = T)
M <- table(uzorak)
r <- length(M) # broj kategorija
# Svakak od vjerovatnoca je 1/6, pa je npk:

np <- length(uzorak) * 1 / 6

chi.0 <- sum((M - np) ^ 2 / np)
alpha <- 0.05
c <- qchisq(1 - alpha, r - 1)
chi.0 > c # FALSE, pa prihvatamo H0, sto smo i ocekivali
## [1] TRUE
  1. Dat je uzorak
#  [0, 1]  |  (1, 2]  |  (2, 3]  |  (3, 4]
#    23    |    26    |    23    |    28

Sa pragom znacajnosti \(\alpha = 0.02\) testirati hipotezu da \(X\) ima \(\mathcal{U}[0, 4]\) raspodjelu. Naći p-vrijednost testa.

M <- c(23, 26, 23, 28)
r<-4
np<-1/4*sum(M) # n tabli
chi.0 <- sum((M - np) ^ 2 / np)
alpha<-0.02
c<-qchisq(1-alpha,r-1)
chi.0>c
## [1] FALSE
# odbacujemo H0

p<-1-pchisq(chi.0, r-1)
p<alpha
## [1] FALSE
  1. Testirati da li \(X\) ima \(\mathcal{G}(\frac{1}{2})\), za \(\alpha=0.05\).
#     1    |     2    |     3    |    4   |   5    |   6
#    45    |    30    |    15    |    6   |   2    |   2

Prvo, treba primijetiti da ovim nije obuhvaćen cijeli skup vrijednosti, pa dodajemo jednu kategoriju na kraju:

#     1    |     2    |     3    |    4   |   5    |   6  | >=7
#    45    |    30    |    15    |    6   |   2    |   2  |  0
M<-c(45,30,15,6,2,2,0)
N<-sum(M)

# Racunamo vjerovatnoce pk

pk<-c(dgeom(0:5,0.5),1-pgeom(5,0.5)) # podsjetite se geometrijske raspodjele!
N*pk
## [1] 50.0000 25.0000 12.5000  6.2500  3.1250  1.5625  1.5625
# Spajamo poslednje 3 kategorije, zbog uslova Npk>5

M<-c(45,30,15,6,4)
pk<-c(pk[1:4],sum(pk[5:7]))

np<-N*pk
chi.0 <- sum((M - np) ^ 2 / np)

alpha<-0.05
c<-qchisq(1-alpha,5-1)

chi.0>c # prihvatamo H0
## [1] FALSE
  1. Dati su podaci:
#  [0, 1]  |  (1, 2]  |  (2, 3]  |  (3, 4]
#    42    |    34    |    16    |    8

Sa pragom značajnosti 0.01 testirati da je \(X\) iz \(\mathcal{E}(\lambda)\).

# Kako je lambda nepoznato, moramo da ga ocijenimo, npr. mmv. Znamo, ranije da je 
# ta ocjena 1/mean(x). Kad je tabela ovako zadata srednju vrijednost racunamo kao:

M<-c(42,34,16,8)

N<-sum(M)
x.sr<-sum(c(0.5,1.5,2.5,3.5)*M)/N
lambda.hat<-1/x.sr

# Dodajemo jos jednu kategoriju na kraju

pk<-pexp(1:4,lambda.hat)-pexp(0:3,lambda.hat)
pk<-c(pk,1-pexp(4,lambda.hat))

M<-c(M,0)
np<-N*pk
# Imamo jedan ocijenjeni parametar i 5 kategorija, pa je br stepeni slobode 5-1-1=3
alpha<-0.05
c<-qchisq(1-alpha,3)

chi.0 <- sum((M - np) ^ 2 / np)
chi.0>c
## [1] TRUE
# Odbacuje se nulta hipoteza