zad4, 5,przyklady do wyk5

ZADANIA 4

 Sporządzić wykres ramkowy (pudełkowy) dla wieku nowożeńców (dane Sluby.csv).
(*) Czy liczba 25 wpada do przedziału ufności (na poziomie 95%) dla mediany wieku kobiety? A mężczyzny?

 Dla danych z pliku wzrost.csv sporządzić wykres zawierający:

 Dane z pliku wzrost.csv rozłożyć w szereg rozdzielczy:

ZADANIA 5

 Przetestować normalność dla danych z pliku wzrost.csv za pomocą testu chi-kwadrat, w oparciu o szereg rozdzielczy o 20 klasach o, w przybliżeniu, jednakowej liczności empirycznej.

 Przetestować normalność dla danych z pliku wzrost.csv za pomocą testu chi-kwadrat, w oparciu o szereg rozdzielczy o 15 klasach o jednakowej liczności teoretycznej (przykład z wykładu). Następnie wykonać ten sam test, ale przed  utworzeniem szeregu rozdzielczego dokonać randomizacji danych, zaburzając je o wartość z rozkładu jednostajnego na przedziale [-½, ½].

 Dla wszystkich (sześciu) par różnego wykształcenia (dane zakupy.csv) wykonać testy równości przeciętnego wydatku między grupami osób o danym wykształceniu.

PRZYKLADY DO WYKLADU 5

wzrost = read.csv2("Wzrost.csv", header = F)[,1]
?t.test
?chisq.test
apropos("test")
#testuje, czy przecietny wzrost jest równy 170, przeciwko zaprzeczeniu
t.test(wzrost, mu = 170)
#No dobrze, ale czy wzrost ma rozkład normalny?
#test chi^2 - zgodności
mi = mean(wzrost)
sigma = sd(wzrost)
ile = length(wzrost)
#15 klas, potem 20
k = 15
w = 0:k
#1 podejscie - jednakowe p-stwa
podzial = qnorm(w/k, mi, sigma)
podzial
podzial[1] = min(wzrost)-5
podzial[length(podzial)] = max(wzrost)+5
szereg = table(cut(wzrost, podzial))
szereg
(t=chisq.test(szereg))
#jak sie dobrać do wyników?
names(t)
#ale estymowałem parametry (dwa) rozkładu normalnego
#poprawiona p-wartość
1-pchisq(t$statistic, k-3)
print(hist(wzrost, podzial, col = "yellow"))
szereg
#oczywiscie moge sam policzyć:
teor=ile/k
(chi2=sum((szereg-teor)^2/teor))
#jak wiec sobie poradzić?
#może jednak podzial 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(t$statistic, k-3)

#czegos jeszcze nie mamy - klasy po 5 elementow
szereg2
#uwaga to dziala 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(t$statistic, k3-3)

#to może prościej (i zarazem lepiej)? - test normalnosci Shapiro-Wilka
shapiro.test(wzrost)


#to jeszcze test niezależności chi^2
dane = read.csv2("Zakupy.csv")
attach(dane)
#najprostszy test chi2, niezaleznosci
chisq.test(table(WYKSZTALCENIE, cut(WYDATEK, 7)))
#ale ostrzega (mało liczne klasy przy dużym wydatku)

#pierwsza poprawka
podzial = seq(min(WYDATEK), max(WYDATEK), length = 10)
table(cut(WYDATEK, podzial))
#no to tak:
podzial2 = podzial[c(1:7, 10)]
#OK:
table(cut(WYDATEK, podzial2))
#to jeszcze to
wyk = factor(WYKSZTALCENIE, levels = c("P", "Z", "S", "W"))
table(wyk, cut(WYDATEK, podzial2))
chisq.test(table(wyk, cut(WYDATEK, podzial2)))
detach(dane)


Wyszukiwarka