MEAN DIFFERENT TEST

Mean Difference Test, atau yang lebih dikenal dengan Uji Beda Rata-Rata, adalah salah satu metode statistik yang digunakan untuk membandingkan rata-rata dari dua kelompok atau lebih. Uji ini bertujuan untuk mengetahui apakah terdapat perbedaan signifikan antara rata-rata kelompok-kelompok tersebut, atau apakah perbedaan yang diamati hanya terjadi karena kebetulan atau variasi sampel.

INPUT DATA

data <- read.csv(file = "C:/Users/acer/Documents/tugas unpad/Tugas Akhir/SEMPRO/data cleaning.csv", header=T,sep=";",dec=".")
head(data)
##   pet lok group X1  X2   X3  X4 X5 X6  X7   X8
## 1   0   0     a  5 5.0 5.00 5.0  5  5 1.8 2.00
## 2   0   0     a  5 4.0 4.33 5.0  4  5 1.8 2.00
## 3   0   0     a  5 4.0 4.33 5.0  4  5 1.8 2.00
## 4   0   0     a  5 5.0 5.00 5.0  5  5 1.8 2.00
## 5   0   0     a  5 4.5 4.67 5.0  4  2 2.9 3.95
## 6   0   0     a  5 5.0 5.00 4.5  5  3 2.3 2.65

Pada kasus kali ini, akan digunakan data sekunder berupa nilai partisipasi kelompok tani di Kawasan Bandung Raya terhadap kegiatan urban farming. Di Kawasan Bandung raya kelompok tani dibagi menjadi empat berdasarkan corak usaha tani dan lokasinya, yaitu kelompok tani Subisten-Intraurban (A), Subsisten-Suburban (B), Komersial-Intraurban (C), dan Komersial-Suburban (D). Dan tingkat partisipasi yang digunakan adalah tingkat tertinggi yaitu “Kendali Warga” (X8)

data$group <- as.factor(data$group)
str(data)
## 'data.frame':    280 obs. of  11 variables:
##  $ pet  : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ lok  : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ group: Factor w/ 4 levels "a","b","c","d": 1 1 1 1 1 1 1 1 1 1 ...
##  $ X1   : int  5 5 5 5 5 5 5 5 5 5 ...
##  $ X2   : num  5 4 4 5 4.5 5 5 5 5 4 ...
##  $ X3   : num  5 4.33 4.33 5 4.67 5 5 5 5 3.67 ...
##  $ X4   : num  5 5 5 5 5 4.5 5 4 4 4 ...
##  $ X5   : int  5 4 4 5 4 5 5 5 5 3 ...
##  $ X6   : num  5 5 5 5 2 3 5 3 3 3 ...
##  $ X7   : num  1.8 1.8 1.8 1.8 2.9 2.3 1.4 2.3 2.3 2.3 ...
##  $ X8   : num  2 2 2 2 3.95 2.65 1.95 2.65 2.65 2.65 ...

EKSPLORASI DATA

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)

# Summary statistics berdasarkan kelompok
summary_data <- data %>%
  group_by(group) %>%
  summarise(
    mean_x = mean(X8),
    median_x = median(X8),
    min_x = min(X8),
    max_x = max(X8),
    sd_x = sd(X8)
  )

summary_data
## # A tibble: 4 × 6
##   group mean_x median_x min_x max_x  sd_x
##   <fct>  <dbl>    <dbl> <dbl> <dbl> <dbl>
## 1 a       2.66     2.65  1     4.15 0.730
## 2 b       3.33     3.75  2     5    0.968
## 3 c       4.04     3.95  2.65  5    0.451
## 4 d       3.93     3.98  1     5    0.854
p1 <- ggplot(data) + 
   aes(x = group, y = X8, fill = group) +
   geom_boxplot() +
   scale_fill_hue(direction = 1) +
   theme_minimal() +
   theme(legend.position = "none")
p1

UJI ASUMSI

Sebelum melakukan pengujian beda rata-rata menggunakan Uji-t ataupun anova, asumsi klasik diantaranya unit pengamatan independen, berdistribusi normal, dan homogenitas varians. Diantara asumsi tersebut keterpenuhan asumsi homogenitas varians sangar krusial dan perlu untuk dipenuhi.

library(car)
## Loading required package: carData
## 
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
## 
##     recode
leveneTest(X8 ~ group, data=data)
## Levene's Test for Homogeneity of Variance (center = median)
##        Df F value    Pr(>F)    
## group   3   12.83 7.143e-08 ***
##       276                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Hasil diatas memberikan hasil bahwa data tidak dapat memenuhi asumsi homogenitas varians. maka penggunakan metode klasik seperti Anova dapat memberikan hasil yang keliru. Dengan demikian penerapan motode modifikasi wald test menggunakan kovarians white akan digunakan sebagai alternatif.

PEMODELAN REGRESI DUMMY

model <- lm(X8 ~ as.factor(group), data = data)
summary(model)
## 
## Call:
## lm(formula = X8 ~ as.factor(group), data = data)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.92571 -0.61143 -0.01143  0.54286  1.67286 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        2.66143    0.09262  28.736  < 2e-16 ***
## as.factor(group)b  0.66571    0.13098   5.083 6.88e-07 ***
## as.factor(group)c  1.38286    0.13098  10.558  < 2e-16 ***
## as.factor(group)d  1.26429    0.13098   9.652  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7749 on 276 degrees of freedom
## Multiple R-squared:  0.3382, Adjusted R-squared:  0.3311 
## F-statistic: 47.02 on 3 and 276 DF,  p-value: < 2.2e-16

