TUGAS INDIVIDU MPDW PEKAN 4
lapply(c("writexl","dplyr","readxl","ggplot2","psych","treemapify","hrbrthemes","MLmetrics","lmtest","car","knitr","dynlm","caret","forecast","smooth","tseries","TTR"), library,character.only=T)
library(dLagM)Pendahuluan
Analisis deret waktu merupakan analisis sekumpulan data dalam suatu periode waktu yang lampau guna memprediksi suatu kejadian , baik dimasa sekarang mauapun untuk suatu kejadian kedepannya. Model regresi dengan menggunakan data deret waktu tidak hanya menggunakan pengaruh perubahan variabel bebas terhadap variabel tak bebas dalam kurun waktu yang sama dan selama periode pengamatan yang sama, tetapi juga menggunakan periode waktu sebelumnya. Waktu yang diperlukan bagi variabel X dalam mempengaruhi variabel tak bebas Y disebut beda kala atau lag. Model regresi yang memuat variabel tak bebas dan dipengaruhi oleh variabel bebas pada waktu t, selain itu juga dipengaruhi juga oleh variabel bebas pada waktu t-1, t-2 dan seterusnya disebut model dinamis distribusi lag, karena pengaruh dari suatu atau beberapa variabel X terhadap variabel Y menyebar ke beberapa periode waktu. Model regresi yang memuat variabel tak bebas yang dipengaruhi oleh variabel bebas pada waktu t, serta dipengaruhi juga oleh variabel tak bebas itu sendiri pada waktu t-1 yang disebut sebagai model dinamis autoregressive
1. Regresi Runtun Waktu
Model regresi linier yang sering ditemui biasanya tidak memperhatikan pengaruh waktu karena pada umumnya model regresi linier cenderung mengasumsikan bahwa pengaruh variabel bebas terhadap variabel tak bebas terjadi dalam kurun waktu yang sama. Namun, dalam model regresi linier juga terdapat model regresi yang memperhatikan pengaruh waktu. Waktu yang diperlukan bagi variabel bebas X dalam mempengaruhi variabel tak bebas Y disebut beda kala atau a lag atau a time lag.
2. Model Autoregressive
Apabila variabel tak bebas dipengaruhi oleh variabel bebas pada waktu ke t, serta dipengaruhi juga oleh variabel tak bebas itu sendiri pada waktu ke t-1 maka model tersebut disebut autoregressive dengan persamaan:
yt=α+β0*Xt+β1*Yt−1+εt
Dengan :
Yt= variabel tak bebas pada saat ke t pengamatan
Xt= variabel bebas
Yt−1= variabel tak bebas pada saat ke t-1 pengamatan
α= intersep
β0,β1= slope (kemiringan garis regresi)
εt= residual
3. Model Distribusi Lag
Dalam analisis regresi yang melibatkan data runtun waktu, jika model regresi memasukan tidak hanya nilai variabel bebas saat ini atau open tapi juga nilai variabel bebas masa lalu pada waktu ke t-1, waktu ke t-2 dan seterusnya. Model regresi seperti ini disebut model distributed lag. Suatu Variabel tak bebas apabila dipengaruhi oleh variabel bebas pada waktu t, serta dipengaruhi juga oleh variabel bebas pada waktu ke t-1, ke t-2 dan seterusnya disebut model dinamis distribusi lag. Model dinamis distribusi lag terdapat 2 jenis yaitu:
Model Finite Lag:
yt=α+β0*Xt+β1*Yt−1+β2*Yt−2+...+βk*Yt−k+εt
Model disebut model finite lag sebab panjang beda kalanya diketahui sebesar k.
Model Infinite Lag:
yt=α+β0*Xt+β1*Yt−1+β2*Yt−2+...+εt
Model disebut model infinite lag sebab panjang beda kalanya tidak diketahui.
4. Cara Pengestimasian Model Koyck
Model Koyck digunakan untuk mencari nilai estimasi dari masing-masing parameter yang ada dalam model distribusi lag untuk jenis infinite lag. Model Koyck didasarkan pada suatau asumsi bahwa semakin jauh jarak lag variabel bebas dari periode sekarang maka semakin kecil pengaruh variabel lag terhadap variabel tak bebas. Kyock mengusulkan suatu metode untuk memperkirakan model dinamis distribusi lag dengan mengasumsikan bahwa semua koefisien β mempunyai tanda sama. Koyck menganggap bahwa koefisien menurun secara geometris sebagai berikut:
βk=β0*C^k
dengan k=0,1,2,3,..
Data
Data time series yang akan dianalisis lebih lanjut saat ini merupakan data pengangguran di Amerika Serikat, data ini bersumber dari kaggle dimana data tersebut diambil dari tahun 2013-2014 dengan banyaknya peubah adalah 5 peubah, namun yang menjadi peubah Y pada penelitian ini adalah peubah open dan yang menjadi, sedangkan yang menjadi peubah X adalah peubah volume dari data asli tersebut. .
data <- read_excel("C:/Users/mahes/Downloads/Metode Peramalan Deret Waktu/Data yg udah tetap.xlsx")
data## # A tibble: 377 x 10
## date open high low close volume OPEN HIGH LOW CLOSE
## <dttm> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2013-02-08 00:00:00 15.1 15.1 14.6 14.8 8407500 1507 1512 1463 1475
## 2 2013-02-11 00:00:00 14.9 15.0 14.3 14.5 8882000 1489 1501 1426 1446
## 3 2013-02-12 00:00:00 14.4 14.5 14.1 14.3 8126000 1445 1451 1410 1427
## 4 2013-02-13 00:00:00 14.3 14.9 14.2 14.7 10259500 1430 1494 1425 1466
## 5 2013-02-14 00:00:00 14.9 15.0 13.2 14.0 31879900 1494 1496 1316 1399
## 6 2013-02-15 00:00:00 13.9 14.6 13.9 14.5 15628000 1393 1461 1393 1450
## 7 2013-02-19 00:00:00 14.3 14.6 14.1 14.3 11354400 1433 1456 1408 1426
## 8 2013-02-20 00:00:00 14.2 14.3 13.2 13.3 14725200 1417 1426 1315 1333
## 9 2013-02-21 00:00:00 13.6 14.0 12.9 13.4 11922100 1362 1395 1290 1337
## 10 2013-02-22 00:00:00 13.6 13.6 13.2 13.6 6071400 1357 1360 1321 1357
## # ... with 367 more rows
date<-as.character(data$date)
str(data)## tibble [377 x 10] (S3: tbl_df/tbl/data.frame)
## $ date : POSIXct[1:377], format: "2013-02-08" "2013-02-11" ...
## $ open : num [1:377] 15.1 14.9 14.4 14.3 14.9 ...
## $ high : num [1:377] 15.1 15 14.5 14.9 15 ...
## $ low : num [1:377] 14.6 14.3 14.1 14.2 13.2 ...
## $ close : num [1:377] 14.8 14.5 14.3 14.7 14 ...
## $ volume: num [1:377] 8407500 8882000 8126000 10259500 31879900 ...
## $ OPEN : num [1:377] 1507 1489 1445 1430 1494 ...
## $ HIGH : num [1:377] 1512 1501 1451 1494 1496 ...
## $ LOW : num [1:377] 1463 1426 1410 1425 1316 ...
## $ CLOSE : num [1:377] 1475 1446 1427 1466 1399 ...
Split Data dan Membuat Data Menjadi Data Time Series
#Split data
train<-data[1:186,]
test<-data[187:377,]
#data time series
train.ts<-ts(train)
test.ts<-ts(test)
data.ts<-ts(data)Model KOYCK
Metode Koyck didasarkan asumsi bahwa semakin jauh jarak lag peubah independen dari periode sekarang maka semakin kecil pengaruh peubah lag terhadap peubah dependen. Koyck mengusulkan suatu metode untuk menduga model dinamis distributed lag dengan mengasumsikan bahwa semua koefisien β mempunyai tanda sama. Model Koyck merupakan jenis paling umum dari model infinite distributed lag dan juga dikenal sebagai geometric lag.
model.koyck = dLagM::koyckDlm(x = train$volume, y = train$open)
summary(model.koyck)##
## Call:
## "Y ~ (Intercept) + Y.1 + X.t"
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.2084 -0.3245 -0.1168 0.2460 7.5095
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.435e+00 5.682e-01 2.525 0.012425 *
## Y.1 9.592e-01 2.825e-02 33.959 < 2e-16 ***
## X.t -9.949e-08 2.572e-08 -3.869 0.000152 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.7418 on 182 degrees of freedom
## Multiple R-Squared: 0.8687, Adjusted R-squared: 0.8672
## Wald test: 670.9 on 2 and 182 DF, p-value: < 2.2e-16
##
## Diagnostic tests:
## NULL
##
## alpha beta phi
## Geometric coefficients: 35.13966 -9.949304e-08 0.9591713
plot(data$open,data$volume,pch = 20, col = "blue", main = "Scatter Plot Open VS Volume", ylab = "volume", xlab = "open")AIC(model.koyck)## [1] 419.4951
BIC(model.koyck)## [1] 432.3765
Ramalan KOYCK
(fore.koyck <- forecast(model = model.koyck, x=test$volume, h=10))## $forecasts
## [1] 20.58876 20.47374 20.19429 20.16842 19.93776 20.20940 16.83013 15.57915
## [9] 15.12000 14.57823
##
## $call
## forecast.koyckDlm(model = model.koyck, x = test$volume, h = 10)
##
## attr(,"class")
## [1] "forecast.koyckDlm" "dLagM"
MAPE testing dan akurasi Data Training
#akurasi data training
mape_train <- dLagM::GoF(model.koyck)["MAPE"]Regression with Distributed Lag
1. Regression with Distributed Lag (lag=2)
#REGRESSION WITH DISTRIBUTED LAG -> estimasi parameter menggunakan least square
model.dlm = dLagM::dlm(x = train$volume, y = train$open , q = 2)
summary(model.dlm)##
## Call:
## lm(formula = model.formula, data = design)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.264 -1.275 -0.400 1.181 5.452
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.816e+01 2.618e-01 69.352 <2e-16 ***
## x.t -1.271e-08 2.364e-08 -0.538 0.5915
## x.1 -4.504e-08 2.490e-08 -1.809 0.0721 .
## x.2 -5.106e-08 2.364e-08 -2.160 0.0321 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.975 on 180 degrees of freedom
## Multiple R-squared: 0.07138, Adjusted R-squared: 0.0559
## F-statistic: 4.612 on 3 and 180 DF, p-value: 0.003907
##
## AIC and BIC values for the model:
## AIC BIC
## 1 778.667 794.7417
AIC(model.dlm)## [1] 778.667
BIC(model.dlm)## [1] 794.7417
2.Ramalan Lag
#ramalan
(fore.dlm <- forecast(model = model.dlm, x=test$volume, h=12)) #meramalkan 12 periode ke depan## $forecasts
## [1] 17.27219 16.80078 16.70521 17.31488 17.31143 17.40547 17.05800 15.91741
## [9] 15.04525 16.38900 16.76874 16.82705
##
## $call
## forecast.dlm(model = model.dlm, x = test$volume, h = 12)
##
## attr(,"class")
## [1] "forecast.dlm" "dLagM"
MAPE testing dan akurasi Data Training
#akurasi data training
mape_train <- GoF(model.dlm)["MAPE"]3. Regression with Distributed Lag Optimum
#penentuan lag optimum
finiteDLMauto(formula = open ~ volume,
data = data.frame(train), q.min = 1, q.max = 4,
model.type = "dlm", error.type = "AIC", trace = TRUE) ##q max lag maksimum## q - k MASE AIC BIC GMRAE MBRAE R.Adj.Sq Ljung-Box
## 4 4 4.87514 759.8118 782.2398 6.37802 1.24797 0.10577 0
## 3 3 4.90942 768.9430 788.1999 6.05741 0.52268 0.08319 0
## 2 2 5.00595 778.6670 794.7417 6.27081 -12.51540 0.05590 0
## 1 1 5.05787 786.0354 798.9168 6.28180 -0.23282 0.03722 0
#model dlm dengan lag optimum
model.dlm2 = dLagM::dlm(x = train$volume,y = train$open , q = 4) #terdapat lag yang tidak signifikan sehingga dapat dikurangi jumlah lagnya
summary(model.dlm2)##
## Call:
## lm(formula = model.formula, data = design)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.962 -1.227 -0.330 1.130 5.456
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.866e+01 2.893e-01 64.494 <2e-16 ***
## x.t -8.382e-09 2.290e-08 -0.366 0.7147
## x.1 -4.231e-08 2.410e-08 -1.756 0.0808 .
## x.2 -3.115e-08 2.408e-08 -1.293 0.1976
## x.3 -4.075e-08 2.420e-08 -1.684 0.0940 .
## x.4 -5.436e-08 2.297e-08 -2.367 0.0190 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.909 on 176 degrees of freedom
## Multiple R-squared: 0.1305, Adjusted R-squared: 0.1058
## F-statistic: 5.282 on 5 and 176 DF, p-value: 0.0001514
##
## AIC and BIC values for the model:
## AIC BIC
## 1 759.8118 782.2398
AIC(model.dlm2)## [1] 759.8118
BIC(model.dlm2)## [1] 782.2398
Ramalan Lag Optimum
#ramalan
(fore.dlm2 <- forecast(model = model.dlm2, x=test$volume, h=12))## $forecasts
## [1] 17.14953 16.56934 17.04054 16.80526 16.66669 17.32490 17.17023 15.99217
## [9] 15.85099 15.55924 14.60448 16.08145
##
## $call
## forecast.dlm(model = model.dlm2, x = test$volume, h = 12)
##
## attr(,"class")
## [1] "forecast.dlm" "dLagM"
1. MAPE akurasi Data Training
#akurasi data training
mape_train <- GoF(model.dlm2)["MAPE"]Model Autoregressive / Dynamic Regression
Apabila peubah dependen dipengaruhi oleh peubah independen pada waktu sekarang, serta dipengaruhii juga oleh peubah dependen itu sendiri pada satu waktu yang lalu maka model tersebut disebut autoregressive (Gujarati, 2004)
# MODEL AUTOREGRESSIVE
model.ardl = ardlDlm(x = train$volume, y = train$open, p = 1 , q = 1) #p:lag x, q:lag y
#model untuk p=1, q=1: IHSG=b0+b1IHSG-1+b2nilai_tukar_rupiah+b3nilai_tukar_rupiah-1
#model untuk p=2, q=3: IHSG=b0+b1IHSG-1+b2IHSG-2+b3nilai_tukar_rupiah+b4nilai_tukar_rupiah-1+b5nilai_tukar_rupiah-2
summary(model.ardl)##
## Time series regression with "ts" data:
## Start = 2, End = 186
##
## Call:
## dynlm(formula = as.formula(model.text), data = data, start = 1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.84839 -0.25114 -0.01799 0.25075 1.04890
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.195e-01 2.421e-01 2.559 0.0113 *
## X.t 5.051e-09 4.372e-09 1.155 0.2495
## X.1 -3.423e-08 4.381e-09 -7.813 4.38e-13 ***
## Y.1 9.781e-01 1.346e-02 72.651 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3648 on 181 degrees of freedom
## Multiple R-squared: 0.9684, Adjusted R-squared: 0.9679
## F-statistic: 1850 on 3 and 181 DF, p-value: < 2.2e-16
AIC(model.ardl)## [1] 157.8253
BIC(model.ardl)## [1] 173.927
Ramalan Autoregressive
#ramalan
(fore.ardl <- forecast(model = model.ardl, x=test$volume, h=12))## $forecasts
## [1] 22.03197 21.52212 21.47135 21.35121 21.32746 21.20839 21.44629 20.32567
## [9] 19.87672 19.69760 19.46944 19.38905
##
## $call
## forecast.ardlDlm(model = model.ardl, x = test$volume, h = 12)
##
## attr(,"class")
## [1] "forecast.ardlDlm" "dLagM"
1. MAPE akurasi Data Training
#akurasi data training
mape_train <- GoF(model.ardl)["MAPE"]2. Penentuan lag optimum
#penentuan lag optimum
ardlBoundOrders(data = data.frame(train), ic="AIC", formula = open ~ volume)## $p
## volume
## 1 2
##
## $q
## [1] 1
##
## $Stat.table
## q = 1 q = 2 q = 3 q = 4 q = 5 q = 6 q = 7 q = 8
## p = 1 156.9375 157.3257 159.0427 156.7092 157.8878 157.2642 157.7119 157.8325
## p = 2 155.9184 157.7653 159.4256 157.4613 158.6760 157.8449 158.4697 158.7942
## p = 3 159.3140 159.3140 161.3104 159.2264 160.4207 159.4385 160.1794 160.1665
## p = 4 157.5359 159.2272 159.2272 160.4989 161.7643 160.9815 161.7931 161.7100
## p = 5 159.1038 160.4374 162.3105 162.3105 163.5311 162.6175 163.3344 163.2964
## p = 6 159.3063 159.7691 161.5641 163.5135 163.5135 164.5016 165.2704 165.2378
## p = 7 160.6856 160.8718 162.5880 164.5743 166.5742 166.5742 167.2244 167.1824
## p = 8 157.4882 157.3839 158.9783 160.9430 162.9331 164.7300 164.7300 166.7229
## p = 9 157.2021 157.4036 159.0111 161.0033 162.9812 164.9352 166.3657 166.3657
## p = 10 159.3891 159.6146 161.4218 163.3353 165.1292 166.8170 167.2348 169.1317
## p = 11 157.8755 159.0840 161.0513 162.6835 163.5661 164.8726 161.9607 163.3474
## p = 12 158.1654 159.0803 160.8992 162.8149 164.2654 166.1118 164.9837 166.9824
## p = 13 159.2701 160.2698 162.0889 164.0249 165.5403 167.4723 166.9859 168.9198
## p = 14 161.6779 162.6747 164.5209 166.3873 167.6844 169.5906 168.9946 170.9707
## p = 15 164.2404 165.5573 167.5178 169.2190 169.7723 171.1917 168.3015 170.2245
## q = 9 q = 10 q = 11 q = 12 q = 13 q = 14 q = 15
## p = 1 159.6503 161.3028 159.8216 160.5570 162.7442 160.1793 162.4349
## p = 2 160.5985 162.3153 160.8891 161.7409 163.9677 161.7092 163.9480
## p = 3 162.0965 163.7951 162.3990 163.4091 165.6368 163.3068 165.5684
## p = 4 163.6298 165.4813 164.0998 165.0462 167.2759 164.7992 167.0414
## p = 5 165.2727 166.9959 165.4139 166.3887 168.6197 165.6595 167.8897
## p = 6 167.2323 168.9692 167.3771 168.3878 170.6187 167.6335 169.8729
## p = 7 169.1570 170.9244 169.3554 170.3729 172.6068 169.6064 171.8501
## p = 8 168.8327 170.4550 168.6330 169.2957 171.2929 169.2764 171.5070
## p = 9 168.1712 169.5948 167.6094 168.5751 170.5974 168.5750 170.6879
## p = 10 169.1317 169.6910 167.5906 168.7635 170.8895 169.3044 171.3433
## p = 11 164.3473 164.3473 163.6807 164.2944 166.2975 165.1238 167.3311
## p = 12 168.9253 164.3036 164.3036 165.7474 167.8016 166.4566 168.7133
## p = 13 170.6302 166.4750 167.6486 167.6486 169.6048 168.4007 170.6400
## p = 14 172.7111 169.8220 170.0746 171.9532 171.9532 169.4892 171.7925
## p = 15 172.2233 171.6086 168.4240 168.7324 166.4316 166.4316 166.0338
##
## $min.Stat
## [1] 155.9184
PEMODELAN DLM dan ARDL dengan library dynlm
#sama dengan model dlm p=1
cons_lm1 <- dynlm(open ~ volume+L(volume),data = train.ts)
#sama dengan model ardl p=0 q=1
cons_lm2 <- dynlm(open ~ volume+L(open),data = train.ts)
#sama dengan ardl p=1 q=1
cons_lm3 <- dynlm(open ~ volume+L(volume)+L(volume),data = train.ts)
#sama dengan dlm p=2
cons_lm4 <- dynlm(open ~ volume+L(volume)+L(volume,2),data = train.ts)#Ringkasan Model
summary(cons_lm1)##
## Time series regression with "ts" data:
## Start = 2, End = 186
##
## Call:
## dynlm(formula = open ~ volume + L(volume), data = train.ts)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.200 -1.289 -0.411 1.191 5.588
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.792e+01 2.410e-01 74.352 < 2e-16 ***
## volume -1.364e-08 2.390e-08 -0.571 0.56883
## L(volume) -6.223e-08 2.390e-08 -2.604 0.00999 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.998 on 182 degrees of freedom
## Multiple R-squared: 0.04768, Adjusted R-squared: 0.03722
## F-statistic: 4.556 on 2 and 182 DF, p-value: 0.01173
summary(cons_lm2)##
## Time series regression with "ts" data:
## Start = 2, End = 186
##
## Call:
## dynlm(formula = open ~ volume + L(open), data = train.ts)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.69966 -0.21183 0.03249 0.24035 0.99452
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.991e-01 2.752e-01 1.087 0.279
## volume -6.112e-09 4.765e-09 -1.283 0.201
## L(open) 9.874e-01 1.547e-02 63.841 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4207 on 182 degrees of freedom
## Multiple R-squared: 0.9578, Adjusted R-squared: 0.9573
## F-statistic: 2064 on 2 and 182 DF, p-value: < 2.2e-16
summary(cons_lm3)##
## Time series regression with "ts" data:
## Start = 2, End = 186
##
## Call:
## dynlm(formula = open ~ volume + L(volume) + L(volume), data = train.ts)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.200 -1.289 -0.411 1.191 5.588
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.792e+01 2.410e-01 74.352 < 2e-16 ***
## volume -1.364e-08 2.390e-08 -0.571 0.56883
## L(volume) -6.223e-08 2.390e-08 -2.604 0.00999 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.998 on 182 degrees of freedom
## Multiple R-squared: 0.04768, Adjusted R-squared: 0.03722
## F-statistic: 4.556 on 2 and 182 DF, p-value: 0.01173
summary(cons_lm4)##
## Time series regression with "ts" data:
## Start = 3, End = 186
##
## Call:
## dynlm(formula = open ~ volume + L(volume) + L(volume, 2), data = train.ts)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.264 -1.275 -0.400 1.181 5.452
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.816e+01 2.618e-01 69.352 <2e-16 ***
## volume -1.271e-08 2.364e-08 -0.538 0.5915
## L(volume) -4.504e-08 2.490e-08 -1.809 0.0721 .
## L(volume, 2) -5.106e-08 2.364e-08 -2.160 0.0321 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.975 on 180 degrees of freedom
## Multiple R-squared: 0.07138, Adjusted R-squared: 0.0559
## F-statistic: 4.612 on 3 and 180 DF, p-value: 0.003907
#SSE
deviance(cons_lm1)## [1] 726.3816
deviance(cons_lm2)## [1] 32.20689
deviance(cons_lm3)## [1] 726.3816
deviance(cons_lm4)## [1] 702.4658
Uji Diagnostik Model
1. Uji Non Autokorelasi
#Uji model
encomptest(cons_lm1, cons_lm2)## Encompassing test
##
## Model 1: open ~ volume + L(volume)
## Model 2: open ~ volume + L(open)
## Model E: open ~ volume + L(volume) + L(open)
## Res.Df Df F Pr(>F)
## M1 vs. ME 181 -1 5278.10 < 2.2e-16 ***
## M2 vs. ME 181 -1 61.05 4.379e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Diagnostik
#durbin watson
dwtest(cons_lm1)##
## Durbin-Watson test
##
## data: cons_lm1
## DW = 0.062132, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
dwtest(cons_lm2)##
## Durbin-Watson test
##
## data: cons_lm2
## DW = 2.2005, p-value = 0.8985
## alternative hypothesis: true autocorrelation is greater than 0
dwtest(cons_lm3)##
## Durbin-Watson test
##
## data: cons_lm3
## DW = 0.062132, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
dwtest(cons_lm4)##
## Durbin-Watson test
##
## data: cons_lm4
## DW = 0.066315, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
2. Uji Heterogenitas
# bptest
bptest(cons_lm1)##
## studentized Breusch-Pagan test
##
## data: cons_lm1
## BP = 4.1907, df = 2, p-value = 0.123
bptest(cons_lm2)##
## studentized Breusch-Pagan test
##
## data: cons_lm2
## BP = 21.251, df = 2, p-value = 2.429e-05
bptest(cons_lm3)##
## studentized Breusch-Pagan test
##
## data: cons_lm3
## BP = 4.1907, df = 2, p-value = 0.123
bptest(cons_lm4)##
## studentized Breusch-Pagan test
##
## data: cons_lm4
## BP = 3.1761, df = 3, p-value = 0.3653
3. Uji normalitas
#shapiro wilk
shapiro.test(residuals(cons_lm1))##
## Shapiro-Wilk normality test
##
## data: residuals(cons_lm1)
## W = 0.97161, p-value = 0.0008092
shapiro.test(residuals(cons_lm2))##
## Shapiro-Wilk normality test
##
## data: residuals(cons_lm2)
## W = 0.91896, p-value = 1.375e-08
shapiro.test(residuals(cons_lm3))##
## Shapiro-Wilk normality test
##
## data: residuals(cons_lm3)
## W = 0.97161, p-value = 0.0008092
shapiro.test(residuals(cons_lm4))##
## Shapiro-Wilk normality test
##
## data: residuals(cons_lm4)
## W = 0.96983, p-value = 0.0005178