Penelitian ini menganalisis hubungan antara kebutuhan pangan protein (KPP), pembangunan manusia (IPM), laju pertumbuhan penduduk (LPP), Produk Domestik Regional Bruto (PDRB), dan tingkat pengangguran (TPT) di provinsi-provinsi Indonesia tahun 2024 menggunakan regresi Gamma.
Regresi Gamma merupakan bagian dari Generalized Linear Model (GLM) yang cocok untuk data respon:
Selain estimasi klasik menggunakan Maximum Likelihood Estimation (MLE), laporan ini juga membahas:
Data yang digunakan berisi 38 provinsi dengan variabel:
# Membaca data dari file CSV (pilih manual, misal 'Data.csv')
data <- read.csv(file.choose(), header = TRUE, sep = ",", dec = ".")
# Pastikan nama kolom sesuai: Provinsi, Pangan, IPM, LPP, PDRB, TPT
str(data)
## 'data.frame': 38 obs. of 6 variables:
## $ Provinsi: chr "Aceh" "Sumatera Utara" "Sumatera Barat" "Riau" ...
## $ Pangan : num 60.6 62.1 57.8 59.2 58.7 ...
## $ IPM : num 74 74 74.5 74.8 73.4 ...
## $ LPP : num 1.39 1.4 1.43 1.37 1.3 1.15 1.32 1.2 1.36 1.5 ...
## $ PDRB : num 243202 1146920 332936 1112482 322976 ...
## $ TPT : num 5.75 5.6 5.75 3.7 4.48 3.86 3.11 4.19 4.63 6.39 ...
# Definisikan respon dan kovariat
data$Y <- as.numeric(data$Pangan)
Interpretasi:
Chunk ini membaca data dari file CSV, menampilkan struktur data, dan
mendefinisikan variabel respon Y sebagai KPP
dalam bentuk numerik.
Jika \(Y\) memiliki distribusi Gamma dengan mean \(\mu\) dan parameter dispersi \(\phi\), maka salah satu bentuk densitasnya adalah:
\[ f_Y(y \mid \mu, \phi) = \frac{1}{\Gamma(1/\phi)} \left(\frac{1}{\phi \mu}\right)^{1/\phi} y^{\frac{1}{\phi}-1} \exp\!\left(-\frac{y}{\phi \mu}\right), \quad y > 0, \]
dengan:
Bentuk umum model regresi Gamma:
\[ Y_i \mid X_i \sim \text{Gamma}(\mu_i, \phi), \quad i = 1,\dots,n. \]
Dengan fungsi link log:
\[ g(\mu_i) = \log(\mu_i) = \eta_i = X_i^\top \beta, \]
maka:
\[ \mu_i = \exp(X_i^\top \beta), \]
dan model regresi Gamma dengan link log dapat ditulis:
\[ \log(\mu_i) = \beta_0 + \beta_1 \text{IPM}_i + \beta_2 \text{LPP}_i + \beta_3 \text{PDRB}_i + \beta_4 \text{TPT}_i. \]
# Model Gamma awal untuk uji asumsi
fit_uji <- glm(
Pangan ~ IPM + LPP + PDRB + TPT,
family = Gamma(link = "log"),
data = data
)
summary(fit_uji)
##
## Call:
## glm(formula = Pangan ~ IPM + LPP + PDRB + TPT, family = Gamma(link = "log"),
## data = data)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.544e+00 2.517e-01 10.109 1.23e-11 ***
## IPM 2.118e-02 3.202e-03 6.616 1.59e-07 ***
## LPP 4.999e-02 5.364e-02 0.932 0.358
## PDRB 2.624e-09 1.891e-08 0.139 0.890
## TPT -1.260e-02 1.073e-02 -1.174 0.249
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for Gamma family taken to be 0.00603871)
##
## Null deviance: 0.50303 on 37 degrees of freedom
## Residual deviance: 0.19190 on 33 degrees of freedom
## AIC: 229.49
##
## Number of Fisher Scoring iterations: 4
Interpretasi:
Chunk ini mengestimasi model regresi Gamma dengan KPP
sebagai respon dan IPM, LPP,
PDRB, TPT sebagai kovariat menggunakan link
log. Output summary(fit_uji) memberikan:
sum(data$Y <= 0)
## [1] 0
if(sum(data$Y <= 0) == 0){
cat("Semua Y > 0 (terpenuhi)\n")
} else {
cat("Ada Y <= 0 (tidak terpenuhi)\n")
}
## Semua Y > 0 (terpenuhi)
Interpretasi:
Untuk regresi Gamma, semua nilai Y harus positif. Jika
jumlah Y <= 0 adalah 0, maka asumsi ini terpenuhi.
mu_uji <- fitted(fit_uji)
plot(mu_uji, (data$Y - mu_uji)^2,
main = "Varian vs Mean^2",
xlab = "Mean (μ)",
ylab = "(Y - μ)^2")
Interpretasi:
Plot \(\mu\) versus \((Y-\mu)^2\) menggambarkan apakah varian
cenderung meningkat ketika mean meningkat. Pola menyebar naik seiring
naiknya \(\mu\) mendukung asumsi Gamma
bahwa \(\mathrm{Var}(Y \mid X) \propto
\mu^2\).
hist(data$Y,
main = "Histogram Y (KPP)",
xlab = "Y",
col = "lightblue",
border = "white")
library(e1071)
skewness(data$Y)
## [1] -0.7736714
Interpretasi:
Histogram Y yang condong ke kanan dan nilai skewness > 0 menunjukkan
distribusi right-skewed yang konsisten dengan asumsi distribusi
Gamma.
eta_uji <- fit_uji$linear.predictors
correlation <- cor(log(data$Y), eta_uji)
correlation
## [1] 0.8019885
plot(eta_uji, log(data$Y),
pch = 19,
col = "blue",
xlab = "Linear Predictor η = Xβ",
ylab = "log(Y)",
main = "log(Y) vs Linear Predictor η")
abline(lm(log(data$Y) ~ eta_uji), col = "red", lwd = 2)
Interpretasi:
- Nilai korelasi correlation yang cukup besar (mendekati 1)
menunjukkan hubungan hampir linier antara log(Y) dan
η.
- Plot log(Y) vs η yang mengikuti garis lurus
(garis merah) mendukung asumsi linearitas pada skala link log.
acf(data$Y, main = "ACF Respon Y (KPP)")
Interpretasi:
Plot ACF digunakan untuk mendeteksi autokorelasi. Jika spike-spike ACF
pada berbagai lag berada dalam batas kepercayaan, maka tidak ada
autokorelasi kuat dan asumsi independensi dapat dianggap wajar.
library(car)
vif(fit_uji)
## IPM LPP PDRB TPT
## 1.666369 1.812292 1.683272 1.411736
Interpretasi:
Nilai VIF yang relatif kecil (misal < 5) menunjukkan tidak ada
multikolinearitas serius antara IPM, LPP,
PDRB, dan TPT. Jika semua VIF jauh di bawah
10, asumsi ini dianggap terpenuhi.
Untuk data \((Y_i, X_i)\) dan model Gamma dengan link log:
\[ \log(\mu_i) = X_i^\top \beta, \quad \mu_i = \exp(X_i^\top \beta), \]
log-likelihood (tanpa konstanta) dapat ditulis:
\[ \ell(\beta) \propto -\frac{1}{\phi} \sum_{i=1}^n \left( \log \mu_i + \frac{Y_i}{\mu_i} \right). \]
Gradien (turunan pertama) terhadap \(\beta\):
\[ g(\beta) = \frac{\partial \ell}{\partial \beta} = \frac{1}{\phi} X^\top \bigg(\frac{Y}{\mu} - 1\bigg). \]
Hessian (turunan kedua) terhadap \(\beta\):
\[ H(\beta) = \frac{\partial^2 \ell}{\partial \beta \partial \beta^\top} = \frac{1}{\phi} X^\top W X, \]
dengan \(W = \mathrm{diag}(Y_i / \mu_i)\).
Iterasi Newton-Raphson:
\[ \beta^{(t+1)} = \beta^{(t)} - H(\beta^{(t)})^{-1} g(\beta^{(t)}). \]
Untuk mempelajari sifat penaksir \(\hat\beta\) (MLE) digunakan simulasi Monte Carlo.
Untuk setiap simulasi \(j = 1,\dots,M\):
Dari matriks \(B\) dihitung:
Semakin besar \(n\), biasanya bias dan SE cenderung menurun, sehingga MSE juga menurun dan penaksir menjadi konsisten.
Kerangka Bayesian Regresi Gamma
Dalam pendekatan Bayesian, tujuan utama adalah melakukan penarikan sampel dari distribusi posterior bersama:
\[ p(\beta, \phi \mid Y, X), \]
dengan \(\beta = (\beta_0, \beta_1, \dots, \beta_p)^\top\) dan \(\phi\) parameter dispersi.
Misalkan prior:
\[ \beta \sim N_p(0, \tau^2 I_p), \quad \phi \sim \text{Inverse-Gamma}(a, b). \]
Posterior (tidak terstandarisasi):
\[ p(\beta, \phi \mid Y, X) \propto L(Y \mid \beta, \phi, X) \, p(\beta) \, p(\phi). \]
Karena bentuk posterior tidak dapat dihitung secara tertutup, digunakan algoritma Metropolis–Hastings (MH) dalam kerangka MCMC untuk menghasilkan deret sampel yang, setelah konvergen, mengikuti distribusi posterior tersebut.
Skema MCMC (Metropolis–Hastings)
Untuk setiap iterasi \(t = 1,\dots,T\):
A. Update \(\beta\) (random-walk multivariate normal)
B. Update \(\phi\) (random-walk pada skala log)
Set sampel \(\{(\beta^{(t)}, \phi^{(t)})\}_{t=1}^T\) membentuk rantai MCMC yang (setelah konvergen) mengikuti distribusi posterior.
Ringkasan Inferensial Posterior
Setelah burn-in dan thinning, diperoleh \(S\) sampel posterior \(\{(\beta^{(s)}, \phi^{(s)})\}_{s=1}^S\).
Diagnostik Konvergensi MCMC
Untuk menilai apakah rantai sudah konvergen digunakan:
Regresi Gamma dengan link log cocok digunakan untuk data KPP yang positif dan cenderung miring ke kanan.
Uji asumsi menunjukkan bahwa: