1A

Seorang peneliti menyelidiki banyaknya infeksi virus yang diderita orang sebagai fungsi dari level stres yang mereka alami selama periode 6 bulan. Data yang diperoleh adalah:

#Data
penderita <-c (2,1,4,1,
               4,3,2,3,
               6,5,7,5,
               5,7,8,4)
tingkatan <- c(rep("Tidak stress",4),rep("Stress minimal",4),rep("Stress moderat",4),rep("Stress berat",4))
tingkatan <- factor(tingkatan, levels=c("Tidak stress","Stress minimal","Stress moderat","Stress berat"))
levels(tingkatan)
## [1] "Tidak stress"   "Stress minimal" "Stress moderat" "Stress berat"
# Menjadikan bentuk matriks 4x4
mat <- matrix(penderita, nrow = 4, byrow = TRUE)
# Memberikan nama kolom
colnames(mat) <- levels(tingkatan)
# TMenampilkan matriks
print(mat)
##      Tidak stress Stress minimal Stress moderat Stress berat
## [1,]            2              1              4            1
## [2,]            4              3              2            3
## [3,]            6              5              7            5
## [4,]            5              7              8            4
datastress <-data.frame(tingkatan,penderita)
str(datastress)
## 'data.frame':    16 obs. of  2 variables:
##  $ tingkatan: Factor w/ 4 levels "Tidak stress",..: 1 1 1 1 2 2 2 2 3 3 ...
##  $ penderita: num  2 1 4 1 4 3 2 3 6 5 ...
#Mencari rata-rata untuk masing-masing kategori
tapply(datastress$penderita, datastress$tingkatan, mean)
##   Tidak stress Stress minimal Stress moderat   Stress berat 
##           2.00           3.00           5.75           6.00
#Mencari variansi untuk masing-masing kategori
sd.tingkatan <- tapply(datastress$penderita, datastress$tingkatan, sd)
var.tingkatan <- sd.tingkatan^2
var.tingkatan
##   Tidak stress Stress minimal Stress moderat   Stress berat 
##      2.0000000      0.6666667      0.9166667      3.3333333
#Plot rata-rata respon
library(ggpubr)
## Warning: package 'ggpubr' was built under R version 4.3.3
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.3.3
ggline(datastress, x="tingkatan", y = "penderita",
add = c("mean_se", "jitter"),
order = c("Tidak stress", "Stress minimal", "Stress moderat", "Stress berat"),
xlab = "Level stress", ylab = "Penderita inveksi virus")

#Kriteria keputusan yang sesuai jika tarak signifikansi a = 0.05
n <- nrow(datastress);n
## [1] 16
k <- nlevels(datastress$tingkatan);k
## [1] 4
qf (0.95,df<-k-1,df2<-n-k)
## [1] 3.490295
#Tabel ANOVA
options(digits=10)
fit<-aov(penderita~tingkatan,data=datastress)
summary(fit)
##             Df  Sum Sq   Mean Sq F value    Pr(>F)   
## tingkatan    3 47.6875 15.895833 9.19277 0.0019594 **
## Residuals   12 20.7500  1.729167                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Perbandingan berganda dengan prosedur Bonferroni
library(DescTools)
## Warning: package 'DescTools' was built under R version 4.3.3
PostHocTest(fit, method ="bonferroni", coef.level = 0.95)
## 
##   Posthoc multiple comparisons of means : Bonferroni 
##     95% family-wise confidence level
## 
## $tingkatan
##                               diff         lwr.ci      upr.ci   pval    
## Stress minimal-Tidak stress   1.00 -1.93145682436 3.931456824 1.0000    
## Stress moderat-Tidak stress   3.75  0.81854317564 6.681456824 0.0100 ** 
## Stress berat-Tidak stress     4.00  1.06854317564 6.931456824 0.0062 ** 
## Stress moderat-Stress minimal 2.75 -0.18145682436 5.681456824 0.0719 .  
## Stress berat-Stress minimal   3.00  0.06854317564 5.931456824 0.0436 *  
## Stress berat-Stress moderat   0.25 -2.68145682436 3.181456824 1.0000    
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Melakukan perbandingan berganda dengan prosedur Tukey
TukeyHSD(fit, which = "tingkatan", conf.level = 0.95)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = penderita ~ tingkatan, data = datastress)
## 
## $tingkatan
##                               diff            lwr         upr        p adj
## Stress minimal-Tidak stress   1.00 -1.76057253772 3.760572538 0.7102198445
## Stress moderat-Tidak stress   3.75  0.98942746228 6.510572538 0.0078017395
## Stress berat-Tidak stress     4.00  1.23942746228 6.760572538 0.0049068745
## Stress moderat-Stress minimal 2.75 -0.01057253772 5.510572538 0.0509907932
## Stress berat-Stress minimal   3.00  0.23942746228 5.760572538 0.0319619986
## Stress berat-Stress moderat   0.25 -2.51057253772 3.010572538 0.9928382918
#pengecekan asumsi homogenitas variansi (Uji Barlett)manual
n <- nrow(datastress)
n
## [1] 16
si <- tapply(datastress$penderita, datastress$tingkatan,sd)
si
##   Tidak stress Stress minimal Stress moderat   Stress berat 
##   1.4142135624   0.8164965809   0.9574271078   1.8257418584
ni <- c(4,4,4,4)
k <- length(ni)
n <- sum(ni)
sp <- sqrt(sum((ni - 1) * si^2) / (n - k))
sp
## [1] 1.31497782
T <- ((n-k)*log(sp^2)-sum((ni-1)*log(si^2)))/(1+(1/3*(k-1)))*(sum(1/(ni-1))-(1/(n-k)))
T
## [1] 1.473590415
df <- k-1
df
## [1] 3
p.value <- 1-pchisq(T,df)
p.value
## [1] 0.6883789239
khi_kuadrat_tabel <- qchisq(0.95, df=3)
khi_kuadrat_tabel
## [1] 7.814727903
#pengecekan asumsi homogenitas variansi (Uji Barlett)Program R
bartlett.test(penderita~tingkatan, data=datastress)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  penderita by tingkatan
## Bartlett's K-squared = 2.0702148, df = 3, p-value = 0.557962
#Uji normalitas dengan uji Saphiro-Wilk manual
grup1 <- subset(datastress$penderita, datastress$tingkatan == "Tidak stress")
grup1
## [1] 2 1 4 1
grup1.order <- sort(grup1,decreasing = FALSE)
grup1.order
## [1] 1 1 2 4
n <- length(grup1)
n
## [1] 4
m <- (n-1)/2
m
## [1] 1.5
#Uji normalitas dengan uji Saphiro-Wilk program R
grup1 <- subset(datastress$penderita, datastress$tingkatan == "Tidak stress")
shapiro.test(grup1)
## 
##  Shapiro-Wilk normality test
## 
## data:  grup1
## W = 0.82742667, p-value = 0.1611906
grup2 <- subset(datastress$penderita, datastress$tingkatan == "Stress minimal")
shapiro.test(grup2)
## 
##  Shapiro-Wilk normality test
## 
## data:  grup2
## W = 0.9446644, p-value = 0.6829615
grup3 <- subset(datastress$penderita, datastress$tingkatan == "Stress moderat")
shapiro.test(grup3)
## 
##  Shapiro-Wilk normality test
## 
## data:  grup3
## W = 0.86336905, p-value = 0.2724532
grup4 <- subset(datastress$penderita, datastress$tingkatan == "Stress berat")
shapiro.test(grup4)
## 
##  Shapiro-Wilk normality test
## 
## data:  grup4
## W = 0.94970596, p-value = 0.7142802