####################################################################################### ########################## Jednovýběrové testy ######################################## ######################### Martina Litschmannová ####################################### ####################################################################################### ################## Přiklad 1. (Albumin) ############################################### ####################################################################################### # Test o střední hodnotě / mediánu ## Načtení dat z xlsx souboru (pomoci balíčku readxl) library(readxl) albumin = read_excel("C:/Users/lit40/Desktop/testy_jednovyberove.xlsx", sheet = "bilk_serum") colnames(albumin)="hodnoty" ## Explorační analýza boxplot(albumin$hodnoty) # Data neobsahují odlehlá pozorování. summary(albumin$hodnoty) sd(albumin$hodnoty) # Ověření normality qqnorm(albumin$hodnoty) qqline(albumin$hodnoty) hist(albumin$hodnoty) library(moments) skewness(albumin$hodnoty) moments::kurtosis(albumin$hodnoty)-3 # Vizualizace dat, šikmost i špičatost odpovídají norm. rozdělení. # Pro konečné rozhodnutí o normalitě dat použijeme test normality. # Předpoklad normality ověříme Shapirovovým - Wilkovovým testem. shapiro.test(albumin$hodnoty) # Na hl. významnosti 0,05 nelze předpoklad normality zamítnout # (Shapirův-Wilkův test, p-hodnota=0,236). # H0: mu = 35 g/l # Ha: mu <> 35 g/l t.test(albumin$hodnoty,mu=35,conf.level=0.95) # Na hl. významnosti 0,05 zamítáme nulovou hypotézu ve prospěch hypotézy alternativní # (t-test, t = -19,2, df = 217, p-hodnota << 0,001). # Střední hodnota albuminu se statisticky významně liší od 35 g/l. ################## Přiklad 2. (Přežití) ############################################### ####################################################################################### # Test o střední hodnotě / mediánu ## Načtení dat z xlsx souboru (pomoci balíčku readxl) library(readxl) preziti = read_excel("C:/Users/lit40/Desktop/testy_jednovyberove.xlsx", sheet = "preziti") colnames(preziti)="hodnoty" ## Explorační analýza boxplot(preziti$hodnoty) # Data obsahují odlehlá pozorování. Pomoci f-ce boxplot je umíme vypsat. pom=boxplot(preziti$hodnoty) pom # rozhodli-li jsme se pro odstranění odlehlých hodnot, pak preziti$hodnoty.bez=preziti$hodnoty # doporučujeme nepřepisovat původní data preziti$hodnoty.bez[preziti$hodnoty>=85]=NA # nebo preziti$hodnoty.bez[preziti$hodnoty %in% pom$out]=NA ## Explorační analýza pro data bez odlehlých pozorování boxplot(preziti$hodnoty.bez) summary(preziti$hodnoty.bez,na.rm=TRUE) sd(preziti$hodnoty.bez,na.rm=TRUE) # Ověření normality qqnorm(preziti$hodnoty.bez) qqline(preziti$hodnoty.bez) hist(preziti$hodnoty.bez) library(moments) skewness(preziti$hodnoty.bez,na.rm=TRUE) moments::kurtosis(preziti$hodnoty.bez,na.rm=TRUE)-3 # QQ - graf i histogram ukazují, že výběr pravděpodobně není výběrem z normálního rozdělení. # Šikmost i špičatost odpovídá norm. rozdělení. Pro konečné rozhodnutí o normalitě dat použijeme # test normality. # Předpoklad normality ověříme Shapirovovým . Wilkovovým testem. shapiro.test(preziti$hodnoty.bez) # Na hl. významnosti 0.05 zamítáme předpoklad normality # (Shapirův-Wilkův test, p-hodnota<<0,001). # H0: median = 22,2 měsíců # Ha: median > 22,2 měsíců wilcox.test(preziti$hodnoty.bez,mu=22.2,alternative="greater",conf.level=0.95,conf.int=TRUE) # Na hl. významnosti 0,05 nelze zamítnout nulovou hypotézu # (Wilcoxonův znaménkový test s korekci na spojitost, V = 2229, p-hodnota = 0,506). # Medián doby přežití není statisticky významně větší než 22,2 měsíců. ################## Přiklad 3. (Kroužky) ############################################### ####################################################################################### # Test o směrodatné odchylce # Předpokládáme normalitu dat (dle zadání) n = 80 # rozsah souboru s = 0.04 # mm .... výběrová směrodatná odchylka (bodový odhad sm. odchylky) sigma0=0.05 alpha = 0.05 # hladina významnosti (spolehlivost 1-alpha = 0.95) # H0: sigma = 0.05 mm # Ha: sigma < 0.05 mm x.obs = (n-1)*s^2/sigma0^2 p.hodnota = pchisq(x.obs,n-1) p.hodnota # Na hladině významnosti 0,05 zamítáme nulovou hypotézu ve prospěch alternativní # (test o rozptylu, X2 = 50,56, p-hodnota = 0,005). # Směrodatná odchylka průměru kroužku je statisticky významně menší než 0,05 mm. ################## Přiklad 4. (Kroužky - data) ######################################## ####################################################################################### ## Načtení dat z xlsx souboru (pomoci balíčku readxl) library(readxl) krouzky = read_excel("C:/Users/lit40/Desktop/testy_jednovyberove.xlsx", sheet = "krouzky") colnames(krouzky)="hodnoty" ## Explorační analýza boxplot(krouzky$hodnoty) # Data obsahují odlehlá pozorování. Pomoci f-ce boxplot je umíme vypsat. pom=boxplot(krouzky$hodnoty) pom # rozhodli-li jsme se pro odstranění odlehlých hodnot, pak krouzky$hodnoty.bez = krouzky$hodnoty krouzky$hodnoty.bez[krouzky$hodnoty %in% pom$out]=NA ## Explorační analýza pro data bez odlehlých pozorování boxplot(krouzky$hodnoty.bez) summary(krouzky$hodnoty.bez,na.rm=TRUE) sd(krouzky$hodnoty.bez,na.rm=TRUE) # Ověření normality qqnorm(krouzky$hodnoty.bez) qqline(krouzky$hodnoty.bez) hist(krouzky$hodnoty.bez) library(moments) skewness(krouzky$hodnoty.bez,na.rm=TRUE) moments::kurtosis(krouzky$hodnoty.bez,na.rm=TRUE)-3 # Šikmost i špičatost odpovídá norm. rozdělení. Pro konečné rozhodnutí o normalitě dat použijeme # test normality. # Předpoklad normality ověříme Shapirovovým . Wilkovovým testem. shapiro.test(krouzky$hodnoty.bez) # Na hl. významnosti 0.05 nelze předpoklad normality zamítnout # (Shapirův-Wilkův test, W = 0,970, p-hodnota=0,063). # H0: sigma = 0.05 mm # Ha: sigma < 0.05 mm library(EnvStats) varTest(krouzky$hodnoty.bez,sigma.squared = 0.05^2,alternative = "less") # Na hladině významnosti 0,05 zamítáme H0 ve prospěch Ha # (test o rozptylu, X = 19,01, df = 77, p-hodnota < 0,001). # Jak najít 95% intervalový odhad směrodatné odchylky? pom = varTest(krouzky$hodnoty.bez) sqrt(pom$conf.int) ################## Přiklad 5. (Rezistory) ############################################# ####################################################################################### n = 1000 # rozsah souboru x = 15 # počet "úspěchů" p = x/n # relativní četnost (bodový odhad pravděpodobnosti) p alpha = 0.05 # hladina významnosti (spolehlivost 1-alpha = 0.95) # Ověření předpokladů n>30 & n > 9/(p*(1-p)) # Dále předpokládáme n/N < 0.05, tj. že daná populace (rezistorů) má rozsah # alespoň 200/0.05 = 200*20 = 4 000 rezistorů, což je asi vcelku reálný předpoklad :-) ## Clopperův - Pearsonův (exaktní) test ## H0: pi = 0.01 ## Ha: pi > 0.01 binom.test(x,n,0.01,alternative="greater",conf.level=0.95) # Na hladině významnosti 0,05 nezamítáme H0 # (Clopperův - Pearsonův test, p-hodnota = 0,082). # Neze očekávat, že podíl vadných rezistorů ve výrobě statisticky významně # převyšuje 1 %.