One way Manova

#Memanggil data
library(readxl)
data = read_excel("C:/Users/aidan/Downloads/smoking.xlsx", sheet = "Sheet2")
head(data)
## # A tibble: 6 × 20
##      ID gender   age height weight waist `eyesight(left)` `eyesight(right)`
##   <dbl> <chr>  <dbl>  <dbl>  <dbl> <dbl>            <dbl>             <dbl>
## 1     0 F         40    155     60  81.3              1.2               1  
## 2     1 F         40    160     60  81                0.8               0.6
## 3     2 M         55    170     60  80                0.8               0.8
## 4     3 M         40    165     70  88                1.5               1.5
## 5     4 F         40    155     60  86                1                 1  
## 6     5 M         30    180     75  85                1.2               1.2
## # ℹ 12 more variables: `hearing(left)` <dbl>, `hearing(right)` <dbl>,
## #   systolic <dbl>, relaxation <dbl>, `fasting blood sugar` <dbl>,
## #   Cholesterol <dbl>, triglyceride <dbl>, HDL <dbl>, LDL <dbl>,
## #   hemoglobin <dbl>, `Urine protein` <dbl>, `serum creatinine` <dbl>

Source data : https://www.kaggle.com/datasets/kukuroo3/body-signal-of-smoking

A. Uji Normalitas Multivariat

Hipotesis

H0 : Data berdistribusi normal multivariat

H1 : Data tidak berdistribusi normal multivariat

Taraf Signifikansi

alpha : 5%

Statistik Uji

grup <- data[2]
x1 <- data[,3]
x2 <- data[,4]
x3 <- data[,5]
data_fix <- data.frame(x1,x2,x3);data_fix
##     age height weight
## 1    40    155     60
## 2    40    160     60
## 3    55    170     60
## 4    40    165     70
## 5    40    155     60
## 6    30    180     75
## 7    40    160     60
## 8    45    165     90
## 9    50    150     60
## 10   45    175     75
## 11   30    175     65
## 12   30    170     75
## 13   35    170     70
## 14   40    155     45
## 15   45    165     75
## 16   40    170     55
## 17   60    150     50
## 18   35    165     70
## 19   60    165     65
## 20   45    155     50
## 21   30    170     50
## 22   40    180     85
## 23   55    175     60
## 24   35    170     65
## 25   45    175     80
## 26   35    180     90
## 27   25    175     85
## 28   60    160     70
## 29   45    165     60
## 30   45    170     65
## 31   65    140     45
## 32   55    180     75
## 33   20    180     90
## 34   40    170     70
## 35   50    170     55
## 36   40    170     80
## 37   25    175     70
## 38   55    175     75
## 39   35    175     85
## 40   20    175     70
## 41   40    160     50
## 42   50    160     80
## 43   60    160     70
## 44   40    185     75
## 45   80    145     55
## 46   20    165     70
## 47   25    180     60
## 48   30    180     80
## 49   50    155     45
## 50   60    165     65
## 51   50    155     55
## 52   55    175     70
## 53   50    150     55
## 54   30    170     70
## 55   40    175     70
## 56   60    165     65
## 57   45    160     70
## 58   30    190    100
## 59   40    170     70
## 60   30    165     60
## 61   35    170     85
## 62   50    175     65
## 63   35    175     75
## 64   60    160     65
## 65   40    175     75
## 66   45    160     60
## 67   50    160     50
## 68   35    160     75
## 69   40    150     55
## 70   55    165     65
## 71   50    155     60
## 72   45    155     60
## 73   50    155     65
## 74   30    165     75
## 75   65    165     55
## 76   45    170     60
## 77   20    170     75
## 78   45    160     45
## 79   60    170     85
## 80   40    160     55
## 81   45    165     60
## 82   55    150     50
## 83   40    175     75
## 84   40    155     50
## 85   35    175     75
## 86   50    155     50
## 87   45    165     60
## 88   25    165     60
## 89   25    170     65
## 90   35    175     70
## 91   55    165     50
## 92   25    170     60
## 93   40    160     70
## 94   60    150     55
## 95   50    150     60
## 96   25    175     65
## 97   40    170     75
## 98   30    175     75
## 99   35    160     60
## 100  40    170     60
head(data_fix)
##   age height weight
## 1  40    155     60
## 2  40    160     60
## 3  55    170     60
## 4  40    165     70
## 5  40    155     60
## 6  30    180     75
library(MVN)
test = mvn(data_fix, mvnTest = "mardia", univariateTest = "SW", multivariatePlot = "qq")

