Testy náhodnosti

Zadanie: Otestujte náhodnosť výberu pomocou testu sérií (Wald-Wolfowitz run test) ako aj pomocou testu kritických bodov. Hladina významnosti je 0.05. H0: Merania sú náhodné. H1: Merania nie sú náhodné.

Wald-Wolfowitz run test:

data1 <- c(10, 12, 15, 8, 13, 7, 9, 14, 11, 6, 16, 8)

library(randtests)
runs.test(data1, plot = TRUE)

## 
##  Runs Test
## 
## data:  data1
## statistic = 1.2111, runs = 9, n1 = 6, n2 = 6, n = 12, p-value = 0.2259
## alternative hypothesis: nonrandomness

Hypotézu o náhodnosti nezamietame (p-value = 0.2259 > alpha = 0.05). Dáta sú náhodné.

Test kritických bodov:

turning.point.test(data1)
## 
##  Turning Point Test
## 
## data:  data1
## statistic = 0.24769, n = 12, p-value = 0.8044
## alternative hypothesis: non randomness

Ani na základe tohto testu nemôžme zamietnuť nulovú hypotézu o náhodnosti (p-value = 0.8044 > alpha = 0.05).

Jednovýberový test

Zadanie: Testom overte hypotézu, že medián procesu, z ktorého pochadzajú data je 10. Overte predpoklady testov, vyberte ten najvhodnnejší, vyvsetlite prečo a jeho výsledky interpretujte. H0: median = 10 oproti H1: median != 10. Použieme jednovýberový Wilcoxonov test. Jeho predpokladom je však, že rozdelenie dát je symetrické okolo testovaného mediánu a toto je naša úloha. Možeme skontrolovať šikmosť dat pomocou D’Agostino testu.

data2 <- c(12, 9, 11, 10, 14, 8, 13, 10, 7, 12) 

Overenie symetrie

boxplot(data2, col = "#1B9E77", main="Boxplot pre data2", ylab="Hodnoty")

library(moments)
skewness(data2)
## [1] -0.1077423

D’Agostino test:

agostino.test(data2)
## 
##  D'Agostino skewness test
## 
## data:  data2
## skew = -0.10774, z = -0.19275, p-value = 0.8472
## alternative hypothesis: data have a skewness

Na základe D’Agostino testu môžeme povedať, že data nie je zošikmena.(p-value = 0.8472 > alpha = 0.05)

Jednovýberový Wilcoxonov test:

wilcox.test(data2, mu=10)
## Warning in wilcox.test.default(data2, mu = 10): не могу подсчитать точное
## p-значение при наличии повторяющихся наблюдений
## Warning in wilcox.test.default(data2, mu = 10): не могу высчитать точное
## p-значение при наличии нулей
## 
##  Wilcoxon signed rank test with continuity correction
## 
## data:  data2
## V = 24, p-value = 0.4378
## alternative hypothesis: true location is not equal to 10

H0 nezamietame (p-value = 0.4378 > alpha = 0.05), medián je 10.

Párový test

Zadanie: Predpokladajme, že chceme overiť, či zmena výrobného postupu prináša signifikantný prínos. Overte predpoklady testov, vyberte ten najvhodnnejší, vyvsetlite prečo a jeho výsledky interpretujte.

Možeme použiť znamienkový test ako párový test alebo dvojvýberový Wilcoxonov test (Mann-Whitney test). Ale dvojvýberový Wilcoxonov test je silnejší ako znamienkový párový test, teda použijeme dvojvýberový Wilcoxonov test. H0: F_before = F_after oproti H1: F_before != F_after

before <- c(12, 15, 14, 10, 8, 9, 11, 13)  
after <- c(14, 16, 13, 12, 10, 10, 12, 15) 

boxplot(before, 
    after, 
    col = c("#1B9E77", "#D95F02"), 
    ylab= "Hodnoty", 
    names = c("Pred", "Po"),
    main="Porovnanie mediánov"
)

Keďže 2-výberový Wilcoxonov test je vhodné použiť keď sa výbery nelíšia tvarom a rozptylom, otestujeme rovnosť rozptylov neparametrickým testom.

H0: var_before=var_after H1: var_before != var_after:

df3<-data.frame("Prinos"=c(before, after), "Pred_Po"= rep(c(1,2),times=c(8, 8)))
fligner.test(Prinos ~ Pred_Po, data = df3)
## 
##  Fligner-Killeen test of homogeneity of variances
## 
## data:  Prinos by Pred_Po
## Fligner-Killeen:med chi-squared = 0.23258, df = 1, p-value = 0.6296