PEMBENTUKAN KOVARIANS WHITE

library(sandwich)
## Warning: package 'sandwich' was built under R version 4.3.3
# Menghitung matriks kovarian HC
cov <- vcovHC(model, type = "HC0") 
cov
##                    (Intercept) as.factor(group)b as.factor(group)c
## (Intercept)        0.007502216      -0.007502216      -0.007502216
## as.factor(group)b -0.007502216       0.020697813       0.007502216
## as.factor(group)c -0.007502216       0.007502216       0.010367055
## as.factor(group)d -0.007502216       0.007502216       0.007502216
##                   as.factor(group)d
## (Intercept)            -0.007502216
## as.factor(group)b       0.007502216
## as.factor(group)c       0.007502216
## as.factor(group)d       0.017761137
std_error <- sqrt(diag(cov))
print(std_error)
##       (Intercept) as.factor(group)b as.factor(group)c as.factor(group)d 
##        0.08661533        0.14386735        0.10181874        0.13327092

PENGUJIAN SIMULTAN DENGAN MODIFIKASI WALD TEST

# Matriks kontrast R,vektor b dan q
R <- matrix(c(0, 0, 0,1, 0, 0, 0,1,0,0,0,1), nrow = 3)
q <- c(0, 0, 0)
b <- matrix(coef(model))
# Pengujian
wald <- t(R%*%b-q) %*% solve(R%*%cov %*% t(R))%*%(R%*%b-q)  
print("Nilai Chi-Kuadrat")
## [1] "Nilai Chi-Kuadrat"
wald
##         [,1]
## [1,] 199.735
alpha <- 0.05
df <- 3
J <- qchisq(1-alpha, df)
p_value <- 1 - pchisq(wald, df)
print("Nilai P-value")
## [1] "Nilai P-value"
p_value
##      [,1]
## [1,]    0

Hasil pengujian simultan diatas memberikan kesimpulan bahwa terdapat minimal satu kelompok yang berbeda. Untuk melihat lebih dalam kelompok mana saja yang berbeda maka akan dilakukan pengujian secara parsial terhadap kombinasi kelompok yang ada.

PENGUJIAN PARSIAL DENGAN MODIFIKASI WALD TEST

# Matriks kontrast R,vektor b dan q
R1 <- matrix(c(0, 1, 0, 0), nrow = 1)
R2 <- matrix(c(0, 0, 1, 0), nrow = 1)
R3 <- matrix(c(0, 0, 0, 1), nrow = 1)
R4 <- matrix(c(0, 1, -1, 0), nrow = 1)
R5 <- matrix(c(0, 1, 0, -1), nrow = 1)
R6 <- matrix(c(0, 0, 1, -1), nrow = 1)
q1 <- c(0)
#Pengujian
wald1 <- t(R1%*%b-q1) %*% solve(R1%*%cov %*% t(R1))%*%(R1%*%b-q1)  
wald2 <- t(R2%*%b-q1) %*% solve(R2%*%cov %*% t(R2))%*%(R2%*%b-q1)  
wald3 <- t(R3%*%b-q1) %*% solve(R3%*%cov %*% t(R3))%*%(R3%*%b-q1)  
wald4 <- t(R4%*%b-q1) %*% solve(R4%*%cov %*% t(R4))%*%(R4%*%b-q1)  
wald5 <- t(R5%*%b-q1) %*% solve(R5%*%cov %*% t(R5))%*%(R5%*%b-q1)  
wald6 <- t(R6%*%b-q1) %*% solve(R6%*%cov %*% t(R6))%*%(R6%*%b-q1)  

print("Nilai Chi-Kuadrat")
## [1] "Nilai Chi-Kuadrat"
wald1
##          [,1]
## [1,] 21.41171
wald2
##          [,1]
## [1,] 184.4587
wald3
##          [,1]
## [1,] 89.99527
wald4
##          [,1]
## [1,] 32.02241
wald5
##          [,1]
## [1,] 15.27585
wald6
##          [,1]
## [1,] 1.071277
df1 <- 1
alpha <- 0.05
J1 <- qchisq(1-alpha, df1)

# Hitung p-value
p_value1 <- 1 - pchisq(wald1, df1)
p_value2 <- 1 - pchisq(wald2, df1)
p_value3 <- 1 - pchisq(wald3, df1)
p_value4 <- 1 - pchisq(wald4, df1)
p_value5 <- 1 - pchisq(wald5, df1)
p_value6 <- 1 - pchisq(wald6, df1)

print("Nilai P-value")
## [1] "Nilai P-value"
p_value1
##              [,1]
## [1,] 3.705021e-06
p_value2
##      [,1]
## [1,]    0
p_value3
##      [,1]
## [1,]    0
p_value4
##              [,1]
## [1,] 1.524044e-08
p_value5 
##              [,1]
## [1,] 9.289654e-05
p_value6 
##           [,1]
## [1,] 0.3006572

Hasil pengujian parsial memberikan kesimpulan bahwa seluruh partisipasi kelompok subsisten baik di lokasi intraurban dan suburban berbeda terhadap kelompok komersial. Sedangkan dalam kelompok komersial partisipasi kelompok dilokasi intraurban dan suburban ditemukan sama. Hal ini bisa disebabkan oleh motivasi yang kuat diantra kelompok komersial sehingga lokasi tidak berpengaruh.