Statistika adalah cabang ilmu yang mempelajari metode pengumpulan,
pengolahan, analisis, dan penyajian data dalam bentuk tabel, diagram,
atau grafik untuk menarik kesimpulan. Statistika bertujuan memperoleh
informasi yang bermanfaat dari data yang diolah. Dalam ilmu statistika,
analisis regresi merupakan salah satu teknik statistik yang digunakan
secara luas pada ilmu terapan untuk menyelesaikan masalah sebab akibat.
Program R merupakan perangkat lunak statistika yang
kaya fungsi dan sangat sesuai untuk melakukan analisis regresi baik
secara manual (pendekatan matriks) maupun memakai fungsi bawaan
(lm()).
Analisis regresi merupakan metode analisis yang dapat digunakan untuk menganalisis data dan mengambil kesimpulan yang bermakna tentang hubungan ketergantungan variabel terhadap variabel lainnya. Analisis ini terdiri dari dua komponen yang dihubungkan, yakni variabel respons dan satu atau beberapa variabel prediktor. Dalam beberapa literatur variabel respons ini sering disebut juga dengan variabel tidak bebas, variabel dependen, variabel terikat dan lainnya. Sedangkan variabel prediktor dapat disebut juga dengan variabel bebas, variabel independen, atau variabel penjelas.
Regresi linear sederhana:
\[ Y = \beta_0 + \beta_1 X + \varepsilon \]
Regresi linear berganda:
\[ Y = \beta_0 + \beta_1X_1 + \beta_2X_2 + \beta_3X_3 + \varepsilon \]
Penyelesaian subjek permasalahan dalam regresi dapat ditangani secara sistematis melalui proses penyelesaian dengan aturan matriks. Pendekatan matriks mempermudah proses estimasi parameter regresi terutama ketika jumlah variabel bebas semakin banyak. Dengan demikian, pendekatan ini sangat sesuai digunakan dalam komputasi statistika karena mampu memberikan hasil perhitungan yang cepat, terstruktur, dan akurat.
Dalam bentuk matriks:
\[ Y = X\beta + \varepsilon \]
Penduga parameter OLS:
\[ \hat{\beta} = (X'X)^{-1}X'Y \]
data <- read.table(header=TRUE, text="
Y X1 X2 X3
71.7 12.9 96.88 8.28
69.28 12.45 98.66 8.17
68.58 12.41 96.24 6.65
69.97 12.35 96.53 7.5
71.6 12.43 97.95 8.38
70.55 11.54 98.21 7.04
73.69 12.76 98.6 9.07
70.79 14.02 94.53 7.64
73.32 13.9 96.96 9.43
71.92 12.97 95.91 7.94
73.07 13.66 98.47 8.34
72.46 13.62 97.81 7.05
70.29 12.9 96.34 6.9
67.86 12.66 87.27 5.59
70.79 12.23 98.27 7.61
69.18 13.12 89.85 7.12
69.63 12.44 93.99 7.17
70.98 12.49 98.5 7.89
72.38 13.56 95.45 7.87
77.45 15.92 99.16 11.91
75.98 11.76 98.99 10.08
73.85 13.56 99.2 10.33
76.1 13.89 99.62 10
69.26 12.76 96.54 6.3
74.19 11.82 97.32 8.51
68.66 10.2 90.44 4.59
70.6 11.2 99.33 7.27
74.02 11.3 99.81 7.87
71.21 11.48 95.78 7.36
74.31 12.33 98.59 8.54
76.55 12.1 98.35 9.67
74.03 10.71 97.95 8.17
72.54 10.95 96.9 7.57
73.5 11.73 97.5 8.31
72.86 11.34 98.09 8.29
")
head(data)
## Y X1 X2 X3
## 1 71.70 12.90 96.88 8.28
## 2 69.28 12.45 98.66 8.17
## 3 68.58 12.41 96.24 6.65
## 4 69.97 12.35 96.53 7.50
## 5 71.60 12.43 97.95 8.38
## 6 70.55 11.54 98.21 7.04
Y <- as.matrix(data$Y)
X1_matrix <- as.matrix(cbind(1, data$X1))
beta_sederhana <- solve(t(X1_matrix) %*% X1_matrix) %*% (t(X1_matrix) %*% Y)
beta_sederhana
## [,1]
## [1,] 65.6462602
## [2,] 0.5155463
model_sederhana <- lm(Y ~ X1, data=data)
summary(model_sederhana)
##
## Call:
## lm(formula = Y ~ X1, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.3131 -2.0250 -0.3547 1.6359 4.6656
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 65.6463 4.5499 14.428 8.25e-16 ***
## X1 0.5155 0.3626 1.422 0.164
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.38 on 33 degrees of freedom
## Multiple R-squared: 0.05772, Adjusted R-squared: 0.02917
## F-statistic: 2.022 on 1 and 33 DF, p-value: 0.1645
X_matrix <- as.matrix(cbind(1, data$X1, data$X2, data$X3))
beta_ganda <- solve(t(X_matrix) %*% X_matrix) %*% (t(X_matrix) %*% Y)
beta_ganda
## [,1]
## [1,] 61.84092332
## [2,] -0.48610450
## [3,] 0.03090475
## [4,] 1.66399970
model_ganda <- lm(Y ~ X1 + X2 + X3, data=data)
summary(model_ganda)
##
## Call:
## lm(formula = Y ~ X1 + X2 + X3, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.1529 -0.8568 0.1299 0.8499 2.4858
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 61.8409 9.8399 6.285 5.47e-07 ***
## X1 -0.4861 0.2212 -2.198 0.0356 *
## X2 0.0309 0.1019 0.303 0.7638
## X3 1.6640 0.2363 7.043 6.57e-08 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.172 on 31 degrees of freedom
## Multiple R-squared: 0.7853, Adjusted R-squared: 0.7646
## F-statistic: 37.81 on 3 and 31 DF, p-value: 1.782e-10
anova(model_sederhana)
## Analysis of Variance Table
##
## Response: Y
## Df Sum Sq Mean Sq F value Pr(>F)
## X1 1 11.448 11.4482 2.0215 0.1645
## Residuals 33 186.884 5.6631
anova(model_ganda)
## Analysis of Variance Table
##
## Response: Y
## Df Sum Sq Mean Sq F value Pr(>F)
## X1 1 11.448 11.448 8.3361 0.007023 **
## X2 1 76.188 76.188 55.4769 2.169e-08 ***
## X3 1 68.123 68.123 49.6039 6.575e-08 ***
## Residuals 31 42.573 1.373
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Analisis menunjukkan bahwa pendekatan matriks menghasilkan nilai
estimasi parameter yang sama dengan fungsi lm().
Model regresi berganda menunjukkan bahwa variabel Angka Melek
Huruf (X2) dan Rata-Rata Lama Sekolah (X3)
berpengaruh positif terhadap IPM, sedangkan Harapan Lama Sekolah
(X1) memberikan pengaruh negatif. Pendekatan matriks memudahkan
proses komputasi dan memperjelas struktur matematis dari model
regresi.