Zadání: https://physics.ujep.cz/~jskvor/ZZD/ZZD-cv5.html
library(dplyr)
library(DescTools)
library(ggplot2)
library(rvest)
Načtěte tabulku StudentsPerformance.csv
obsahující data ze šetření úspěšnosti studentů v oblasti matematiky,
čtení a psaní.
df <- read.csv(file = "https://physics.ujep.cz/~jskvor/ZZD/StudentsPerformance.csv")
- spočítejte průměrnou hodnotu z náhodného vzorku sloupce
math.score
velikost_vzorku <- round(abs(rnorm(1, mean = 0, sd = 100)))
mean(sample(df$math.score, size = velikost_vzorku))
[1] 67.89552
- výpočet proveďte pro různé velikosti náhodných vzorků (různé počty
hodnot ve vzorku)
for(j in 32:64){
print(mean(sample(df$math.score, size = j)))
}
[1] 68.59375
[1] 68.87879
[1] 64.26471
[1] 70.54286
[1] 62.44444
[1] 67.2973
[1] 65.13158
[1] 65.10256
[1] 66.45
[1] 62.58537
[1] 65.7619
[1] 66.5814
[1] 65.93182
[1] 67.13333
[1] 67.34783
[1] 65.6383
[1] 65.16667
[1] 63.12245
[1] 65.12
[1] 64.64706
[1] 66.53846
[1] 66.73585
[1] 66.96296
[1] 66.47273
[1] 63.57143
[1] 66.19298
[1] 66.7931
[1] 65.30508
[1] 67.93333
[1] 63.63934
[1] 65.22581
[1] 66.98413
[1] 64.26562
- do grafu vyneste absolutní hodnotu rozdílu průměrné hodnoty vzorku
od celkové střední hodnoty jako funkci velikosti vzorku
for(j in 1:length(df$math.score)){
vector[j] <- abs(mean(sample(df$math.score, size = j)) - mean(sample(df$math.score, size = length(df$math.score))))
}
#plot(vector)
PlotLinesA(vector)

Korelace a regrese
- Pomocí bodového grafu vykreslete vztah sloupců
writing.score a reading.score vůči sloupci
math.score.
- Vytvořte lineární regresní model popisující vykreslené závislosti.
Výsledný model přidejte do každého z grafů jako novou křivku.
- Pro každou závislost vypočtěte Pearsonův a Spearmanův korelační
koeficient.
pearson <- toString(cor(df$reading.score,df$math.score,method = "pearson"))
spearman <- toString(cor(df$reading.score,df$math.score,method = "spearman"))
llabell <- paste("Reading vs. Math\n Pearson: ",pearson,"\n Spearman: ",spearman)
ggplot(df,aes(reading.score,math.score)) +
geom_point(col = "green")+
geom_smooth(method = "lm") +
labs( title = llabell)

pearson <- toString(cor(df$writing.score,df$math.score,method = "pearson"))
spearman <- toString(cor(df$writing.score,df$math.score,method = "spearman"))
llabell <- paste("Writing vs. Math\n Pearson: ",pearson,"\n Spearman: ",spearman)
ggplot(df,aes(writing.score,math.score)) +
geom_point(col = "orange")+
geom_smooth(method = "lm") +
labs(title = llabell )

