# 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 [-陆, 陆].
dane=read.csv2("wzrost.csv")
dane
attach(dane)
k=15
w=0:k
sr=mean(wzrost)
od=sd(wzrost)
podzial=qnorm(w/k,sr,od)
podzial
podzial[1]=min(wzrost)-5
podzial[16]=max(wzrost)+5
podzial
szereg=table(cut(wzrost,podzial))
szereg
hist(wzrost,podzial)
teor=length(wzrost)/k
stat.test=sum(((szereg-teor)^2)/teor)
stat.test
qchisq(0.95,k-3)
#czyli odrzucamy
#zaburzamy
x=seq(-0.5,0.5,0.01)
zab=sample(x,length(wzrost),replace=T)
dane2=data.frame(wzrost=wzrost+zab)
attach(dane2)
k=15
w=0:k
sr=mean(wzrost)
od=sd(wzrost)
podzial=qnorm(w/k,sr,od)
podzial
podzial[1]=min(wzrost)-5
podzial[16]=max(wzrost)+5
podzial
szereg=table(cut(wzrost,podzial))
szereg
hist(wzrost,podzial)
teor=length(wzrost)/k
stat.test=sum(((szereg-teor)^2)/teor)
stat.test
qchisq(0.95,k-3)
#zatem przyjmujemy, gdy偶 stat.test<qchisq o danych parametrach.
#Dla danych z pliku czas_wykonania2.csv przetestowa膰 hipotez臋, 偶e w艣r贸d os贸b
#na 3-cim poziomie kwalifikacji kobiety wykonuj膮 badan膮
#czynno艣膰 tak samo szybko jak m臋偶czy藕ni,
#przeciwko temu, 偶e robi膮 to wolniej na poziomie istotno艣ci 0,95.
dane = read.csv2("czas_wykonania2.csv")
dane
attach(dane)
dane_p3 = data.frame(plec = plec[kwalifikacje==3],czas = czas[kwalifikacje==3])
dane_p3
czas_K = dane_p3$czas[dane_p3$plec=="K"]
czas_M= dane_p3$czas[dane_p3$plec=="M"]
plot(czas_K)
points(czas_M, col="orange")
anova(lm(dane_p3$czas~dane_p3$plec))
#skoro Pr mniejsze od alfa=0.05 odrzucamy hipoteze ze kobiety wykonuj膮
#badana czynnosc tak samo szybko, na rzecz druhiej hipotezy...
detach(dane)
rm(list=ls())
Przeanalizowa膰 wyniki wybor贸w prezydenckich w 2010 roku (dane pzt2010.csv)
- zbada膰 popracie dla kandydat贸w pod k膮tem geograficznym. Narysowa膰 odpowiedni膮
map臋 percepcji. Czy mo偶na (i jest sens) wykonywa膰 dla takich danych
test niezalezno艣ci?
Uwaga. Aby uczyni膰 mape percepcji czytelniejsz膮 mo偶na ograniczy膰 si臋 do,
na przyk艂ad, czterech kandydat贸w z najwi臋kszym poparciem. Inne zmiany
zwi臋kszaj膮ce czytelno艣膰 dodatkowo punktowane.
dene=read.csv2("wybory.csv")
attach(dene)
dene
dane2=dene[,8:17] #z艂y nawias by艂
names(dane2)=c(1:10)
dane2
library(ca)
plot(ca(dane2),mass=T)
suma_kol=colSums(dane2)
suma_kol
#wybieram 2,3,,4,7
czterech
czterech
czterech=data.frame(K1=dane2[,2],K2=dane2[,3],K3=dane2[,4],K4=dane2[,7])
plot(ca(czterech),mass=T)
chisq.test(czterech)
Narysowa膰 histogram (o 20 klasach) oraz estymator g臋sto艣ci dla zmiennej
x w 1-szej klasie (zmienna klasa) danych dane_usmiech2.csv. Przetestowa膰
hipotez臋, 偶e dane te pochodz膮 z rozk艂adu normalnego.
dane=read.csv2("dane_usmiech2.csv")
attach(dane)
dane2=data.frame(x=dane$x[klasa==1])
dane2
plot(dane2)
attach(dane2)
k = 20
mi = mean(dane2)
sigma = sd(dane2)
ile = length(dane2)
w=1:k
podzial = qnorm(w/k, mi, sigma)
podzial
podzial[1] = min(dane2)-0.1
podzial[length(podzial)] = max(dane2)+0.1
szereg = table(cut(dane2[,], podzial))
szereg
(t=chisq.test(szereg))
t
1-pchisq(t$statistic, k-3)
(hist(dane2[,], podzial, col = "yellow"))
plot(density(dane2[,]))
detach(dane2)
detach(dane)
Dla danych z pliku wzrost.csv sporz膮dzi膰 wykres zawieraj膮cy:
* histogram (oko艂o 15 klas)
* j膮drowy estymator g臋sto艣ci
* g臋sto艣膰 rozk艂adu normalnego o parametrach estymowanych na podstawie danych
dane=read.csv2("wzrost.csv")
dane
attach(dane)
length(wzrost)
k=15
dl=(max(wzrost)-min(wzrost))/(k-1)
dl
podzial=dl*(0:k)-dl/2+min(wzrost)
podzial
table(cut(wzrost,podzial))
podzial2=podzial[c(1,3:13,16)]
podzial2
szereg=table(cut(wzrost,podzial2))
hist(wzrost,podzial2)
plot(density(wzrost))
sr=mean(wzrost)
od=sd(wzrost)
gest=function(x) dnorm(x,sr,od)
x=seq(min(wzrost),max(wzrost),0.5)
hist(wzrost,podzial2)
lines(x,gest(x),col="red",lwd=3)
lines(density(wzrost),col="blue",lwd=3)
Dla zale偶no艣ci y od x (dane regresja2.csv) dopasowa膰 krzyw膮 regresji
zadan膮 r贸wnaniem y = a * sin(b*x) + c oraz wybran膮 nieparametryczn膮 metod膮
regresji. Narysowa膰 (i por贸wnac) wykresy. Dla metody parametrycznej wyznaczy膰
warto艣c wsp贸艂czynnika R^2.
dane =read.csv2("regresja2.csv")
dane
attach(dane)
#regresja paramteryczna
reg = nls(y ~ a*(sin(b*x))+c , start=list(a=1,b=1,c=0))
summary(reg)
#regresja nie parametryczna
reg2=loess(y~x)
summary(reg2)
#wykresy
plot(x,y)
ndane = data.frame(x = seq(min(x), max(x), length = 300))
#parametryczny
lines(ndane$x, predict(reg, ndane), lwd = 2, col = "blue")
#nie parametryczny
lines(ndane$x, predict(reg2, ndane), lwd = 2, col = "red")
#obliczamy R_kwadrat dla regresji parametrycznej
a = 2.008283
b=1.001095
c = 0.014549
x=dane$x
y = a*(sin(b*x))+c
y_t=y
y=dane$y
roznica1= (y-mean(y))^2
roznica2 = (y_t-mean(y))^2
R_kwadrat = sum(roznica2)/sum(roznica1)
R_kwadrat
Narysowa膰 histogram oraz estymator g臋sto艣ci dla zmiennej x w 1-szej klasie danych dane_usmiech2.csv. Przetestowa膰 hipotez臋, 偶e dane te pochodz膮 z rozk艂adu normalnego.
dane=read.csv2("dane_usmiech2.csv")
attach(dane)
dane2=data.frame(x=dane$x[klasa==1])
dane2
k = 40
mi = mean(x)
sigma = sd(x)
ile = length(x)
w = 0:k
podzial = qnorm(w/k, mi, sigma)
podzial
podzial[1] = min(x)-0.1
podzial[length(podzial)] = max(x)+0.1
szereg = table(cut(x, podzial))
szereg
t=chisq.test(szereg)
t
1-pchisq(t$statistic, k-3)
(hist(x, podzial, col = "violet"))
Narysowa膰 histogram o 20 klasach dla zmiennej x dla danych z pliku
dane_perla2.csv (z wy艂膮czeniem klasy 3-ciej). Przetestowa膰 hipotez臋, 偶e
pochodz膮 one z rozk艂adu jednostajnego na przedziale [-1,38; 1,385].
dane=read.csv2("dane_perla2.csv")
attach(dane)
dane_1_2=x[klasa!="3"]
dane_1_2
detach(dane)
plot(dane_1_2)
hist(dane_1_2)
k = 20
mi = mean(dane_1_2)
sigma = sd(dane_1_2)
ile = length(dane_1_2)
w=0:k
podzial = qunif(w/k, mi, sigma)
podzial
szereg = table(cut(dane_1_2, podzial))
szereg
(t=chisq.test(szereg))
Pogrupowa膰 dane z pliku dane_perla2.csv wed艂ug p贸l x i y na 4 klasy metod膮 k-艣rednich. Nast臋pnie przeanalizowa膰 cz臋sto艣ci wyst臋powania element贸w z r贸偶nych klas (pole klasa) w wybranych skupiskach. Policzy膰 jaka cze艣膰 element贸w "odstaje" od najcz臋stszych wybor贸w w swoich skupiskach.
Uwaga: przed wykonaniem zadania proponuj臋 ustawi膰 generator liczb pseudolosowych poleceniem set.seed(2011).
dane = read.csv2("dane_usmiech2.csv")
dane
attach(dane)
x= x[klasa ==1]
x
detach(dane)
#wykonajmy histogram dla danych x
hist (x,20)
#widzimy ze program dobra艂 z艂y podzia艂 i mamy wi臋cej niz 20 klas
#dokonajmy w艂asnego podzialu
k = 20
mi = mean(x)
sigma = sd(x)
w =0:k
podzial = qnorm(w/k, mi , sigma)
podzial
podzial[1]=min(x)-0.05
podzial[length(podzial)]=max(x)+0.05
podzial
#histogram wedlug naszego podzialu
hist(x,podzial)
#dokonajmy testu na normalno艣膰 rozk艂adu naszej zmiennej
szereg=table(cut(x,podzial))
szereg
(t=chisq.test(szereg))
t
1-pchisq(t$statistic,k-3)
#z testu wynika ze p-value jest bliskie 1 dlatego przyjmujemy hipoteze
Dla zmiennych x i y z uzwgl臋dnieniem podzia艂u na klasy policzy膰:
- 艣redni膮
- median臋
- wariancj臋
- sko艣no艣膰
Traktuj膮c dane z pliku dane_perla2.csv jako pr贸bk臋 statystyczn膮 pochodz膮dz膮 z pr贸by prostej o pewnym rozk艂adzie.
perla=read.csv2("dane_perla2.csv")
perla
attach(perla)
x_1=x[klasa=="1"]
x_2=x[klasa=="2"]
x_3=x[klasa=="3"]
y_1=y[klasa=="1"]
y_2=y[klasa=="2"]
y_3=y[klasa=="3"]
#Podzial x i y na klasy, lacznie 6 grup
#Srednia
(mean(x_1))
(mean(x_2))
(mean(x_3))
(mean(y_1))
(mean(y_2))
(mean(y_3))
#mediana
(median(x_1))
(median(x_2))
(median(x_3))
(median(y_1))
(median(y_2))
(median(y_3))
#wariancja
(var(x_1))
(var(x_2))
(var(x_3))
(var(y_1))
(var(y_2))
(var(y_3))
#skosnosc, nalezy wczytac pakiet: e1071
e1071::skewness(x_1)
e1071::skewness(x_2)
e1071::skewness(x_3)
e1071::skewness(y_1)
e1071::skewness(y_2)
e1071::skewness(y_3)
detach(perla)
#Dla danych z pliku czas_wykonania2.csv przetestowa膰 hipotez臋, 偶e w艣r贸d os贸b
#na 3-cim poziomie kwalifikacji kobiety wykonuj膮 badan膮
#czynno艣膰 tak samo szybko jak m臋偶czy藕ni,
#przeciwko temu, 偶e robi膮 to wolniej na poziomie istotno艣ci 0,95.
dane = read.csv2("czas_wykonania2.csv")
dane
attach(dane)
dane_p3 = data.frame(plec = plec[kwalifikacje==3],czas = czas[kwalifikacje==3])
dane_p3
czas_K = dane_p3$czas[dane_p3$plec=="K"]
czas_M= dane_p3$czas[dane_p3$plec=="M"]
plot(czas_K)
points(czas_M, col="orange")
anova(lm(dane_p3$czas~dane_p3$plec))
#skoro Pr mniejsze od alfa=0.05 odrzucamy hipoteze ze kobiety wykonuj膮
#badana czynnosc tak samo szybko, na rzecz druhiej hipotezy...
detach(dane)
rm(list=ls())