MANOVA adalah teknik analisis statistik yang digunakan untuk menguji perbedaan simultan antara dua atau lebih variabel dependen yang terkait dengan satu atau lebih variabel independen. Tujuannya adalah untuk menentukan apakah terdapat perbedaan signifikan antara kelompok dalam beberapa variabel dependen. Sebelum melakukan Uji MANOVA, terdapat dua asumsi yang harus dipenuhi, yaitu normalitas dan homoskedastisitas.
One Way MANOVA digunakan untuk menentukan apakah ada perbedaan antara satu kelompok independen pada lebih dari dua variabel dependen kontinu.
Input Data:
data1 <- read.csv("C:/Users/GINA/Downloads/leaftemp.csv")
data1
## rownames CO2level vapPress tempDiff BtempDiff
## 1 1 high 2.56 1.50 1.84
## 2 2 low 1.88 1.36 1.54
## 3 3 medium 2.38 1.94 1.96
## 4 4 high 2.55 0.85 0.93
## 5 5 low 2.20 0.60 0.68
## 6 6 medium 2.72 0.83 0.89
## 7 7 high 2.17 -0.04 0.02
## 8 8 medium 2.21 -0.11 -0.06
## 9 9 high 1.64 1.25 1.10
## 10 10 low 1.75 0.23 0.50
## 11 11 medium 1.67 0.85 0.65
## 12 12 high 1.67 1.64 1.27
## 13 13 low 1.85 0.48 0.65
## 14 14 medium 1.67 1.32 1.05
## 15 15 high 1.81 1.99 1.72
## 16 16 low 1.69 0.98 0.90
## 17 17 medium 1.71 1.76 1.08
## 18 18 high 1.86 1.90 1.60
## 19 19 low 1.33 0.98 0.75
## 20 20 medium 1.80 1.49 0.99
## 21 21 high 1.58 2.42 1.89
## 22 22 low 2.07 1.48 1.15
## 23 23 medium 1.88 1.64 1.62
## 24 24 high 1.95 3.20 2.31
## 25 25 low 2.10 2.16 1.50
## 26 26 medium 1.75 2.11 2.18
## 27 27 high 1.38 2.74 2.01
## 28 28 low 2.17 1.34 0.82
## 29 29 medium 1.90 1.94 1.90
## 30 30 high 1.66 3.22 2.34
## 31 31 low 2.13 1.61 0.99
## 32 32 medium 1.81 2.19 2.05
## 33 33 high 2.16 2.24 1.71
## 34 34 low 2.26 0.75 0.60
## 35 35 medium 1.93 1.61 1.42
## 36 36 high 2.19 1.62 1.26
## 37 37 low 2.38 0.75 0.48
## 38 38 medium 2.45 1.11 1.03
## 39 39 high 2.29 2.47 1.97
## 40 40 low 1.93 1.92 1.89
## 41 41 medium 1.72 2.34 2.10
## 42 42 high 2.32 1.59 1.73
## 43 43 low 2.60 1.51 1.72
## 44 44 medium 2.49 1.29 1.02
## 45 45 high 2.70 0.00 0.13
## 46 46 low 2.48 0.00 0.01
## 47 47 medium 2.45 0.11 0.06
## 48 48 high 2.05 2.85 1.72
## 49 49 low 2.17 1.26 1.29
## 50 50 medium 1.86 1.87 1.18
## 51 51 high 2.56 0.49 0.44
## 52 52 low 2.38 0.10 0.19
## 53 53 medium 2.39 0.44 0.35
## 54 54 high 1.80 2.09 1.47
## 55 55 low 1.94 0.72 0.67
## 56 56 medium 1.43 1.31 0.91
## 57 57 high 1.82 1.20 1.00
## 58 58 low 1.78 0.23 0.12
## 59 59 medium 1.46 0.89 0.86
## 60 60 high 2.03 1.94 1.58
## 61 61 low 2.10 0.67 0.26
## 62 62 medium 2.11 1.10 1.00
Deskripsi Data:
Data tersebut merupakan data suhu daun dan udara yang dibagi ke dalam tiga kelompok berdasarkan tingkat CO2 (high, low, dan medium).
Hipotesis
H0: Data berdistribusi normal
H1: Data tidak berdistribusi normal
Taraf Signifikansi
⍺ = 5% = 0.05
Statistik Uji
library(MVN)
## Warning: package 'MVN' was built under R version 4.3.3
data1_fix <- data1[3:5]
head(data1_fix)
## vapPress tempDiff BtempDiff
## 1 2.56 1.50 1.84
## 2 1.88 1.36 1.54
## 3 2.38 1.94 1.96
## 4 2.55 0.85 0.93
## 5 2.20 0.60 0.68
## 6 2.72 0.83 0.89
test1 = mvn(data1_fix, mvnTest = "mardia", univariateTest = "SW",
multivariatePlot = "qq")
test1
## $multivariateNormality
## Test Statistic p value Result
## 1 Mardia Skewness 16.6046118047381 0.0835836976912085 YES
## 2 Mardia Kurtosis -1.47491500285045 0.140235396288839 YES
## 3 MVN <NA> <NA> YES
##
## $univariateNormality
## Test Variable Statistic p value Normality
## 1 Shapiro-Wilk vapPress 0.9773 0.3034 YES
## 2 Shapiro-Wilk tempDiff 0.9823 0.5083 YES
## 3 Shapiro-Wilk BtempDiff 0.9700 0.1322 YES
##
## $Descriptives
## n Mean Std.Dev Median Min Max 25th 75th Skew
## vapPress 62 2.027903 0.3432159 1.990 1.33 2.72 1.7850 2.2825 0.11473692
## tempDiff 62 1.360000 0.8097642 1.350 -0.11 3.22 0.7700 1.9350 0.12440634
## BtempDiff 62 1.145000 0.6467111 1.065 -0.06 2.34 0.6725 1.7175 -0.06346664
## Kurtosis
## vapPress -0.8517319
## tempDiff -0.5481776
## BtempDiff -1.0037687
Kriteria Uji
Tolak H0 jika p-value < ⍺
Keputusan
Karena p-value > ⍺, maka H0 diterima.
Kesimpulan
Dengan taraf signifikansi sebesar 5%, dapat disimpulkan bahwa data sudah berdistribusi normal secara univariat maupun multivariat. Dari hasil Q-Q Plot juga menunjukkan bahwa data cenderung mengikuti garis lurus. Artinya, asumsi kenormalan terpenuhi.
Hipotesis
H0: Matriks kovarians grup sama
H1: Paling sedikit ada satu matriks kovarians grup yang berbeda
Taraf Signifikansi
⍺ = 5% = 0.05
Statistik Uji
library(biotools)
## Warning: package 'biotools' was built under R version 4.3.3
## Loading required package: MASS
## ---
## biotools version 4.2
grup1 <- data1$CO2level
head(grup1)
## [1] "high" "low" "medium" "high" "low" "medium"
boxM(data = data1_fix, grouping = grup1)
##
## Box's M-test for Homogeneity of Covariance Matrices
##
## data: data1_fix
## Chi-Sq (approx.) = 14.956, df = 12, p-value = 0.2438
Kriteria Uji
Tolak H0 jika p-value < ⍺
Keputusan
Karena p-value > ⍺, maka H0 diterima.
Kesimpulan
Dengan taraf signifikansi sebesar 5%, dapat disimpulkan bahwa matriks kovarians grup sama sehingga asumsi homoskedastisitas terpenuhi.
Hipotesis
H0: Tingkat CO2 tidak berpengaruh terhadap suhu daun dan udara
H1: Tingkat CO2 berpengaruh terhadap suhu daun dan udara
Taraf Signifikansi
⍺ = 5% = 0.05
Statistik Uji
owm = manova(cbind(data1$vapPress, data1$tempDiff,
data1$BtempDiff)~data1$CO2level)
summary(owm)
## Df Pillai approx F num Df den Df Pr(>F)
## data1$CO2level 2 0.20833 2.248 6 116 0.04341 *
## Residuals 59
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Kriteria Uji
Tolak H0 jika p-value < ⍺
Keputusan
Karena p-value < ⍺, maka H0 ditolak.
Kesimpulan
Dengan taraf signifikansi sebesar 5%, dapat disimpulkan bahwa terdapat perbedaan signifikan suhu daun dan udara berdasarkan tingkat CO2. Selanjutnya, akan dilakukan uji lanjut untuk mengetahui variabel mana yang menunjukkan perbedaan signifikan.
summary.aov(owm)
## Response 1 :
## Df Sum Sq Mean Sq F value Pr(>F)
## data1$CO2level 2 0.0514 0.025709 0.2126 0.8091
## Residuals 59 7.1342 0.120919
##
## Response 2 :
## Df Sum Sq Mean Sq F value Pr(>F)
## data1$CO2level 2 6.792 3.3958 6.0333 0.00413 **
## Residuals 59 33.207 0.5628
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Response 3 :
## Df Sum Sq Mean Sq F value Pr(>F)
## data1$CO2level 2 3.629 1.8145 4.8922 0.01082 *
## Residuals 59 21.883 0.3709
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Dari hasil di atas, dapat disimpulkan bahwa response 2 (tempDiff) dan 3 (BtempDiff) menunjukkan perbedaan yang signifikan berdasarkan tingkat CO2 yang diuji, sedangkan response 1 (vapPress) tidak menunjukkan perbedaan yang signifikan.
Two Way MANOVA digunakan untuk menentukan apakah ada perbedaan antara dua kelompok independen pada lebih dari dua variabel dependen kontinu.
Input Data:
data2 <- read.csv("C:/Users/GINA/Downloads/Data Two Way for R.csv")
data2
## gender persiapan math_score reading_score writing_score
## 1 female none 40 59 55
## 2 female none 63 77 76
## 3 female none 62 59 63
## 4 female completed 80 87 90
## 5 female completed 54 62 65
## 6 female none 23 44 44
## 7 female none 83 76 88
## 8 female none 44 55 54
## 9 female none 53 60 56
## 10 female completed 74 89 89
## 11 female none 33 54 51
## 12 female completed 65 65 71
## 13 female completed 79 88 89
## 14 female none 68 74 74
## 15 female completed 57 77 75
## 16 male completed 67 67 63
## 17 male none 59 60 50
## 18 male none 77 78 68
## 19 male completed 78 73 68
## 20 male completed 93 88 84
## 21 male none 63 56 65
## 22 male none 47 42 45
## 23 male completed 99 83 85
## 24 male completed 77 87 85
## 25 male completed 74 74 73
## 26 male completed 81 87 85
## 27 male noen 69 61 57
## 28 male noen 58 47 42
## 29 male noen 39 32 31
## 30 male noen 58 52 55
Deskripsi Data: Data tersebut merupakan data nilai yang diperoleh siswa berdasarkan gender dan persiapan testnya.
Hipotesis
H0: Data berdistribusi normal
H1: Data tidak berdistribusi normal
Taraf Signifikansi
⍺ = 5% = 0.05
Statistik Uji
x1 <- data2[,3]
x2 <- data2[,4]
x3 <- data2[,5]
data2_fix <- data.frame(x1=x1, x2=x2, x3=x3)
library(MVN)
test2 = mvn(data2_fix, mvnTest = "mardia", univariateTest = "SW",
multivariatePlot = "qq")
test2
## $multivariateNormality
## Test Statistic p value Result
## 1 Mardia Skewness 6.54662465853713 0.767440308432322 YES
## 2 Mardia Kurtosis -1.19950418207651 0.230331959585361 YES
## 3 MVN <NA> <NA> YES
##
## $univariateNormality
## Test Variable Statistic p value Normality
## 1 Shapiro-Wilk x1 0.9842 0.9231 YES
## 2 Shapiro-Wilk x2 0.9506 0.1756 YES
## 3 Shapiro-Wilk x3 0.9561 0.2449 YES
##
## $Descriptives
## n Mean Std.Dev Median Min Max 25th 75th Skew Kurtosis
## x1 30 63.90000 17.50537 64.0 23 99 54.75 77.00 -0.2845161 -0.3799388
## x2 30 67.10000 15.63231 66.0 32 89 56.75 77.75 -0.2552762 -0.9414205
## x3 30 66.53333 16.22840 66.5 31 90 55.00 82.00 -0.1913814 -1.0157714
Keputusan
Karena p-value > ⍺, maka H0 diterima.
Kesimpulan
Dengan taraf signifikansi sebesar 5%, dapat disimpulkan bahwa data sudah berdistribusi normal secara univariat maupun multivariat. Dari hasil Q-Q Plot juga menunjukkan bahwa data cenderung mengikuti garis lurus. Artinya, asumsi kenormalan terpenuhi.
Hipotesis
H0: Matriks kovarians grup sama
H1: Paling sedikit ada satu matriks kovarians grup yang berbeda
Taraf Signifikansi
⍺ = 5% = 0.05
Statistik Uji
head(data2[,1])
## [1] "female" "female" "female" "female" "female" "female"
boxM(data = data2_fix, grouping = data2[,1])
##
## Box's M-test for Homogeneity of Covariance Matrices
##
## data: data2_fix
## Chi-Sq (approx.) = 9.7458, df = 6, p-value = 0.1358
head(data2[,2])
## [1] "none" "none" "none" "completed" "completed" "none"
boxM(data = data2_fix, grouping = data2[,2])
##
## Box's M-test for Homogeneity of Covariance Matrices
##
## data: data2_fix
## Chi-Sq (approx.) = 13.786, df = 12, p-value = 0.3146
Kriteria Uji
Tolak H0 jika p-value < ⍺
Keputusan
Karena p-value > ⍺, maka H0 diterima.
Kesimpulan
Dengan taraf signifikansi sebesar 5%, dapat disimpulkan bahwa matriks kovarians grup sama sehingga asumsi homoskedastisitas terpenuhi.
Hipotesis
H0: Gender dan persiapan tidak berpengaruh terhadap nilai yang diperoleh siswa
H1: Gender dan persiapan berpengaruh terhadap nilai yang diperoleh siswa
Taraf Signifikansi
⍺ = 5% = 0.05
Statistik Uji
gender <- as.factor(data2$gender)
persiapan <- as.factor(data2$persiapan)
twm <- manova(cbind(x1, x2, x3) ~ gender * persiapan, data =
data2_fix)
# Menampilkan hasil
summary(twm)
## Df Pillai approx F num Df den Df Pr(>F)
## gender 1 0.68334 16.5446 3 23 6.005e-06 ***
## persiapan 2 0.60747 3.4899 6 48 0.00606 **
## gender:persiapan 1 0.01670 0.1302 3 23 0.94114
## Residuals 25
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Kriteria Uji
Tolak H0 jika p-value < ⍺
Kesimpulan
Dengan taraf signifikansi sebesar 5%, dapat disimpulkan bahwa terdapat perbedaan signifikan nilai yang diperoleh siswa berdasarkan gender dan persiapan testnya. Selanjutnya, akan dilakukan uji lanjut untuk mengetahui variabel mana yang menunjukkan perbedaan signifikan.
summary.aov(twm)
## Response x1 :
## Df Sum Sq Mean Sq F value Pr(>F)
## gender 1 864.0 864.03 4.2040 0.050952 .
## persiapan 2 2863.8 1431.88 6.9669 0.003937 **
## gender:persiapan 1 20.7 20.75 0.1009 0.753333
## Residuals 25 5138.2 205.53
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Response x2 :
## Df Sum Sq Mean Sq F value Pr(>F)
## gender 1 50.7 50.70 0.3866 0.5397
## persiapan 2 3722.0 1860.98 14.1893 7.624e-05 ***
## gender:persiapan 1 35.2 35.18 0.2682 0.6091
## Residuals 25 3278.9 131.15
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Response x3 :
## Df Sum Sq Mean Sq F value Pr(>F)
## gender 1 235.2 235.20 1.6539 0.210217
## persiapan 2 3832.9 1916.45 13.4760 0.000107 ***
## gender:persiapan 1 14.1 14.07 0.0989 0.755746
## Residuals 25 3555.3 142.21
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Dari hasil di atas, dapat disimpulkan bahwa response x1 (math score) menunjukkan perbedaan yang signifikan berdasarkan gender dan persiapan, sedangkan response x2 (reading score) dan x3 (writing score) hanya menunjukkan perbedaan yang signifikan berdasarkan persiapan saja.