#https://dasl.datadescription.com/datafile/hard-water/?_sfm_methods=Comparing+Two+Groups&_sfm_cases=4+59943 #Hard water #Number of Cases: 61 #Story: In an investigation of environmental causes of disease, data were collected on the annual mortality rate #(deaths per 100,000) for males in 61 large towns in England and Wales. #In addition, the water hardness was recorded as the calcium concentration (parts per million, ppm) #in the drinking water. originale<-read.table("hard-water.txt",header=TRUE,sep="\t") View(originale) median(originale$Calcium) # uso la mediana per discriminare valori alti e bassi di Calcio A<-originale[which(originale$Calcium>=39),"Mortality"] B<-originale[which(originale$Calcium<39),"Mortality"] All<-data.frame(Calcium=c(rep("Up",length(A)),rep("Down",length(B))),Mortality=c(A,B))# costruisco il dataset wilcox.test(A,B, alternative = "two.sided",exact=FALSE) # H0: A = B; p-value basso ipotesi H0 rigettata wilcox.test(A,B, alternative = "greater",exact=FALSE)# H0: A <= B; p-value alto ipotesi H0 NON rigettata, cioé è vero # che la distribuzione di valori di A è spostata a sinistra rispetto a B wilcox.test(A,B, alternative = "less",exact=FALSE) # H0: A >= B; p-value basso ipotesi H0 rigettata, cioé è falso # che la distribuzione di valori di A è spostata a destra rispetto a B ################################################################################################ # Kruskal Wallis #http://openmv.net/info/wine-doe #Description: Data from a fractional factorial for profiling a new wine. # The last 5 columns are the taste values from a panel of judges. Higher values are a better overall taste. #Data source: Actual data; used for the ChE4C3/6C3 take-home exam. #Data shape: 16 rows and 13 columns ################################################# #Wine DoE originale<-read.table("Wine_DoE.txt",sep="\t",header=T) View(originale) #-- La risposta indica il gradimento del testatore rispetto al vino #--- Test omogeneità bartlett.test(Response~Tester,data=originale) # OK bartlett.test(Response~A,data=originale) # OK bartlett.test(Response~B,data=originale) # OK bartlett.test(Response~C,data=originale) # OK bartlett.test(Response~D,data=originale) # OK bartlett.test(Response~E,data=originale) # OK bartlett.test(Response~F,data=originale) # OK bartlett.test(Response~G,data=originale) # OK bartlett.test(Response~H,data=originale) # OK #--Test normalità della risposta shapiro.test(originale$Response) # la distribuzione NON è NORMALE!!! Quindi non si possono usare i test parametrici. #-- Test non parametrico #-- prima si fa sui Tester, cioè i degustatori del vino #-- questo è un possibile blocking factor!!! Perché potrebbe essere una variabile "indesiderata" che influisce sulla risposta. kruskal.test(Response~Tester,data=originale) # p-value alto, quindi differenze non significative #-- Post-hoc test # Se p-value fosse stato basso (<0.05, o <0.01, etc...) # si sarebbe proceduto anche a confrontare i gruppi a due a due, sempre con test non parametrico, # per individuare il o i Tester più diversi dagli altri, es.: originaleA<-originale[which(originale$Tester=="a"),"Response"] originaleB<-originale[which(originale$Tester=="b"),"Response"] wilcox.test(originaleA,originaleB, alternative = "two.sided", exact=FALSE) ############################################################################## #-- Appurato che i testatori non sono un blocking factor #-- si procede a valutare l'effetto delle variabili A-H sulla risposta kruskal.test(Response~A,data=originale)# p-value<0.1 quindi influisce POCO sulla risposta kruskal.test(Response~B,data=originale)# p-value<0.1 quindi influisce POCO sulla risposta kruskal.test(Response~C,data=originale)# p-value>0.1 quindi non influisce sulla risposta kruskal.test(Response~D,data=originale)# p-value<0.001 quindi influisce MOLTO sulla risposta kruskal.test(Response~E,data=originale)# p-value<0.05 quindi influisce ABBASTANZA sulla risposta kruskal.test(Response~F,data=originale)# p-value<0.1 quindi influisce POCO sulla risposta kruskal.test(Response~G,data=originale)# p-value<0.1 quindi influisce POCO sulla risposta kruskal.test(Response~H,data=originale)# p-value<0.01 quindi influisce MOLTO sulla risposta