suppressPackageStartupMessages({
library(rmarkdown)
library(knitr)
library(readxl)
library(dplyr)
library(ggplot2)
library(car) # untuk uji multikolinearitas
library(lmtest) # untuk uji heteroskedastisitas
library(sandwich) # untuk robust standard error
})
data <- read_excel("C:/Users/ASUS/Downloads/Data Wenny.xlsx")
head(data)
## # A tibble: 6 × 4
## Tahun Produktivitas Pendidikan UpahRiil
## <dbl> <dbl> <dbl> <dbl>
## 1 1 39.8 11.5 30
## 2 2 37.2 12.0 38.3
## 3 3 44.9 11.5 44.2
## 4 4 43.7 13.2 47.0
## 5 5 46.1 9.58 50.1
## 6 6 48.6 10.4 54.0
str(data)
## tibble [20 × 4] (S3: tbl_df/tbl/data.frame)
## $ Tahun : num [1:20] 1 2 3 4 5 6 7 8 9 10 ...
## $ Produktivitas: num [1:20] 39.8 37.2 44.9 43.7 46.1 ...
## $ Pendidikan : num [1:20] 11.48 11.97 11.55 13.2 9.58 ...
## $ UpahRiil : num [1:20] 30 38.3 44.2 47 50.1 ...
summary(data)
## Tahun Produktivitas Pendidikan UpahRiil
## Min. : 1.00 Min. :37.23 Min. : 7.945 Min. :30.00
## 1st Qu.: 5.75 1st Qu.:47.95 1st Qu.:11.259 1st Qu.:53.00
## Median :10.50 Median :55.25 Median :12.038 Median :64.68
## Mean :10.50 Mean :55.27 Mean :11.946 Mean :60.02
## 3rd Qu.:15.25 3rd Qu.:63.03 3rd Qu.:13.256 3rd Qu.:67.98
## Max. :20.00 Max. :72.10 Max. :14.566 Max. :75.38
cor(data %>% select(Produktivitas, Pendidikan, UpahRiil))
## Produktivitas Pendidikan UpahRiil
## Produktivitas 1.00000000 0.08394721 0.945687
## Pendidikan 0.08394721 1.00000000 0.145008
## UpahRiil 0.94568704 0.14500802 1.000000
data <- data %>%
arrange(Tahun) %>%
mutate(UpahRiil_Lag = lag(UpahRiil, 1))
data_model <- na.omit(data) #Hapus baris pertama karena NA pada lag
PAM biasanya berbentuk: \[ \Delta W_t = \lambda (W_t^* - W_{t-1}) + \epsilon_t \] Dengan: \[ \Delta W_t = W_t - W_{t-1} \] \[ W_t^* = \beta_0 + \beta_1 X_{1t} + \beta_2 X_{2t} + \dots \] \[ \lambda = \text{kecepatan penyesuaian} \]
data_model <- data_model %>%
mutate(dUpahRiil = UpahRiil - UpahRiil_Lag)
pam_model <- lm(dUpahRiil ~ Produktivitas + Pendidikan + UpahRiil_Lag, data = data_model)
summary(pam_model)
##
## Call:
## lm(formula = dUpahRiil ~ Produktivitas + Pendidikan + UpahRiil_Lag,
## data = data_model)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.0947 -0.5378 0.1902 0.7598 1.8877
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.07174 2.59733 0.798 0.43752
## Produktivitas 0.29151 0.08768 3.325 0.00462 **
## Pendidikan 0.49211 0.17102 2.878 0.01151 *
## UpahRiil_Lag -0.37115 0.06806 -5.453 6.67e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.18 on 15 degrees of freedom
## Multiple R-squared: 0.8193, Adjusted R-squared: 0.7832
## F-statistic: 22.67 on 3 and 15 DF, p-value: 7.938e-06
anova(pam_model)
## Analysis of Variance Table
##
## Response: dUpahRiil
## Df Sum Sq Mean Sq F value Pr(>F)
## Produktivitas 1 40.410 40.410 29.0060 7.570e-05 ***
## Pendidikan 1 12.928 12.928 9.2799 0.008165 **
## UpahRiil_Lag 1 41.430 41.430 29.7381 6.665e-05 ***
## Residuals 15 20.897 1.393
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
vif(pam_model)
## Produktivitas Pendidikan UpahRiil_Lag
## 9.327722 1.004961 9.313432
dwtest(pam_model)
##
## Durbin-Watson test
##
## data: pam_model
## DW = 1.7905, p-value = 0.1597
## alternative hypothesis: true autocorrelation is greater than 0
bptest(pam_model)
##
## studentized Breusch-Pagan test
##
## data: pam_model
## BP = 1.2562, df = 3, p-value = 0.7396
qqnorm(residuals(pam_model))
qqline(residuals(pam_model))
shapiro.test(residuals(pam_model))
##
## Shapiro-Wilk normality test
##
## data: residuals(pam_model)
## W = 0.95952, p-value = 0.563
summary(pam_model)$r.squared # R-squared
## [1] 0.8193293
summary(pam_model)$adj.r.squared # Adjusted R-squared
## [1] 0.7831951
Koefisien dari Produktivitas dan Pendidikan menunjukkan pengaruh langsung perubahan Upah Riil: \[ \Delta W_t = \beta_1 \text{Produktivitas} + \beta_2 \text{Pendidikan} + \beta_3 W_{t-1} + \epsilon_t \]
coef_all <- coef(pam_model) # Ambil koefisien model PAM
short_vars <- c("Produktivitas", "Pendidikan") # Pastikan nama variabel persis seperti di model
short_run <- coef_all[short_vars] # Ambil short-run
Efek jangka panjang diperoleh dari: \[ \text{Efek LR} = \frac{\beta_i}{1 - \beta_3} \]
beta_lag <- coef_all["UpahRiil_Lag"] # Koefisien lag untuk menghitung efek jangka panjang
long_run <- short_run / (1 - beta_lag) # Hitung long-run
effects_df <- data.frame(
Variabel = short_vars,
Short_Run = as.numeric(short_run),
Long_Run = as.numeric(long_run)
) # Buat dataframe bersih
effects_df # Tampilkan
## Variabel Short_Run Long_Run
## 1 Produktivitas 0.2915107 0.2126030
## 2 Pendidikan 0.4921137 0.3589057
Berdasarkan hasil uji ANOVA, nilai F hitung signifikan dengan p-value yang sangat kecil (< 0.05) pada variabel Produktivitas, Pendidikan, dan Upah Riil periode sebelumnya. Hal ini menunjukkan bahwa variabel-variabel tersebut secara bersama-sama berpengaruh signifikan terhadap perubahan Upah Riil (dUpahRiil).
Berdasarkan nilai VIF, variabel Produktivitas (9.33) dan UpahRiil_Lag (9.31) memiliki nilai yang cukup tinggi namun masih di bawah batas 10, sedangkan Pendidikan (1.00) sangat rendah. Hal ini menunjukkan bahwa tidak terdapat masalah multikolinearitas yang serius dalam model.
Hasil Durbin-Watson menunjukkan nilai DW = 1.79 dengan p-value = 0.1597 (> 0.05). Hal ini berarti tidak terdapat autokorelasi pada residual model.
Hasil Breusch-Pagan test menunjukkan p-value = 0.7396 (> 0.05) sehingga tidak terdapat masalah heteroskedastisitas, artinya varians residual bersifat konstan (homoskedastisitas).
Berdasarkan Shapiro-Wilk test, diperoleh p-value = 0.563 (> 0.05) yang menunjukkan bahwa residual berdistribusi normal. Hal ini juga didukung oleh Normal Q-Q Plot, di mana titik-titik residual cenderung mengikuti garis diagonal.