ONE WAY MANOVA

INPUT DATA

Data yang digunakan berasal dari website kaggle.com mengenai prediksi penyakit jantung berdasarkan berbagai faktor kesehatan dan gaya hidup. Dataset ini menginformasikan sejumlah pasien dan variabel-variabel terkait yang digunakan untuk menilai risiko penyakit jantung.

Sumber Data : https://www.kaggle.com/datasets/johnsmith88/heart-disease-dataset

Variabel Independen yang digunakan untuk uji one way MANOVA berupa: trestbps : Tekanan darah saat istirahat #chol : Kadar kolestrol serum thalach : Detak jantung maksimal #oldpeak : Depresi ST yang diukur dari olahraga relatif terhadap istirahat.

Variabel Dependen yang digunakan untuk uji one way MANOVA target /Status penyakit jantung, 0 untuk tidak menderita penyakit jantung, 1 untuk menderita penyakit jantung.

data <- read.csv("C:\\Users\\Asus\\Downloads\\heart.csv")
data1 <- data[c(4, 5, 8, 10, 14)]
head(data1)
##   trestbps chol thalach oldpeak target
## 1      125  212     168     1.0      0
## 2      140  203     155     3.1      0
## 3      145  174     125     2.6      0
## 4      148  203     161     0.0      0
## 5      138  294     106     1.9      0
## 6      100  248     122     1.0      1

UJI ASUMSI

UJI NORMALITAS MULTIVARIATE

H0 : Data berdistribusi normal H1 : Data tidak berdistribusi normal

library(MVN)
## Warning: package 'MVN' was built under R version 4.3.3
data_1 <- data1[1:4]
test = mvn(data_1, mvnTest = "mardia", univariateTest = "SW", multivariatePlot = "qq")

test
## $multivariateNormality
##              Test        Statistic               p value Result
## 1 Mardia Skewness 709.033026295699 2.71353170164657e-137     NO
## 2 Mardia Kurtosis 15.5793267063452                     0     NO
## 3             MVN             <NA>                  <NA>     NO
## 
## $univariateNormality
##           Test  Variable Statistic   p value Normality
## 1 Shapiro-Wilk trestbps     0.9633  <0.001      NO    
## 2 Shapiro-Wilk   chol       0.9502  <0.001      NO    
## 3 Shapiro-Wilk  thalach     0.9774  <0.001      NO    
## 4 Shapiro-Wilk  oldpeak     0.8503  <0.001      NO    
## 
## $Descriptives
##             n       Mean   Std.Dev Median Min   Max 25th  75th       Skew
## trestbps 1025 131.611707 17.516718  130.0  94 200.0  120 140.0  0.7376045
## chol     1025 246.000000 51.592510  240.0 126 564.0  211 275.0  1.0709312
## thalach  1025 149.114146 23.005724  152.0  71 202.0  132 166.0 -0.5122744
## oldpeak  1025   1.071512  1.175053    0.8   0   6.2    0   1.8  1.2073576
##             Kurtosis
## trestbps  0.97278104
## chol      3.95788884
## thalach  -0.09990477
## oldpeak   1.29382915

Dikarenakan secara multivariate p-value mardia kurtosis ataupun skewness maupun secara univariate p-value kurang dari alpha = 0.05, maka H0 ditolak atau data tidak berdistribusi normal, maka dengan tujuan pembelajaran dilakukan pemotongan data, di mana data asli sebanyak 1026, dipotong menjadi 30 dengan baris data yang diambil adalah baris data ke 1 sampai 30.

data1p <- data[1:30, c(4, 5, 8, 10, 14)]

UJI NORMALITAS MULTIVARIATE KEMBALI

library(MVN)
data_1p <- data1p[1:4]
test = mvn(data_1p, mvnTest = "mardia", univariateTest = "SW", multivariatePlot = "qq")