test
## $multivariateNormality
##              Test         Statistic           p value Result
## 1 Mardia Skewness  7.87350725785789 0.641191101694451    YES
## 2 Mardia Kurtosis -1.26280232978918 0.206660227240692    YES
## 3             MVN              <NA>              <NA>    YES
## 
## $univariateNormality
##           Test  Variable Statistic   p value Normality
## 1 Shapiro-Wilk    age       0.9713    0.0280    NO    
## 2 Shapiro-Wilk  height      0.9676    0.0145    NO    
## 3 Shapiro-Wilk  weight      0.9685    0.0170    NO    
## 
## $Descriptives
##          n   Mean   Std.Dev Median Min Max 25th 75th       Skew    Kurtosis
## age    100  42.40 11.752498     40  20  80   35   50  0.2535919 -0.09333735
## height 100 166.05  9.515936    165 140 190  160  175 -0.2289637 -0.37151761
## weight 100  66.00 11.437136     65  45 100   60   75  0.3228459 -0.21067231

Dengan perhitungan menggunakan RStudio, didapatkan p-value :

Kriteria Uji

Karena pada mardia’s test menggunakan dua nilai yaitu nilai skewness dan nilai kurtosis, sehingga :

Keputusan

Kesimpulan

Dengan taraf signifikansi 5% didapatkan keputusan terima H0 yang dapat disimpulkan data berdistribusi normal multivariat.

B. Uji Homogenitas Multivariat

Hipotesis

H0 : s1=s2=s3, matriks kovarians grup adalah sama.

H1 : Minimal ada satu matriks kovarians grup ( sk ) yang berbeda

Taraf Signifikansi

alpha : 5%

Statistik Uji

## Uji Homogenitas Multivariate 
library(biotools)
## Loading required package: MASS
## ---
## biotools version 4.2
grup <- data$gender
head(grup)
## [1] "F" "F" "M" "M" "F" "M"
boxM(data = data_fix, grouping = grup)
## 
##  Box's M-test for Homogeneity of Covariance Matrices
## 
## data:  data_fix
## Chi-Sq (approx.) = 7.3486, df = 6, p-value = 0.2898

Kriteria Uji

Tolak H0 jika P-Value < alpha, terima dalam hal lainnya

Keputusan

P-Value = 0.2898 > alpha, maka Terima H0

Kesimpulan

Dengan taraf signifikansi 5%, didapatkan keputusan terima H0 yang dapat disimpulkan bahwa data memiliki matriks kovarians grup yang sama.

C. Independensi

Asumsi independensi terpenuhi jika pengamatan didapatkan secara random. Untuk kasus diatas, pengukuran tersebut dilakukan secara random.

D. One way Manova

Hipotesis

H0 : μ 1 = μ 2 = 0. (Faktor gender tidak berpengaruh terhadap pengukuran umur dan fisik sinyal tubuh untuk merokok)

H1 : Terdapat minimal satu μi ≠ 0. (Faktor gender berpengaruh terhadap pengukuran umur dan fisik sinyal tubuh untuk merokok)

Taraf Signifikansi

alpha = 5%

Statistik Uji

## One Way MANOVA
owm = manova(cbind(data$age, data$height, data$weight)~data$gender)
summary(owm)
##             Df  Pillai approx F num Df den Df    Pr(>F)    
## data$gender  1 0.52524   35.403      3     96 1.703e-15 ***
## Residuals   98                                             
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Kriteria Uji

Tolak H0 jika P-Value < alpha, terima dalam hal lainnya

Keputusan

Karena P-Value = 1.703e-15 < alpha, maka Tolak H0

Kesimpulan

Dengan taraf signifikansi 5%, didapatkan keputusan tolak H0, dapat disimpulkan bahwa gender secara signifikan mempengaruhi pengukuran umur dan fisik sinyal tubuh untuk merokok.

