# Memanggil Package 
library(stats) 
library(car) 
## Loading required package: carData
library(lmtest) 
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(zoo) 

# Memanggil Data 
data=read.table(file.choose(),header=TRUE) 
data
##                Provinsi   IPM   PPM  TPT   PRT
## 1                  Aceh 74.03 12.64 5.75 81.10
## 2        Sumatera_Utara 74.02  7.19 5.60 85.73
## 3        Sumatera_Barat 74.49  5.42 5.75 72.82
## 4                  Riau 74.79  6.36 3.70 86.32
## 5                 Jambi 73.43  7.26 4.48 83.97
## 6      Sumatera_Selatan 72.30 10.51 3.86 82.36
## 7              Bengkulu 73.39 12.52 3.11 83.01
## 8               Lampung 71.81 10.62 4.19 85.44
## 9  Kep._Bangka_Belitung 73.33  5.08 4.63 94.16
## 10            Kep._Riau 77.97  4.78 6.39 91.23
## 11          DKI_Jakarta 83.08  4.14 6.21 94.01
## 12           Jawa_Barat 74.43  7.08 6.75 75.10
## 13          Jawa_Tengah 73.88  9.58 4.78 86.72
## 14        DI_Yogyakarta 81.55 10.40 3.48 96.71
## 15           Jawa_Timur 74.09  9.56 4.19 85.56
## 16               Banten 74.48  5.70 6.68 87.93
## 17                 Bali 77.76  3.80 1.79 96.83
## 18  Nusa_Tenggara_Barat 70.93 11.91 2.73 86.80
## 19  Nusa_Tenggara_Timur 67.39 19.02 3.02 77.66
## 20     Kalimantan_Barat 70.13  6.25 4.86 81.56
## 21    Kalimantan_Tengah 72.73  5.26 4.01 78.15
## 22   Kalimantan_Selatan 73.03  4.02 4.20 83.70
## 23     Kalimantan_Timur 78.83  5.51 5.14 91.65
## 24     Kalimantan_Utara 73.02  5.38 3.90 85.17
## 25       Sulawesi_Utara 75.03  6.70 5.85 87.31
## 26      Sulawesi_Tengah 71.56 11.04 2.94 77.40
## 27     Sulawesi_Selatan 74.05  7.77 4.19 93.83
## 28    Sulawesi_Tenggara 73.48 10.63 3.09 90.62
## 29            Gorontalo 71.23  8.37 3.13 82.99
## 30       Sulawesi_Barat 68.20 10.71 2.68 82.52
## 31               Maluku 71.57 15.78 6.11 80.51
## 32         Maluku_Utara 71.03  6.03 4.03 82.32
## 33          Papua_Barat 67.02 21.09 4.13 79.00
## 34     Papua_Barat_Daya 68.63 16.95 6.48 77.84
## 35                Papua 73.00 18.09 6.48 80.57
## 36        Papua_Selatan 67.90 19.35 4.05 60.85
## 37         Papua_Tengah 59.75 27.60 2.75 41.44
## 38     Papua_Pegunungan 53.42 29.66 1.32 12.61
# Statistika Deskriptif 
summary(data) 
##       Provinsi       IPM             PPM              TPT       
##  Length   :38   Min.   :53.42   Min.   : 3.800   Min.   :1.320  
##  N.unique :38   1st Qu.:71.08   1st Qu.: 5.782   1st Qu.:3.217  
##  N.blank  : 0   Median :73.18   Median : 8.965   Median :4.190  
##  Min.nchar: 4   Mean   :72.39   Mean   :10.520   Mean   :4.380  
##  Max.nchar:20   3rd Qu.:74.34   3rd Qu.:12.367   3rd Qu.:5.713  
##                 Max.   :83.08   Max.   :29.660   Max.   :6.750  
##       PRT       
##  Min.   :12.61  
##  1st Qu.:79.38  
##  Median :83.36  
##  Mean   :81.14  
##  3rd Qu.:87.18  
##  Max.   :96.83
# Scatterplot per variabel 
plot(data$PPM,data$IPM) 
abline(lm(data$IPM~data$PPM),col="purple",lwd=3) 

plot(data$TPT,data$IPM) 
abline(lm(data$IPM~data$TPT),col="purple",lwd=3) 

plot(data$PRT,data$IPM) 
abline(lm(data$IPM~data$PRT),col="purple",lwd=3) 

# Model Awal 
reg=lm(formula=IPM~PPM+TPT+PRT,data=data) 
summary(reg) 
## 
## Call:
## lm(formula = IPM ~ PPM + TPT + PRT, data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.6693 -1.3153 -0.0973  1.1655  6.5839 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 55.97748    4.04937  13.824 1.63e-15 ***
## PPM         -0.24084    0.09221  -2.612   0.0133 *  
## TPT          0.62372    0.27933   2.233   0.0322 *  
## PRT          0.19980    0.03895   5.130 1.17e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.263 on 34 degrees of freedom
## Multiple R-squared:  0.8226, Adjusted R-squared:  0.807 
## F-statistic: 52.56 on 3 and 34 DF,  p-value: 7.388e-13
# Pendeteksian Multikolinieritas 
vif(reg) 
##      PPM      TPT      PRT 
## 2.480832 1.127737 2.490226
# Pengujian Asumsi 
bptest(reg,varformula=~fitted.values(reg),studentize=FALSE) 
## 
##  Breusch-Pagan test
## 
## data:  reg
## BP = 2.841, df = 1, p-value = 0.09188
dwtest(reg,alternative='two.sided') 
## 
##  Durbin-Watson test
## 
## data:  reg
## DW = 1.7305, p-value = 0.2731
## alternative hypothesis: true autocorrelation is not 0
shapiro.test(resid(reg))
## 
##  Shapiro-Wilk normality test
## 
## data:  resid(reg)
## W = 0.94432, p-value = 0.05793