H0 nemôžeme zamietnuť (p-value = 0.6296 > alpha = 0.05), rozptyly sú rovnaké a môžeme použiť 2VWT

Dvojvýberový Wilcoxonov test:

wilcox.test(Prinos ~ Pred_Po, data = df3)
## Warning in wilcox.test.default(x = DATA[[1L]], y = DATA[[2L]], ...): не могу
## подсчитать точное p-значение при наличии повторяющихся наблюдений
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  Prinos by Pred_Po
## W = 22.5, p-value = 0.3406
## alternative hypothesis: true location shift is not equal to 0

H0 nemôžeme zamietnuť (p-value = 0.3406 > alpha = 0.05). Neexistuje štatisticky významný rozdiel v hodnotení týchto dvoch dat. To znamena, že výrobný postup nemá vplyv na signifikantný prínos.

Kruskal-Wallisov test

Zadanie: Predpokladajme, že testujeme vhodposť hnojiva a jeho vplyv na výnosnosť plodiny. Overte predpoklady testu a jeho výsledky následne interpretujte. Predpoklad je, že skúmame vplyv faktorovej premennej na spojitú nahodnú premennú. H0: F_A = F_B = F_C median k oproti H1: ¬H0

group1 <- c(12, 14, 15, 10, 9)  #(Hnojivo A)  
group2 <- c(22, 25, 20, 23, 24) #(Hnojivo B)  
group3 <- c(32, 30, 35, 31, 29) #(Hnojivo C)  

Overenie predpokladu (nahodnosti premmenуch):

runs.test(group1,plot=F)
## 
##  Runs Test
## 
## data:  group1
## statistic = -1.2247, runs = 2, n1 = 2, n2 = 2, n = 4, p-value = 0.2207
## alternative hypothesis: nonrandomness
runs.test(group2,plot=F)
## 
##  Runs Test
## 
## data:  group2
## statistic = 1.2247, runs = 4, n1 = 2, n2 = 2, n = 4, p-value = 0.2207
## alternative hypothesis: nonrandomness
runs.test(group3,plot=F)
## 
##  Runs Test
## 
## data:  group3
## statistic = 1.2247, runs = 4, n1 = 2, n2 = 2, n = 4, p-value = 0.2207
## alternative hypothesis: nonrandomness

Hypotézu o náhodnosti nemôžme zamietnuť (p-value = 0.2207 > alpha = 0.05). Všetky dáta sú náhodné. Teda možeme pokračovať:

data4<-data.frame("urodnost"=c(12, 14, 15, 10, 9, 22, 25, 20, 23, 24, 32, 30, 35, 31, 29), "hnojivo"=c(rep("A",5),rep("B",5),rep("C",5)))

data4$hnojivo<-factor(data4$hnojivo)

boxplot(data4$urodnost~data4$hnojivo, col = c("#1B9E77","#1B9E20","#1B9E99"), main="Porovnanie urodnosti hnojiv",xlab="Druh hnojiva",ylab="Urodnost")

Overíme testom

kruskal.test(data4$urodnost,data4$hnojivo)
## 
##  Kruskal-Wallis rank sum test
## 
## data:  data4$urodnost and data4$hnojivo
## Kruskal-Wallis chi-squared = 12.5, df = 2, p-value = 0.00193

H0 zamietame (p-value = 0.00193 < alfa = 0.05), existuje štatisticky významný rozdiel medzi hnojivami.

Testovanie kontrastov:

Zistíli sme, že existuje štatisticky významný rozdiel medzi výbermi, resp. úrovňami faktorovej premennej, zvyčajne nestačí takáto informácia, testujeme aj medzi ktorými dvojicami.

library(dunn.test)
dunn.test(data4$urodnost, data4$hnojivo, label = T, altp = T)
##   Kruskal-Wallis rank sum test
## 
## data: x and group
## Kruskal-Wallis chi-squared = 12.5, df = 2, p-value = 0
## 
## 
##                            Comparison of x by group                            
##                                 (No adjustment)                                
## Col Mean-|
## Row Mean |          A          B
## ---------+----------------------
##        B |  -1.767766
##          |     0.0771
##          |
##        C |  -3.535533  -1.767766
##          |    0.0004*     0.0771
## 
## alpha = 0.05
## Reject Ho if p <= alpha

Z výslednej tabuľky môžeme vidieť, že štatisticky významne sa líši iba hnojivo A od hnojiva C. (druhá hodnota v bunke predstavuje p-value). Hnojivo C má štatisticky významne lepší výkon ako hnojivo A.