E. Uji Lanjut

Hipotesis

H0 : Faktor tidak berpengaruh secara signifikan terhadap vektor yang diamati

H1 : Faktor berpengaruh secara signifikan terhadap vektor yang diamati

Taraf signifikansi

alpha = 5%

Statistik Uji

## Uji Lanjut (Post Hoc Test)
summary.aov(owm)
##  Response 1 :
##             Df  Sum Sq Mean Sq F value    Pr(>F)    
## data$gender  1  1666.8 1666.83  13.604 0.0003706 ***
## Residuals   98 12007.2  122.52                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response 2 :
##             Df Sum Sq Mean Sq F value    Pr(>F)    
## data$gender  1 4441.5  4441.5  96.227 3.135e-16 ***
## Residuals   98 4523.3    46.2                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response 3 :
##             Df Sum Sq Mean Sq F value    Pr(>F)    
## data$gender  1 4678.1  4678.1  55.423 3.806e-11 ***
## Residuals   98 8271.9    84.4                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Kriteria Uji

Tolak H0 jika p-value < alpha, terima dalam hal lainnya

Keputusan

  1. Response 1 ( Age)

    • p-value = 0.0003706 < alpha, maka tolak H0
  2. Response 2 ( Height )

    • p-value = 3.135e-16 < alpha, maka tolak H0
  3. Response 3 ( Weight )

    • p-value = 3.806e-11 < alpha, maka tolak H0

Kesimpulan

Dengan taraf signifikansi 5% :

G. Kesimpulan

Setelah data diuji normalitas secara multivariate, homogenitas, one way manova, dan uji lanjut. Diketahui bahwa data berdistribusi normal multivariate dan memiliki matriks kovarians yang sama. Untuk one way manova, terdapat vektor rata-rata yang berbeda antar kelompok yang diamati. Setelah diuji lanjut diketahui bahwa gender secara signifikan mempengaruhi umur, tinggi, dan berat sinyal tubuh untuk merokok.

Two way Manova

library(readxl)
data2 = read_excel("C:/Users/aidan/Downloads/gym_members_exercise_tracking.xlsx", sheet = "Worksheet")
head(data2)
## # A tibble: 6 × 15
##     Age Gender `Weight (kg)` `Height (m)` Max_BPM Avg_BPM Resting_BPM
##   <dbl>  <dbl>         <dbl>        <dbl>   <dbl>   <dbl>       <dbl>
## 1    56      1          88.3         1.71     180     157          60
## 2    46      2          74.9         1.53     179     151          66
## 3    32      2          68.1         1.66     167     122          54
## 4    25      1          53.2         1.7      190     164          56
## 5    38      1          46.1         1.79     188     158          68
## 6    56      2          58           1.68     168     156          74
## # ℹ 8 more variables: `Session_Duration (hours)` <dbl>, Calories_Burned <dbl>,
## #   Workout_Type <dbl>, Fat_Percentage <dbl>, `Water_Intake (liters)` <dbl>,
## #   `Workout_Frequency (days/week)` <dbl>, Experience_Level <dbl>, BMI <dbl>

Source data : https://www.kaggle.com/datasets/valakhorasani/gym-members-exercise-dataset

A. Uji Normalitas Multivariat

Hipotesis

H0 : Data berdistribusi normal multivariat

H1 : Data tidak berdistribusi normal multivariat

Taraf signifikansi

alpha = 5%

Statistik Uji

x1 <- data2[,1]
x2 <- data2[,5]
x3 <- data2[,6]
x4 <- data2[,7]
data2_fix <- data.frame(x1=x1, x2=x2, x3=x3, x4=x4)

library(MVN)
test = mvn(data2_fix, mvnTest = "mardia", univariateTest = "SW", multivariatePlot = "qq")

