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)\).
# 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)
uzorak
## [1] 6 2 2 2 6 3 5 2 2 6 2 1 3 1 1 5 1 5 5 2 3 1 4 4 3 5 5 2 4 6 6 5 3 1 5
## [36] 3 2 2 3 3 6 4 1 3 3 2 4 2 2 2 6 1 6 3 6 4 4 3 3 3
M <- table(uzorak)
M
## uzorak
## 1 2 3 4 5 6
## 8 14 14 7 8 9
r <- length(M) # broj kategorija
# Svakak od vjerovatnoca je 1/6, pa je npk:
np <- length(uzorak) * 1 / 6
np
## [1] 10
chi.0 <- sum((M - np) ^ 2 / np)
chi.0
## [1] 5
alpha <- 0.05
c1 <- qchisq(1 - alpha, r - 1)
c1
## [1] 11.0705
chi.0 > c1 # FALSE, pa prihvatamo H0, sto smo i ocekivali
## [1] FALSE
# [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)
np
## [1] 25
chi.0 <- sum((M - np) ^ 2 / np)
chi.0
## [1] 0.72
alpha <- 0.02
c1 <- qchisq(1 - alpha, r - 1)
c1
## [1] 9.837409
chi.0 > c1
## [1] FALSE
# ne odbacujemo H0
p <- 1 - pchisq(chi.0, r - 1)
p < alpha
## [1] FALSE
# 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]))
pk
## [1] 0.5000 0.2500 0.1250 0.0625 0.0625
np <- N*pk
chi.0 <- sum((M - np) ^ 2 / np)
chi.0
## [1] 2.82
alpha <- 0.05
c1 <- qchisq(1-alpha,5-1)
c1
## [1] 9.487729
chi.0 > c1 # prihvatamo H0
## [1] FALSE
# [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
lambda.hat
## [1] 0.7142857
# Dodajemo jos jednu kategoriju na kraju
pk <- pexp(1:4,lambda.hat)-pexp(0:3,lambda.hat)
pk
## [1] 0.51045834 0.24989062 0.12233187 0.05988655
pk <- c(pk,1-pexp(4,lambda.hat))
pk
## [1] 0.51045834 0.24989062 0.12233187 0.05988655 0.05743262
M <- c(M,0)
np <- N*pk
np
## [1] 51.045834 24.989062 12.233187 5.988655 5.743262
# Imamo jedan ocijenjeni parametar i 5 kategorija, pa je br stepeni slobode 5-1-1=3
alpha <- 0.05
c1 <- qchisq(1-alpha,3)
c1
## [1] 7.814728
chi.0 <- sum((M - np) ^ 2 / np)
chi.0 > c1
## [1] TRUE
# Odbacuje se nulta hipoteza