test
## $multivariateNormality
##              Test          Statistic           p value Result
## 1 Mardia Skewness   19.0561066652235 0.518181756391055    YES
## 2 Mardia Kurtosis -0.768164946612521  0.44238919590052    YES
## 3             MVN               <NA>              <NA>    YES
## 
## $univariateNormality
##           Test  Variable Statistic   p value Normality
## 1 Shapiro-Wilk trestbps     0.9595    0.3013    YES   
## 2 Shapiro-Wilk   chol       0.9534    0.2080    YES   
## 3 Shapiro-Wilk  thalach     0.9759    0.7092    YES   
## 4 Shapiro-Wilk  oldpeak     0.9005    0.0086    NO    
## 
## $Descriptives
##           n     Mean   Std.Dev Median Min   Max    25th   75th      Skew
## trestbps 30 130.3333 16.865254  130.0 100 180.0 120.000 140.00 0.6013929
## chol     30 247.8667 50.796914  246.0 149 341.0 209.250 292.75 0.1423424
## thalach  30 146.9667 22.938423  145.5 106 192.0 127.750 161.75 0.1039004
## oldpeak  30   1.5500  1.331774    1.0   0   4.4   0.625   2.90 0.5806793
##            Kurtosis
## trestbps  0.7279159
## chol     -1.1422083
## thalach  -0.7823128
## oldpeak  -0.9781337

Dikarenakan keseluruhan nilai p-value > α = 0,05, maka H0 diterima.

Dengan taraf signifikansi 5% dapat disimpulkan bahwa data pengelompokkan variabel yang mempengaruhu risiko penyakit jantung berdistribusi normal.

Dikarenakan asumsi normalitas sudah terpenuhi, maka dilanjut untuk menentukan asumsi selanjutnya yaitu Uji Homogenitas Variabel Multivariate untuk One Way MANOVA.

UJI HOMOGENITAS MULTIVARIATE

H0 : s1 = s2 = s3 = s4 , matriks kovarians grup adalah sama H1 : Minimal ada satu matriks kovarians grup yang berbeda α = 0,05

library(biotools)
## Warning: package 'biotools' was built under R version 4.3.3
## Loading required package: MASS
## ---
## biotools version 4.2
boxM(data = data_1p, grouping = data1p$target)
## 
##  Box's M-test for Homogeneity of Covariance Matrices
## 
## data:  data_1p
## Chi-Sq (approx.) = 9.7862, df = 10, p-value = 0.4594

Dikarenakan nilai p-value = 0,4594 > dari α = 0,05, maka H0 diterima

Dengan taraf signifikansi 5% dapat disimpulkan bahwa data pengelompokkan variabel yang mempengaruhu risiko penyakit jantung memiliki matriks kovarians grup yang sama.

INDEPENDENSI

Asumsi independensi terpenuhi jika pengamatan didapatkan secara random. Untuk kasus diatas, pengukuran variabel-variabel yang mempengaruhi risiko penyakit jantung dilakukan secara random.

UJI ONE WAY MANOVA

H0 : μ1 = μ2 = 0 (Target atau status penyakit jantung tidak berpengaruh terhadap variabel-variabel terkait yang digunakan untuk menilai risiko penyakit jantung) H1 : μi ≠ 0. i = 1,2 (Target atau status penyakit jantung berpengaruh terhadap variabel-variabel terkait yang digunakan untuk menilai risiko penyakit jantung)

owm = manova(cbind(data1p$trestbps, data1p$chol, data1p$thalach, data1p$oldpeak)~data1p$target)
summary(owm)
##               Df  Pillai approx F num Df den Df   Pr(>F)   
## data1p$target  1 0.43929   4.8965      4     25 0.004694 **
## Residuals     28                                           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Karena nilai p-value = 0.004694 < α = 0.05, maka H0 ditolak

Dengan taraf signifikansi 5% dapat disimpulkan bahwa setidaknya terdapat satu variabel terkait yang digunakan untuk menilai risiko penyakit jantung berpengaruh terhadap target atau status penyakit jantung.

Dikarenakan H0 signifikan, maka dilakukan Uji Lanjut

UJI LANJUT

H0 : Target atau status penyakit jantung tidak berpengaruh secara signifikan terhadap variabel-variabel penilai risiko penyakit jantung. H1 : Target atau status penyakit jantung berpengaruh secara signifikan terhadap variabel-variabel penilai risiko penyakit jantung.