test
## $multivariateNormality
##              Test         Statistic            p value Result
## 1 Mardia Skewness  10.5108991037925  0.957934514666727    YES
## 2 Mardia Kurtosis -1.82418629747815 0.0681239124374806    YES
## 3             MVN              <NA>               <NA>    YES
## 
## $univariateNormality
##           Test    Variable Statistic   p value Normality
## 1 Shapiro-Wilk     Age        0.9563    0.0621    YES   
## 2 Shapiro-Wilk   Max_BPM      0.9501    0.0345    NO    
## 3 Shapiro-Wilk   Avg_BPM      0.9427    0.0173    NO    
## 4 Shapiro-Wilk Resting_BPM    0.9532    0.0461    NO    
## 
## $Descriptives
##              n   Mean   Std.Dev Median Min Max   25th   75th        Skew
## Age         50  37.54 11.754652   38.0  19  59  28.00  45.00  0.09613631
## Max_BPM     50 180.94 10.426438  183.5 160 199 172.25 188.00 -0.28962816
## Avg_BPM     50 148.36 13.804406  149.0 122 169 136.00 160.75 -0.12732393
## Resting_BPM 50  61.68  7.078107   61.5  50  74  56.00  68.00  0.07559416
##              Kurtosis
## Age         -1.096506
## Max_BPM     -1.022182
## Avg_BPM     -1.323992
## Resting_BPM -1.241645

Didapatkan hasil p-value :

Kriteria Uji

Karena pada mardia’s test menggunakan dua nilai yaitu nilai skewness dan nilai kurtosis, sehingga :

Keputusan

Kesimpulan

Dengan taraf signifikansi 5% didapatkan keputusan terima H0, maka dapat disimpulkan data berdistribusi normal multivariat.

B. Uji Homogenitas

Karena ada 2 grup yaitu gender dan workout type maka dilakukan uji homogenitas sebanyak 2 kali dengan hipotesis, taraf signifikansi, dan statistik uji yang sama yakni menggunakan uji Box’s M dengan taraf signifikansi 5%.

Hipotesis

H0 : s1=s2=s3=s4, matriks kovarians grup adalah sama

H1 : Minimal ada satu matriks kovarians grup (sk ) yang berbeda

Taraf signifikansi

alpha = 5%

Statistik Uji

#Gender
grup <- data2[2]
library(biotools)
grup <- data2$Gender
head(grup)
## [1] 1 2 2 1 1 2
boxM(data = data2_fix, grouping = grup)
## 
##  Box's M-test for Homogeneity of Covariance Matrices
## 
## data:  data2_fix
## Chi-Sq (approx.) = 8.5918, df = 10, p-value = 0.5712
#Workout type
grup2 <- data2[,10]
library(biotools)
grup <- data2$Workout_Type
head(grup2)
## # A tibble: 6 × 1
##   Workout_Type
##          <dbl>
## 1            1
## 2            2
## 3            3
## 4            3
## 5            3
## 6            2
boxM(data = data2_fix, grouping = grup)
## 
##  Box's M-test for Homogeneity of Covariance Matrices
## 
## data:  data2_fix
## Chi-Sq (approx.) = 18.723, df = 20, p-value = 0.5399

Kriteria Uji

Tolak H0 jika p-value < alpha, terima dalam hal lainnya

Keputusan

Kesimpulan

Dengan taraf signifikansi 5%, didapatkan keputusan terima H0 yang dapat disimpulkan data memiliki matriks kovarian yang sama.

C. Uji Independensi

Asumsi independensi terpenuhi jika pengamatan didapatkan secara random. Untuk kasus diatas, pengukuran tersebut dilakukan secara random.

D. Two Way Manova

H0 : α 1 = α 2 = 0 (Faktor gender tidak berpengaruh terhadap pengukuran umur, max BPM, avg BPM, dan resting BPM)

H1 : Setidaknya ada satu αi yang tidak sama dengan 0 (Faktor gender berpengaruh terhadap pengukuran umur, max BPM, avg BPM, dan resting BPM)

H0 : β1=β2=0 (Faktor hasil tidak berpengaruh terhadap pengukuran umur, max BPM, avg BPM, dan resting BPM)

H1 : Setidaknya ada satu β j yang tidak sama dengan 0, (Faktor workout type berpengaruh terhadap pengukuran umur, max BPM, avg BPM, dan resting BPM)

H0 : αβ ij = 0 (Interaksi antara gender dan workout type tidak berpengaruh terhadap pengukuran umur, max BPM, avg BPM, dan resting BPM)

