# Κεφάλαιο 12
# Υπολογισμός του κριτηρίου t ανεξάρτητων δειγμάτων στο R

# Φορτώνουμε τα ακόλουθα πακέτα
library(foreign)
library(psych)
library(Rcmdr)
library(effsize)
library(dplyr)
library(ggplot2)
library(lsr)

# Απόδοση των δεδομένων του ερευνητικού παραδείγματος στο πλαίσιο δεδομένων ch12a
ch12a<-read.spss('chapter12_1.sav', to.data.frame=T)

# Υπολογισμός περιγραφικών στατιστικών μέτρων describeBy(ch12a$open,ch12a$gender,mat=T,digits=3)

# Κατασκευή θηκογράμματος των δεδομένων
plot(ch12a)

# Υπολογισμός του κριτηρίου Levene για τον έλεγχο της ισότητας των διακυμάνσεων
leveneTest(open~gender, ch12a, center=mean)

# Σύγκριση δύο ανεξάρτητων δειγμάτων υποθέτοντας ίση διακύμανση
t.test(open~gender,ch12a,var.equal=T)

# Σύγκριση δύο ανεξάρτητων δειγμάτων με διόρθωση για άνισες διακυμάνσεις
t.test(open~gender,ch12a)

# Υπολογισμός του Cohen’s d υποθέτοντας ίση διακύμανση
cohen.d(ch12a$open, ch12a$gender, pooled=T)

# Υπολογισμός του Glass’s δ (μέγεθος επίδρασης όταν οι τυπικές αποκλίσεις των δύο ομάδων διαφέρουν) 
cohen.d(ch12a$open, ch12a$gender, pooled=F)

# Υπολογισμός του Hedges’s g (μέγεθος επίδρασης όταν έχουμε άνισες διακυμάνσεις)
cohen.d(ch12a$open, ch12a$gender, pooled=T, hedges.correction=T)

# Υπολογισμός του περιθωρίου σφάλματος και απόδοση στο αντικείμενο ch12a_summary όλων των περιγραφικών στατιστικών μέτρων που απαιτούνται για την κατασκευή του διαγράμματος σφαλμάτων
ch12a_summary<-ch12a %>% group_by(gender) %>% summarise(MEANS=mean(open), SDs=sd(open), n=n(), se=SDs/sqrt(n()), df=n-1, w=qt(1-0.05/2,df)*se)
ch12a_summary

# Κατασκευή του διαγράμματος σφαλμάτων
ggplot(ch12a_summary, aes(gender, MEANS))+ geom_point()+ geom_errorbar(aes(ymin=MEANS - w, ymax=MEANS + w), col='red',width=0.1)+labs(x="Φύλο", y="Δεκτικότητα στην εμπειρία")
ggplot(ch12a_summary, aes(gender, MEANS))+ geom_col()+ geom_errorbar(aes(ymin=MEANS - w, ymax=MEANS + w), col='red',width=0.1)+labs(x="Φύλο", y="Δεκτικότητα στην εμπειρία")

# Υπολογισμός του κριτηρίου t εξαρτημένων δειγμάτων στο R

# Απόδοση των δεδομένων του ερευνητικού παραδείγματος στο πλαίσιο δεδομένων ch12b
ch12b<-read.spss('chapter12_2.sav', to.data.frame=T)

# Κατασκευή θηκογράμματος των δεδομένων
boxplot(ch12b)

# Υπολογισμός περιγραφικών στατιστικών μέτρων
describe(ch12b)

# Σύγκριση δύο εξαρτημένων δειγμάτων (μονόδρομος έλεγχος)
t.test(ch12b$before,ch12b$after, alternative="less", paired=T)
# Η προεπιλεγμένη τιμή του ορίσματος alternative είναι "two.sided" (υπόθεση δίπλευρου ελέγχου), ενώ μπορεί να πάρει δύο ακόμη την τιμή “greater”, η οποία σημαίνει πως η διαφορά του δεύτερου από τον πρώτο μέσο όρο (Μ1-Μ2) θα είναι μεγαλύτερη από το μηδέν

# Υπολογισμός του Cohen’s d
cohensD(ch12b$before, ch12b$after, method="paired")

# Κατασκευή του διαγράμματος σφαλμάτων
d<-apply(ch12b,1,diff)	# Υπολογισμός διαφορών
N<-nrow(ch12b)		# Υπολογισμός Ν
s<-sd(d)/sqrt(N)	# Υπολογισμός s
md<-mean(d)		# Υπολογισμός μέσης διαφοράς
t<-md/s			# Υπολογισμός τιμής t
df<-N-1			# Υπολογισμός βαθμών ελευθερίας
p<-2*(1-pt(t,df))	# Υπολογισμός τιμής p
tc<-qt((1-0.05/2),df)	# Υπολογισμός κρίσιμης τιμής t
m<-apply(ch12b,2,mean)	# Υπολογισμός μέσου όρου
sd<-apply(ch12b,2,sd)	# Υπολογισμός τυπικής απόκλισης
w<-tc*sd/sqrt(N)	# Υπολογισμός του περιθωρίου σφάλματος

# Σχεδιασμός του διαγράμματος σφαλμάτων
plot(c(1,2),m,xlim=c(0.5,2.5),ylim=c(24,51), xlab="Αυτοεικόνα",ylab="95% CI",las=1,type="p",xaxt="n")
axis(side=1,at=c(1,2),labels=c("Πριν θεραπεία", "Μετά θεραπεία"))
arrows(c(1,2),m-w,c(1,2),m+w, angle=90, code=3, length=0.2)

# Υπολογισμός του κριτηρίου t για ένα δείγμα στο R

# Απόδοση των δεδομένων του ερευνητικού παραδείγματος στο πλαίσιο δεδομένων ch12c
ch12c<-read.spss('chapter12_3.sav', to.data.frame=T)

# Υπολογισμός του κριτηρίου
t.test(ch12c$anxiety, mu=35.7)

# Υπολογισμός του κριτηρίου Mann-Whitney στο R

# Απόδοση των δεδομένων του ερευνητικού παραδείγματος στο πλαίσιο δεδομένων ch12d
ch12d<-read.spss('chapter12_4.sav', to.data.frame=T)

# Έλεγχος της κανονικότητας της εξαρτημένης μεταβλητής μέσω ιστογράμματος
hist(ch12d$g_factor,breaks=1:25*2,xlim=c(0,50),ylim=c(0,20),las=1,col="grey70",xlab="Νοητική Ικανότητα")

# Υπολογισμός του κριτηρίου Wilcoxon rank-sum 
wilcox.test(g_factor~gender, exact=F, correct=F, conf.int=T,conf.level=0.95, ch12d)

# Υπολογισμός του κριτηρίου Wilcoxon στο R

# Απόδοση των δεδομένων του ερευνητικού παραδείγματος στο πλαίσιο δεδομένων ch12e
ch12e<-read.spss('chapter12_5.sav', to.data.frame=T)

# Κατασκευή θηκογράμματος των δεδομένων
boxplot(ch12e)

# Υπολογισμός περιγραφικών στατιστικών μέτρων
describe(ch12e)

# Υπολογισμός του κριτηρίου Wilcoxon signed rank test
wilcox.test(ch12e$caffeine, ch12e$placebo, paired=T, conf.int=T, conf.level=0.95)