summary.aov(owm)
##  Response 1 :
##               Df Sum Sq Mean Sq F value   Pr(>F)   
## data1p$target  1 2033.5 2033.47   9.161 0.005258 **
## Residuals     28 6215.2  221.97                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response 2 :
##               Df Sum Sq Mean Sq F value  Pr(>F)  
## data1p$target  1  10080 10080.0   4.359 0.04603 *
## Residuals     28  64749  2312.5                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response 3 :
##               Df  Sum Sq Mean Sq F value  Pr(>F)  
## data1p$target  1  3141.7 3141.69  7.2597 0.01178 *
## Residuals     28 12117.3  432.76                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response 4 :
##               Df Sum Sq Mean Sq F value  Pr(>F)  
## data1p$target  1  9.568  9.5681   6.399 0.01733 *
## Residuals     28 41.867  1.4952                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Dikarenakan p-value trestbps : 0.005258 < α = 0.05, maka tolak H0 chol : 0.04603 < α = 0.05, maka tolak H0 thalach : 0.01178 < α =0.05, maka tolak H0 oldpeak : 0.01733 < α = 0.05, maka tolak H0

Didapat kesimpulan bahwa dengan taraf signifikansi 5%: ’ - Target atau status penyakit jantung secara signifikan mempengaruhi tekanan darah saat istirahat - Target atau status penyakit jantung secara signifikan mempengaruhi kadar kolestrol serum - Target atau status penyakit jantung secara signifikan mempengaruhi detak jantung maksimal - Target atau status penyakit jantung secara signifikan mempengaruhi depresi ST yang diukur dari olahraga relatif terhadap istirahat.

TWO WAY MANOVA

INPUT DATA

Data yang digunakan adalah sama dengan data yang digunakan pada uji One Way MANOVA, hanya saja ditambahkan variabel Sex atau Jenis Kelamin, dengan notasi 0 yang merupakan perempuan dan 1 merupakan laki-laki.

Sumber Data : https://www.kaggle.com/datasets/johnsmith88/heart-disease-dataset

data2 <- data[c(2, 4, 5, 8, 10, 14)]
head(data2)
##   sex trestbps chol thalach oldpeak target
## 1   1      125  212     168     1.0      0
## 2   1      140  203     155     3.1      0
## 3   1      145  174     125     2.6      0
## 4   1      148  203     161     0.0      0
## 5   0      138  294     106     1.9      0
## 6   0      100  248     122     1.0      1

UJI ASUMSI

UJI NORMALITAS MULTIVARIATE

H0 : Data berdistribusi normal multivariat H1 : Data tidak berdistribusi normal multivariat

data_2 <- data2[2:5]
test = mvn(data_2, mvnTest = "mardia", univariateTest = "SW", multivariatePlot = "qq")

test
## $multivariateNormality
##              Test        Statistic               p value Result
## 1 Mardia Skewness 709.033026295699 2.71353170164657e-137     NO
## 2 Mardia Kurtosis 15.5793267063452                     0     NO
## 3             MVN             <NA>                  <NA>     NO
## 
## $univariateNormality
##           Test  Variable Statistic   p value Normality
## 1 Shapiro-Wilk trestbps     0.9633  <0.001      NO    
## 2 Shapiro-Wilk   chol       0.9502  <0.001      NO    
## 3 Shapiro-Wilk  thalach     0.9774  <0.001      NO    
## 4 Shapiro-Wilk  oldpeak     0.8503  <0.001      NO    
## 
## $Descriptives
##             n       Mean   Std.Dev Median Min   Max 25th  75th       Skew
## trestbps 1025 131.611707 17.516718  130.0  94 200.0  120 140.0  0.7376045
## chol     1025 246.000000 51.592510  240.0 126 564.0  211 275.0  1.0709312
## thalach  1025 149.114146 23.005724  152.0  71 202.0  132 166.0 -0.5122744
## oldpeak  1025   1.071512  1.175053    0.8   0   6.2    0   1.8  1.2073576
##             Kurtosis
## trestbps  0.97278104
## chol      3.95788884
## thalach  -0.09990477
## oldpeak   1.29382915

Dikarenakan secara multivariate p-value mardia kurtosis ataupun skewness maupun secara univariate p-value kurang dari alpha = 0.05, maka H0 ditolak atau data tidak berdistribusi normal, maka dengan tujuan pembelajaran dilakukan pemotongan data, di mana data asli sebanyak 1026, dipotong menjadi 30 dengan baris data yang diambil adalah baris data ke 1 sampai 30.

data2p <- data[1:30, c(2, 4, 5, 8, 10, 14)]

UJI NORMALITAS MULTIVARIATE KEMBALI

library(MVN)
data_2p <- data2p[2:5]
test = mvn(data_2p, mvnTest = "mardia", univariateTest = "SW", multivariatePlot = "qq")

