wzrost = read.csv2(rWzrost.csv“, header = F)[,1]
?t. test
?chisq.test
aproposftest')
Atestuje, czy przeciętny wzrost jest równy 170, przeciwko zaprzeczeniu t.test(wzrost, mu = 170)
#No dobrze, ale czy wzrost ma rozkład normalny?
#test chiA2 - zgodności mi = mean(wzrost) sigma = sd(wzrost) ile = length(wzrost)
#15 klas, potem 20 k = 15 w = 0:k
#1 podejście - jednakowe p-stwa podział = qnorm(w/k, mi, sigma) podział
podzial[1] = min(wzrost)-5 podzial[length(podzial)] = max(wzrost)+5 szereg = table(cut(wzrost, podział)) szereg
(t=chisq.test(szereg))
#jak sie dobrać do wyników? names(t)
#ale estymowatem parametry (dwa) rozkładu normalnego
^poprawiona p-wartość
1-pchisq(tSstatistic, k-3)
print(hist(wzrost, podział, col = "yellow"))
szereg
^oczywiście mogę sam policzyć: teor=ile/k
(chi2=sum((szereg-teor)A2/teor))
#jak wiec sobie poradzić?
#może jednak podział od strony danych, 20 klas k = 20
dl = (max(wzrost)-min(wzrost))/(k-1) podzial2 = dl*(0:k) - dl/2 + min(wzrost) szereg2 = table(cut(wzrost, podzial2)) szereg2
hist(wzrost, podzial2, col = "lightblue")
pstwa = pnorm(podzial2[2:(k+1)], mi, sigma) -pnorm(podzial2[1:k], mi, sigma) pstwa
(t = chisq.test(szereg2, p = pstwa))
#ups, zle! sum(pstwa)
^faktycznie, poprawimy tak podzial2b = podzial2 podzial2b[1] = -Inf podzial2b[length(podzial2b)] = Inf
pstwa = pnorm(podzial2b[2:(k+1)], mi, sigma) -pnorm(podzial2b[1:k], mi, sigma) sum(pstwa)
(t = chisq.test(szereg2, p = pstwa))
#poprawiona p-wartość 1-pchisq(tSstatistic, k-3)
#czegos jeszcze nie mamy - klasy po 5 elementów szereg2
#uwaga to działa dla k = 20, podzial3 = podzial2b[c(1, 3:17, 21)]
(szereg3 = table(cut(wzrost, podzial3))) k3 = length(szereg3)
pstwa3 = pnorm(podzial3[2:(k3+1)], mi, sigma) -pnorm(podzial3[1:k3], mi, sigma) (t = chisq.test(szereg3, p = pstwa3))
#poprawiona p-wartość 1-pchisq(tSstatistic, k3-3)
#to może prościej (i zarazem lepiej)? - test normalności Shapiro-Wilka shapiro.test(wzrost) #to jeszcze test niezależności chiA2 dane = read.csv2(“Zakupy.csv”) attach(dane)
^najprostszy test chi2, niezależności chisq.test(table(WYKSZTALCENIE, cut(WYDATEK, 7)))
#ale ostrzega (mato liczne klasy przy dużym wydatku)
#pierwsza poprawka
podział = seq(min(WYDATEK), max(WYDATEK), length = 10) table(cut(WYDATEK, podział))
#no to tak:
podzial2 = podzial[c(1:7, 10)]
#OK:
table(cut(WYDATEK, podzial2))
#to jeszcze to
wyk = factor(WYKSZTALCENIE, levels = c("P", “T, “S“, “W)) table(wyk, cut(WYDATEK, podzial2)) chisq.test(table(wyk, cut(WYDATEK, podzial2))) detach(dane)