H1 : Setidaknya ada satu αβ ij yang tidak sama dengan 0 (Interaksi antara gender dan workout type berpengaruh terhadap pengukuran umur, max BPM, avg BPM, dan resting BPM)

Statistik Uji

## Two Way MANOVA 
gender <- as.factor(data2$Gender)
workout <- as.factor(data2$Workout_Type)
# Mengubah list menjadi vektor jika memungkinkan
x1 <- unlist(x1)
x2 <- unlist(x2)
x3 <- unlist(x3)
x4 <- unlist(x4)
# Setelah semuanya diubah, coba gunakan cbind kembali
result <- cbind(x1,x2,x3,x4)
manova <- manova(cbind(x1,x2,x3,x4) ~ gender * workout, data = data2_fix)
summary(manova)
##                Df  Pillai approx F num Df den Df Pr(>F)
## gender          1 0.13194   1.5579      4     41 0.2037
## workout         2 0.18384   1.0629      8     84 0.3969
## gender:workout  2 0.19108   1.1091      8     84 0.3655
## Residuals      44

Kriteria Uji

Tolak H0 jika p-value < alpha, terima dalam hal lainnya

Keputusan

Kesimpulan

Dengan taraf signifikansi 5% dapat disimpulkan bahwa :

E. Uji Lanjut

Hipotesis

H0 : Faktor tidak berpengaruh secara signifikan terhadap vektor yang diamati.

H1 : Faktor berpengaruh secara signifikan terhadap vektor yang diamati.

Taraf Signifikansi

alpha = 5%

Statistik Uji

## Uji Lanjut 
summary.aov(manova)
##  Response x1 :
##                Df Sum Sq Mean Sq F value Pr(>F)
## gender          1   55.4  55.378  0.3894 0.5359
## workout         2  454.7 227.355  1.5985 0.2137
## gender:workout  2    2.3   1.166  0.0082 0.9918
## Residuals      44 6258.0 142.227               
## 
##  Response x2 :
##                Df Sum Sq Mean Sq F value Pr(>F)
## gender          1   79.6  79.622  0.6766 0.4152
## workout         2   15.5   7.774  0.0661 0.9362
## gender:workout  2   54.0  27.015  0.2296 0.7958
## Residuals      44 5177.6 117.673               
## 
##  Response x3 :
##                Df Sum Sq Mean Sq F value Pr(>F)
## gender          1   29.1   29.06  0.1592 0.6918
## workout         2  562.4  281.18  1.5410 0.2255
## gender:workout  2  717.7  358.83  1.9666 0.1520
## Residuals      44 8028.4  182.46               
## 
##  Response x4 :
##                Df  Sum Sq Mean Sq F value Pr(>F)  
## gender          1  171.45 171.455  3.7421 0.0595 .
## workout         2   63.56  31.780  0.6936 0.5052  
## gender:workout  2  203.87 101.935  2.2248 0.1201  
## Residuals      44 2016.00  45.818                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Kriteria Uji

Tolak H0 jika p-value < alpha, terima dalam hal lainnya

Keputusan

  1. Response 1 ( Umur)

    • Gender

      p-value (0.5359) > alpha, maka terima H0

    • Workout type

      p-value (0.2137) > alpha, maka terima H0

    • Gender : Workout type

      p-value (0.9918) > alpha, maka terima H0

  2. Response 2 (Max BPM)

    • Gender

      p-value (0.4152) > alpha, maka terima H0

    • Workout type

      p-value (0.9362) > alpha, maka terima H0

    • Gender : Workout type

      p-value (0.7958) > alpha, maka terima H0

  3. Response 3 (Avg BPM)

    • Gender

      p-value (0.6918) > alpha, maka terima H0

    • Workout type

      p-value (0.2255) > alpha, maka terima H0

    • Gender : Workout type

      p-value (0.1520) > alpha, maka terima H0

  4. Response 4 (Resting BPM)

    • Gender

      p-value (0.0595) > alpha, maka terima H0

    • Workout type

      p-value (0.5052) > alpha, maka terima H0

    • Gender : Workout type

      p-value (0.1201) > alpha, maka terima H0

Kesimpulan

Dengan taraf signifikansi 5% :