test
## $multivariateNormality
##              Test          Statistic           p value Result
## 1 Mardia Skewness   19.0561066652235 0.518181756391055    YES
## 2 Mardia Kurtosis -0.768164946612521  0.44238919590052    YES
## 3             MVN               <NA>              <NA>    YES
## 
## $univariateNormality
##           Test  Variable Statistic   p value Normality
## 1 Shapiro-Wilk trestbps     0.9595    0.3013    YES   
## 2 Shapiro-Wilk   chol       0.9534    0.2080    YES   
## 3 Shapiro-Wilk  thalach     0.9759    0.7092    YES   
## 4 Shapiro-Wilk  oldpeak     0.9005    0.0086    NO    
## 
## $Descriptives
##           n     Mean   Std.Dev Median Min   Max    25th   75th      Skew
## trestbps 30 130.3333 16.865254  130.0 100 180.0 120.000 140.00 0.6013929
## chol     30 247.8667 50.796914  246.0 149 341.0 209.250 292.75 0.1423424
## thalach  30 146.9667 22.938423  145.5 106 192.0 127.750 161.75 0.1039004
## oldpeak  30   1.5500  1.331774    1.0   0   4.4   0.625   2.90 0.5806793
##            Kurtosis
## trestbps  0.7279159
## chol     -1.1422083
## thalach  -0.7823128
## oldpeak  -0.9781337

Dikarenakan nilai p-value > α = 0,05, maka H0 diterima.

Dengan taraf signifikansi 5% dapat disimpulkan bahwa data pengelompokkan variabel yang mempengaruhu risiko penyakit jantung berdistribusi normal.

Dikarenakan asumsi normalitas sudah terpenuhi, maka dilanjut untuk menentukan asumsi selanjutnya yaitu Uji Homogenitas Variabel Multivariate untuk Two Way MANOVA.

UJI HOMOGENITAS MULTIVARIATE

Karena ada 2 kelompok yaitu sex atau jenis kelamin (perempuan = 0 dan laki-laki = 1) dan target atau status penyakit jantung (0 = tidak menderita dan 1 = menderita) maka dilakukan uji homogenitas sebanyak 2 kali.

H0 : s1 = s2 = s3 = s4 , matriks kovarians grup adalah sama H1 : Minimal ada satu matriks kovarians grup (sk) yang berbeda α = 0,05

# Sex 
boxM(data = data_2p, grouping = data2p$sex)
## 
##  Box's M-test for Homogeneity of Covariance Matrices
## 
## data:  data_2p
## Chi-Sq (approx.) = 14.24, df = 10, p-value = 0.1623
# Target
boxM(data = data_2p, grouping = data2p$target)
## 
##  Box's M-test for Homogeneity of Covariance Matrices
## 
## data:  data_2p
## Chi-Sq (approx.) = 9.7862, df = 10, p-value = 0.4594

Dikarenakan nilai p-value : Sex = 0.1623 > dari α = 0.05, maka H0 diterima Target = 0.4594 > dari α = 0.05, maka H0 diterima

Dengan taraf signifikansi 5% dapat disimpulkan bahwa data mengenai varIabel terkait yang mempengaruhi risiko penyakit jantung dengan pengelompokkan berdasarkan sex maupun target memiliki matriks kovarians yang sama.

INDEPENDENSI

Asumsi independensi terpenuhi jika pengamatan didapatkan secara random. Untuk kasus diatas, pengukuran variabel-variabel yang mempengaruhi risiko penyakit jantung dilakukan secara random.

UJI TWO WAY MANOVA

H0’ : a1 = a2 = 0 (Jenis kelamin tidak berpengaruh terhadap variabel-variabel terkait yang digunakan untuk menilai risiko penyakit jantung) H1’ : Setidaknya ada satu a1 yang tidak sama dengan 0 (Jenis kelamin tidak berpengaruh terhadap variabel-variabel berpengaruh terhadap variabel-variabel terkait yang digunakan untuk menilai risiko penyakit jantung) H0’’ : b1 = b2 = 0 (Status penyakit jantung tidak berpengaruh terhadap variabel-variabel terkait yang digunakan untuk menilai risiko penyakit jantung) H1’’ : Setidaknya ada satu b1 yang tidak sama dengan 0 (Status penyakit jantung tidak berpengaruh terhadap variabel-variabel berpengaruh terhadap variabel-variabel terkait yang digunakan untuk menilai risiko penyakit jantung) H0’’’ : ab1 = ab2 = 0 (Interaksi antara jenis kelamin dan status penyakit jantung tidak berpengaruh terhadap variabel-variabel terkait yang digunakan untuk menilai risiko penyakit jantung) H1’’’ : Setidaknya ada satu ab1 yang tidak sama dengan 0 (Interaksi antara jenis kelamin dan status penyakit jantung tidak berpengaruh terhadap terhadap variabel-variabel terkait yang digunakan untuk menilai risiko penyakit jantung)

