Pendahuluan

Analisis regresi merupakan metode statistik yang digunakan untuk mempelajari hubungan antara satu variabel dependen dengan satu atau lebih variabel independen. Teknik ini memungkinkan peneliti untuk mengukur pengaruh variabel bebas secara kuantitatif dan memprediksi nilai variabel respon berdasarkan model yang dibangun (Gujarati & Porter, 2020).

Model regresi linier mengasumsikan bahwa hubungan antar variabel bersifat linear, error berdistribusi normal, memiliki varians homogen, serta tidak terdapat autokorelasi. Pemenuhan asumsi ini penting agar estimasi parameter bersifat tidak bias dan efisien (Montgomery, 2018).

Regresi juga menjadi dasar bagi berbagai metode lanjutan seperti uji signifikansi parameter, pemilihan model terbaik, dan evaluasi performa prediksi. Karena fleksibilitasnya, regresi merupakan salah satu teknik paling banyak digunakan dalam penelitian kuantitatif (Wooldridge, 2019).

1. Analisis Regresi

Analisis regresi adalah metode statistik yang digunakan untuk mempelajari dan memodelkan hubungan antara variabel dependen (Y) dengan satu atau lebih variabel independen (X). Tujuan utamanya adalah menjelaskan pola hubungan, mengukur besarnya pengaruh variabel bebas, dan memprediksi nilai variabel dependen berdasarkan model yang diperoleh

a. Regresi Linier Sederhana

Analisis regresi linier sederhana mempelajari hubungan antara satu variabel independen (X) dan satu variabel dependen (Y). Model regresi linier sederhana: \[Y = a + bX\], menggambarkan perubahan rata-rata Y akibat perubahan satu satuan X.

b. Regresi Linier Berganda

Analisis regresi linier berganda mempelajari hubungan antara satu variabel dependen (Y) dengan dua atau lebih variabel independen \(X_1, X_2, \ldots, X_n\) Model regresi linier berganda: \[Y = a + b1*X1 + b2*X2 + ... + bn*Xn,\]

digunakan untuk mengukur pengaruh simultan beberapa variabel independen.++

2. Analisis Regresi dengan Pendekatan Matriks

Pendekatan matriks digunakan untuk menuliskan model regresi linier dalam bentuk yang lebih ringkas dan efisien. Model regresi linier sederhana maupun berganda dapat diformulasikan sebagai: Model matriks: \[ y = X*beta + epsilon\], estimasi parameter beta diperoleh dengan OLS:\[ b = (X'X)^-1 * X'y.\]

3. Visualisasi

Visualisasi adalah proses menampilkan data atau hasil analisis dalam bentuk grafik agar pola, tren, dan hubungan antar variabel lebih mudah dipahami.

4. Contoh Analisis

a. Import Data

data <- read.table("clipboard", header = TRUE, sep = "\t")
head(data)
##    X1  X2    Y
## 1 8.2 7.5 79.0
## 2 7.9 8.0 83.5
## 3 9.0 6.8 84.0
## 4 6.5 8.5 87.5
## 5 7.0 7.2 74.2
## 6 8.5 6.0 80.8
colnames(data)
## [1] "X1" "X2" "Y"

b. Regresi Linier Sederhana

X_simple <- cbind(1, data$X1)
y <- as.matrix(data$Y)
beta_simple <- solve(t(X_simple) %*% X_simple) %*% t(X_simple) %*% y
beta_simple
##           [,1]
## [1,] 70.016627
## [2,]  1.695584
model_simple <- lm(Y ~ X1, data = data)
summary(model_simple)
## 
## Call:
## lm(formula = Y ~ X1, data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -8.4031 -3.6063  0.0818  2.8209 11.3578 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  70.0166     6.5750  10.649 2.36e-11 ***
## X1            1.6956     0.8229   2.061   0.0487 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.873 on 28 degrees of freedom
## Multiple R-squared:  0.1317, Adjusted R-squared:  0.1007 
## F-statistic: 4.246 on 1 and 28 DF,  p-value: 0.04875

c. Regresi Linier Berganda

X_multi <- cbind(1, data$X1, data$X2)
beta_multi <- solve(t(X_multi) %*% X_multi) %*% t(X_multi) %*% y
beta_multi
##           [,1]
## [1,] 27.708475
## [2,]  2.934283
## [3,]  4.280306
model_multi <- lm(Y ~ X1 + X2, data = data)
summary(model_multi)
## 
## Call:
## lm(formula = Y ~ X1 + X2, data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.3563 -1.4832 -0.3535  2.1854  4.3361 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  27.7085     6.6838   4.146 0.000301 ***
## X1            2.9343     0.4976   5.897 2.78e-06 ***
## X2            4.2803     0.5591   7.656 3.10e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.786 on 27 degrees of freedom
## Multiple R-squared:  0.7262, Adjusted R-squared:  0.7059 
## F-statistic:  35.8 on 2 and 27 DF,  p-value: 2.546e-08

d. Scatter Plot

ggplot(data, aes(x=X1, y=Y)) +
  geom_point(size=3) +
  geom_smooth(method="lm", se=TRUE, color="red") +
  labs(title="Scatter Plot Y vs X1", x="X1", y="Y")
## `geom_smooth()` using formula = 'y ~ x'

e. Heat Map Korelasi

cor_mat <- round(cor(data), 2)
melted <- melt(cor_mat)

ggplot(melted, aes(Var1, Var2, fill=value)) +
  geom_tile() +
  geom_text(aes(label=value), color="white", size=5) +
  scale_fill_gradient2(low="blue", high="red", mid="gray", midpoint=0) +
  labs(title="Heatmap Korelasi Variabel") +
  theme_minimal()

f. Residual Plot

par(mfrow=c(1,2))
plot(model_multi$fitted.values, model_multi$residuals,
     xlab="Fitted Values", ylab="Residuals", main="Residual Plot", pch=19, col="blue")
abline(h=0, col="red")
qqPlot(model_multi, main="QQ Plot Residual")

## [1]  5 20

g. 3D Regression Plane

x1_seq <- seq(min(data$X1), max(data$X1), length.out=30)
x2_seq <- seq(min(data$X2), max(data$X2), length.out=30)
grid <- expand.grid(X1=x1_seq, X2=x2_seq)
grid$Y_pred <- predict(model_multi, newdata=grid)

plot_ly() %>%
  add_markers(data=data, x=~X1, y=~X2, z=~Y, marker=list(size=4,color="blue")) %>%
  add_surface(x=x1_seq, y=x2_seq, z=matrix(grid$Y_pred, nrow=length(x1_seq)), opacity=0.6) %>%
  layout(title="3D Plane Model Regresi Berganda",
         scene=list(xaxis=list(title="X1"),
                    yaxis=list(title="X2"),
                    zaxis=list(title="Y Prediksi")))

Kesimpulan

Visualisasi mempermudah interpretasi data, mengenali pola dan tren, serta membantu mengevaluasi performa model regresi.