# Import data dari clipboard atau file
data <- read.delim("clipboard", TRUE)
head(data)
## Y X1 X2 X3
## 1 68.57 2.04 12.65 72.07
## 2 71.06 4.38 13.74 72.85
## 3 70.06 3.53 12.47 73.86
## 4 73.15 4.91 13.32 74.16
## 5 71.05 3.66 12.63 73.61
## 6 72.56 5.15 13.44 72.65
library(ggplot2)
library(GGally)
summary(data)
## Y X1 X2 X3
## Min. :62.80 Min. : 2.040 Min. :11.73 Min. :66.89
## 1st Qu.:68.66 1st Qu.: 4.282 1st Qu.:12.72 1st Qu.:70.44
## Median :71.63 Median : 5.070 Median :13.38 Median :72.45
## Mean :72.23 Mean : 5.520 Mean :13.41 Mean :71.72
## 3rd Qu.:75.25 3rd Qu.: 6.565 3rd Qu.:13.77 3rd Qu.:72.84
## Max. :82.31 Max. :10.870 Max. :15.75 Max. :74.18
GGally::ggpairs(data)
model <- lm(Y ~ X1 + X2 + X3, data = data)
res <- residuals(model)
shapiro.test(res)
##
## Shapiro-Wilk normality test
##
## data: res
## W = 0.98563, p-value = 0.8979
qqnorm(res); qqline(res, col=2)
plot(model$fitted.values, res,
xlab="Fitted Values", ylab="Residuals",
main="Scatterplot Residual vs Fitted")
abline(h=0, col="red")
car::vif(model)
## X1 X2 X3
## 1.596684 1.720312 1.310034
summary(model)
##
## Call:
## lm(formula = Y ~ X1 + X2 + X3, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.8977 -1.0382 0.3042 0.9027 3.2869
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -41.8091 10.4048 -4.018 0.000307 ***
## X1 0.7586 0.1688 4.494 7.71e-05 ***
## X2 2.5763 0.3908 6.593 1.48e-07 ***
## X3 1.0499 0.1557 6.745 9.44e-08 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.634 on 34 degrees of freedom
## Multiple R-squared: 0.9044, Adjusted R-squared: 0.896
## F-statistic: 107.2 on 3 and 34 DF, p-value: < 2.2e-16
Penjelasan metode estimasi menggunakan OLS, rumus β = (X’X)⁻¹ X’Y, serta interpretasi koefisien.
anova(model)
## Analysis of Variance Table
##
## Response: Y
## Df Sum Sq Mean Sq F value Pr(>F)
## X1 1 514.03 514.03 192.627 1.449e-15 ***
## X2 1 223.13 223.13 83.614 1.096e-10 ***
## X3 1 121.40 121.40 45.493 9.443e-08 ***
## Residuals 34 90.73 2.67
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
r.squared <- summary(model)$r.squared
adj.r <- summary(model)$adj.r.squared
AIC(model); BIC(model)
## [1] 150.9108
## [1] 159.0987
Interpretasi R-squared, adjusted R-squared, AIC, BIC, dan kesimpulan akhir mengenai kelayakan model regresi.