# STATISTIK UJI TWO WAY MANOVA
manova <- manova(cbind(data2p$trestbps, data2p$chol, data2p$thalach, data2p$oldpeak) ~ data2p$sex * data2p$target, data = data)
summary(manova)
##                          Df  Pillai approx F num Df den Df   Pr(>F)   
## data2p$sex                1 0.21750   1.5982      4     23 0.208595   
## data2p$target             1 0.53022   6.4898      4     23 0.001196 **
## data2p$sex:data2p$target  1 0.17716   1.2380      4     23 0.322566   
## Residuals                26                                           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Dikarenakan nilai p-value : Sex : 0.208595 > dari α = 0.05, maka H0 diterima Target : 0.001196 < dari α = 0.05, maka H0 ditolak Sex*Target : 0.322566 > dari α = 0.05, maka H0 diterima

Didapat kesimpulan dengan taraf signifikansi 5%:

  • Jenis Kelamin tidak berpengaruh secara signifikan terhadap variabel-variabel penilai risiko penyakit jantung.
  • Status penyakit jantung berpengaruh secara signifikan terhadap variabel-variabel penilai risiko penyakit jantung.
  • Interaksi antara jenis kelamin dan status penyakit jantung tidak berpengaruh secara signifikan terhadap variabel-variabel penilai risiko penyakit jantung.

Dikarenakan hanya variabel Status penyakit jantung yang signifikan, dengan tujuan pembelajaran, maka tetap kita lakukan Uji Lanjut.

UJI LANJUT

H0 : Target atau status penyakit jantung tidak berpengaruh secara signifikan terhadap variabel-variabel penilai risiko penyakit jantung. H1 : Target atau status penyakit jantung berpengaruh secara signifikan terhadap variabel-variabel penilai risiko penyakit jantung.

summary.aov(manova)
##  Response 1 :
##                          Df Sum Sq Mean Sq F value   Pr(>F)   
## data2p$sex                1   81.5   81.49  0.3812 0.542343   
## data2p$target             1 2131.9 2131.89  9.9724 0.003998 **
## data2p$sex:data2p$target  1  477.0  477.04  2.2314 0.147265   
## Residuals                26 5558.3  213.78                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response 2 :
##                          Df Sum Sq Mean Sq F value   Pr(>F)   
## data2p$sex                1   3910  3910.1  2.3251 0.139371   
## data2p$target             1  21330 21329.8 12.6838 0.001451 **
## data2p$sex:data2p$target  1   5866  5866.5  3.4885 0.073107 . 
## Residuals                26  43723  1681.7                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response 3 :
##                          Df  Sum Sq Mean Sq F value   Pr(>F)   
## data2p$sex                1    61.7    61.7  0.1374 0.713856   
## data2p$target             1  3499.0  3499.0  7.7913 0.009707 **
## data2p$sex:data2p$target  1    22.0    22.0  0.0490 0.826524   
## Residuals                26 11676.3   449.1                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response 4 :
##                          Df Sum Sq Mean Sq F value  Pr(>F)  
## data2p$sex                1  4.051  4.0513  2.5439 0.12280  
## data2p$target             1  5.943  5.9429  3.7317 0.06436 .
## data2p$sex:data2p$target  1  0.034  0.0344  0.0216 0.88436  
## Residuals                26 41.406  1.5926                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Terlihat Jenis Kelamin dan Interaksi antara jenis kelamin dan status penyakit jantung tidak mempengaruhi variabel-variabel terkait yang mempengaruhi risiko penyakit jantung secara signifikan. Namun untuk Status penyakit jantung mempengaruhi keseluruhan variabel-variabel terkait yang mempengaruhi risiko penyakit jantung secara signifikan.