#rm(list=ls())
Voorbeeld:
Ok <- c(15, 20, 20, 25, 20)
Ek <- c(10, 15, 20, 15, 40)
p <- c(0.10, 0.15, 0.20, 0.15, 0.40)
n <- 100
p bij uniform verdeeld <- 1 / aantal keuzemogelijkheden
Ek (verwachte frequenties)
Ek <- n * p
#of EK = (totaal Y rij * totaal X rij / (totaal n beide rijen)
Waargenomen toetsgrootheid Pearson voor steekproef (Y_obs)
sum((Ok - Ek)^2 / Ek)
Waargenomen toetsgrootheid Yates (Gebruiken wanner tabel 2 bij 2 waarnemingen is)
sum((abs(Ok-Ek)-0.5)^2 / Ek)
Ek met kruisttabel voor totalen gebruiken minimaal verwachte celfrequentie
tbl <- matrix(c(76, 70, 133, 74, 74, 127, 17, 15),
nrow = 4, byrow = TRUE)
#chisq.test(tbl) <- uitvoeren voor de chisq uit de tbl
row_total <- rowSums(tbl)
col_total <- colSums(tbl)
grand_total <- sum(tbl)
#Verwachte frequenties berekenen voor tbl:
expected <- outer(row_total, col_total) / grand_total
#afronden en laden
round(expected, 2) <- Yobs
phi <- sqrt(Yobs / n)
#Meet de mate van samenhang
#Is hetzelfde als Cramers V
, #Berekent Pearson's chi2 met als input O en E.
Pearson<-function(O,E,alpha,df){
#Input moet worden gegeven als vector, dus O<-c(1,4,3,...)
#df = aantal waarnemingen -1
if (length(O)!=length(E)){
print("Ongelijk aantal elementen voor O en E.")
}
else{
Chi<-0
for (i in 1:length(O)){
Chi<-Chi+(O[i]-E[i])^2/E[i]
}
}
krit<-qchisq(p=1-alpha,df=df)
if(Chi>=krit){print("Verwerp H0")}
else{print("Verwerp H0 niet")}
return(c(Chi,krit))
}
Voorbeeld:
Ok <- c(15, 20, 20, 25, 20)
Ek <- c(10, 15, 20, 15, 40)
p <- c(0.10, 0.15, 0.20, 0.15, 0.40)
n <- 100
p bij uniform verdeeld <- 1 / aantal keuzemogelijkheden
Ek (verwachte frequenties)
Ek <- n * p
#of EK = (totaal Y rij * totaal X rij / (totaal n beide rijen)
Waargenomen toetsgrootheid Pearson voor steekproef (Y_obs)
sum((Ok - Ek)^2 / Ek)
Waargenomen toetsgrootheid Yates (Gebruiken wanner tabel 2 bij 2 waarnemingen is)
sum((abs(Ok-Ek)-0.5)^2 / Ek)
Ek met kruisttabel voor totalen gebruiken minimaal verwachte celfrequentie
tbl <- matrix(c(76, 70, 133, 74, 74, 127, 17, 15),
nrow = 4, byrow = TRUE)
#chisq.test(tbl) <- uitvoeren voor de chisq uit de tbl
row_total <- rowSums(tbl)
col_total <- colSums(tbl)
grand_total <- sum(tbl)
#Verwachte frequenties berekenen voor tbl:
expected <- outer(row_total, col_total) / grand_total
#afronden en laden
round(expected, 2) <- Yobs
phi <- sqrt(Yobs / n)
#Meet de mate van samenhang
#Is hetzelfde als Cramers V
, #Berekent Pearson's chi2 met als input O en E.
Pearson<-function(O,E,alpha,df){
#Input moet worden gegeven als vector, dus O<-c(1,4,3,...)
#df = aantal waarnemingen -1
if (length(O)!=length(E)){
print("Ongelijk aantal elementen voor O en E.")
}
else{
Chi<-0
for (i in 1:length(O)){
Chi<-Chi+(O[i]-E[i])^2/E[i]
}
}
krit<-qchisq(p=1-alpha,df=df)
if(Chi>=krit){print("Verwerp H0")}
else{print("Verwerp H0 niet")}
return(c(Chi,krit))
}