Statistické testování
Ověřte následující hypotézy
1. průměrné skóre studentů (avg_score z
minulého cvičení) nezávisí na tom, zda se studenti na test připravovali
nebo ne (sloupec test.preparation.course)
df$avg_score <- (as.integer(df$math.score) + as.integer(df$reading.score) + as.integer(df$writing.score)) / 3
shapiro.test(df$avg_score)
Shapiro-Wilk normality test
data: df$avg_score
W = 0.99315, p-value = 0.0001453
HO: zamítáme => nemáme normální rozdělení Pokud
je p-hodnota menší než hladina významnosti (typicky 0,05), nulová
hypotéza o normalitě je zamítnuta.
použijemen kruskala
kruskal.test(df$test.preparation.course~df$avg_score)
Kruskal-Wallis rank sum test
data: df$test.preparation.course by df$avg_score
Kruskal-Wallis chi-squared = 237.07, df = 193, p-value = 0.01678
alpha = 0.05 p-value < alpha
H0 zamítáme
Nulová hypotéza Kruskalova-Wallisova testu tvrdí, že mezi vzorky
neexistují žádné statisticky významné rozdíly
Nulová hypotéza H0 o shodě mediánů je proto zamítnuta.
Kruskalův-Wallisův test tak prokázal závislost mezi kategoriální a
číselnou proměnnou
2. dosažená úroveň vzdělání rodičů studenta
(parental level of education) nezávisí na etnické skupině
(race.etnicity))
# nejdriv se usí udelat kontingencni tabulka pro kategoricke promenne
tabulka <- table(df$parental.level.of.education,df$race.ethnicity)
# nad tabulkou potom pustit chi-kvadrat
chisq.test(tabulka)
Pearson's Chi-squared test
data: tabulka
X-squared = 29.459, df = 20, p-value = 0.07911
alpha = 0.05, p-value > alpha
H0: nezamítáme
vzdělání rodičů na race_ethnicity nezávisí
LS0tDQp0aXRsZTogImN2IDUiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQoqKlphZMOhbsOtKio6IDxodHRwczovL3BoeXNpY3MudWplcC5jei9+anNrdm9yL1paRC9aWkQtY3Y1Lmh0bWw+DQoNCmBgYHtyfQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkoRGVzY1Rvb2xzKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShydmVzdCkNCmBgYA0KDQoqKk5hxI10xJt0ZSB0YWJ1bGt1IGBTdHVkZW50c1BlcmZvcm1hbmNlLmNzdmAgb2JzYWh1asOtY8OtIGRhdGEgemUgxaFldMWZZW7DrSDDunNwxJvFoW5vc3RpIHN0dWRlbnTFryB2wqBvYmxhc3RpIG1hdGVtYXRpa3ksIMSNdGVuw60gYcKgcHNhbsOtLioqDQoNCmBgYHtyfQ0KZGYgPC0gcmVhZC5jc3YoZmlsZSA9ICJodHRwczovL3BoeXNpY3MudWplcC5jei9+anNrdm9yL1paRC9TdHVkZW50c1BlcmZvcm1hbmNlLmNzdiIpDQpgYGANCg0KLSAgIHNwb8SNw610ZWp0ZSBwcsWvbcSbcm5vdSBob2Rub3R1IHogbsOhaG9kbsOpaG8gdnpvcmt1IHNsb3VwY2UgYG1hdGguc2NvcmVgDQoNCmBgYHtyfQ0KdmVsaWtvc3Rfdnpvcmt1IDwtIHJvdW5kKGFicyhybm9ybSgxLCBtZWFuID0gMCwgc2QgPSAxMDApKSkNCm1lYW4oc2FtcGxlKGRmJG1hdGguc2NvcmUsIHNpemUgPSB2ZWxpa29zdF92em9ya3UpKQ0KYGBgDQoNCi0gICB2w71wb8SNZXQgcHJvdmXEj3RlIHBybyByxa96bsOpIHZlbGlrb3N0aSBuw6Fob2Ruw71jaCB2em9ya8WvIChyxa96bsOpIHBvxI10eSBob2Rub3QgdmUgdnpvcmt1KQ0KDQpgYGB7cn0NCmZvcihqIGluIDMyOjY0KXsNCiAgcHJpbnQobWVhbihzYW1wbGUoZGYkbWF0aC5zY29yZSwgc2l6ZSA9IGopKSkNCn0NCmBgYA0KDQotICAgZG8gZ3JhZnUgdnluZXN0ZSBhYnNvbHV0bsOtIGhvZG5vdHUgcm96ZMOtbHUgcHLFr23Em3Juw6kgaG9kbm90eSB2em9ya3Ugb2QgY2Vsa292w6kgc3TFmWVkbsOtIGhvZG5vdHkgamFrbyBmdW5rY2kgdmVsaWtvc3RpIHZ6b3JrdQ0KDQpgYGB7cn0NCmZvcihqIGluIDE6bGVuZ3RoKGRmJG1hdGguc2NvcmUpKXsNCiB2ZWN0b3Jbal0gPC0gYWJzKG1lYW4oc2FtcGxlKGRmJG1hdGguc2NvcmUsIHNpemUgPSBqKSkgLSBtZWFuKHNhbXBsZShkZiRtYXRoLnNjb3JlLCBzaXplID0gbGVuZ3RoKGRmJG1hdGguc2NvcmUpKSkpDQp9DQojcGxvdCh2ZWN0b3IpDQpQbG90TGluZXNBKHZlY3RvcikNCmBgYA0KDQojIyBLb3JlbGFjZSBhIHJlZ3Jlc2UNCg0KLSAgIFBvbW9jw60gYm9kb3bDqWhvIGdyYWZ1IHZ5a3Jlc2xldGUgdnp0YWggc2xvdXBjxa8gYHdyaXRpbmcuc2NvcmVgIGHCoGByZWFkaW5nLnNjb3JlYCB2xa/EjWkgc2xvdXBjaSBgbWF0aC5zY29yZWAuDQotICAgVnl0dm/FmXRlIGxpbmXDoXJuw60gcmVncmVzbsOtIG1vZGVsIHBvcGlzdWrDrWPDrSB2eWtyZXNsZW7DqSB6w6F2aXNsb3N0aS4gVsO9c2xlZG7DvSBtb2RlbCBwxZlpZGVqdGUgZG8ga2HFvmTDqWhvIHrCoGdyYWbFryBqYWtvIG5vdm91IGvFmWl2a3UuDQotICAgUHJvIGthxb5kb3UgesOhdmlzbG9zdCB2eXBvxI10xJt0ZSBQZWFyc29uxa92IGHCoFNwZWFybWFuxa92IGtvcmVsYcSNbsOtIGtvZWZpY2llbnQuDQoNCmBgYHtyfQ0KcGVhcnNvbiA8LSB0b1N0cmluZyhjb3IoZGYkcmVhZGluZy5zY29yZSxkZiRtYXRoLnNjb3JlLG1ldGhvZCA9ICJwZWFyc29uIikpDQpzcGVhcm1hbiA8LSB0b1N0cmluZyhjb3IoZGYkcmVhZGluZy5zY29yZSxkZiRtYXRoLnNjb3JlLG1ldGhvZCA9ICJzcGVhcm1hbiIpKQ0KbGxhYmVsbCA8LSBwYXN0ZSgiUmVhZGluZyB2cy4gTWF0aFxuIFBlYXJzb246ICIscGVhcnNvbiwiXG4gU3BlYXJtYW46ICIsc3BlYXJtYW4pDQoNCmdncGxvdChkZixhZXMocmVhZGluZy5zY29yZSxtYXRoLnNjb3JlKSkgKw0KICBnZW9tX3BvaW50KGNvbCA9ICJncmVlbiIpKw0KICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKSArDQogIGxhYnMoIHRpdGxlID0gbGxhYmVsbCkNCg0KYGBgDQoNCmBgYHtyfQ0KcGVhcnNvbiA8LSB0b1N0cmluZyhjb3IoZGYkd3JpdGluZy5zY29yZSxkZiRtYXRoLnNjb3JlLG1ldGhvZCA9ICJwZWFyc29uIikpDQpzcGVhcm1hbiA8LSB0b1N0cmluZyhjb3IoZGYkd3JpdGluZy5zY29yZSxkZiRtYXRoLnNjb3JlLG1ldGhvZCA9ICJzcGVhcm1hbiIpKQ0KbGxhYmVsbCA8LSBwYXN0ZSgiV3JpdGluZyB2cy4gTWF0aFxuIFBlYXJzb246ICIscGVhcnNvbiwiXG4gU3BlYXJtYW46ICIsc3BlYXJtYW4pDQoNCmdncGxvdChkZixhZXMod3JpdGluZy5zY29yZSxtYXRoLnNjb3JlKSkgKw0KICBnZW9tX3BvaW50KGNvbCA9ICJvcmFuZ2UiKSsNCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikgKw0KICBsYWJzKHRpdGxlID0gbGxhYmVsbCApDQpgYGANCg0KIyMgU3RhdGlzdGlja8OpIHRlc3RvdsOhbsOtDQoNCioqT3bEm8WZdGUgbsOhc2xlZHVqw61jw60gaHlwb3TDqXp5KioNCg0KKioxLiAgcHLFr23Em3Juw6kgc2vDs3JlIHN0dWRlbnTFryoqIChgYXZnX3Njb3JlYCB6IG1pbnVsw6lobyBjdmnEjWVuw60pIG5lesOhdmlzw60gbmEgdG9tLCB6ZGEgc2Ugc3R1ZGVudGkgbmEgdGVzdCBwxZlpcHJhdm92YWxpIG5lYm8gbmUgKHNsb3VwZWMgYHRlc3QucHJlcGFyYXRpb24uY291cnNlYCkNCmBgYHtyfQ0KZGYkYXZnX3Njb3JlIDwtIChhcy5pbnRlZ2VyKGRmJG1hdGguc2NvcmUpICsgYXMuaW50ZWdlcihkZiRyZWFkaW5nLnNjb3JlKSArIGFzLmludGVnZXIoZGYkd3JpdGluZy5zY29yZSkpIC8gMw0KYGBgDQpgYGB7cn0NCnNoYXBpcm8udGVzdChkZiRhdmdfc2NvcmUpDQpgYGANCioqSE86IHphbcOtdMOhbWUgPT4gbmVtw6FtZSBub3Jtw6FsbsOtIHJvemTEm2xlbsOtKioNClBva3VkIGplIHAtaG9kbm90YSBtZW7FocOtIG5lxb4gaGxhZGluYSB2w716bmFtbm9zdGkgKHR5cGlja3kgMCwwNSksIG51bG92w6EgaHlwb3TDqXphIG8gbm9ybWFsaXTEmyBqZSB6YW3DrXRudXRhLiANCg0KcG91xb5pamVtZW4ga3J1c2thbGENCg0KYGBge3J9DQprcnVza2FsLnRlc3QoZGYkdGVzdC5wcmVwYXJhdGlvbi5jb3Vyc2V+ZGYkYXZnX3Njb3JlKQ0KYGBgDQoqKmFscGhhID0gMC4wNSAgcC12YWx1ZSA8IGFscGhhKioNCg0KKipIMCB6YW3DrXTDoW1lKioNCg0KKiBOdWxvdsOhIGh5cG90w6l6YSBLcnVza2Fsb3ZhLVdhbGxpc292YSB0ZXN0dSB0dnJkw60sIMW+ZSBtZXppIHZ6b3JreSBuZWV4aXN0dWrDrSDFvsOhZG7DqSBzdGF0aXN0aWNreSB2w716bmFtbsOpIHJvemTDrWx5DQoNCiogTnVsb3bDoSBoeXBvdMOpemEgSDAgbyBzaG9kxJsgbWVkacOhbsWvIGplIHByb3RvIHphbcOtdG51dGEuIEtydXNrYWzFr3YtV2FsbGlzxa92IHRlc3QgdGFrIHByb2vDoXphbCB6w6F2aXNsb3N0IG1lemkga2F0ZWdvcmnDoWxuw60gYSDEjcOtc2Vsbm91IHByb23Em25ub3UNCg0KKioyLiBkb3Nhxb5lbsOhIMO6cm92ZcWIIHZ6ZMSbbMOhbsOtKiogcm9kacSNxa8gc3R1ZGVudGEgKGBwYXJlbnRhbCBsZXZlbCBvZiBlZHVjYXRpb25gKSBuZXrDoXZpc8OtIG5hIGV0bmlja8OpIHNrdXBpbsSbIChgcmFjZS5ldG5pY2l0eWApKQ0KYGBge3J9DQojIG5lamRyaXYgc2UgdXPDrSB1ZGVsYXQga29udGluZ2VuY25pIHRhYnVsa2EgcHJvIGthdGVnb3JpY2tlIHByb21lbm5lDQp0YWJ1bGthIDwtIHRhYmxlKGRmJHBhcmVudGFsLmxldmVsLm9mLmVkdWNhdGlvbixkZiRyYWNlLmV0aG5pY2l0eSkNCg0KIyBuYWQgdGFidWxrb3UgcG90b20gcHVzdGl0IGNoaS1rdmFkcmF0DQpjaGlzcS50ZXN0KHRhYnVsa2EpDQpgYGANCioqYWxwaGEgPSAwLjA1LCBwLXZhbHVlID4gYWxwaGEqKg0KDQoqKkgwOiBuZXphbcOtdMOhbWUqKg0KDQp2emTEm2zDoW7DrSByb2RpxI3FryBuYSByYWNlX2V0aG5pY2l0eSBuZXrDoXZpc8OtDQoNCg==