# Pemodelan Regresi Linier Berganda dan Aplikasinya pada Data Saham #

setwd("c:/RMFR/latihan")
saham <- read.table("saham.txt",header=TRUE)
price <- lm(price~pe+eps+roi+roe+bv, data=saham)
summary(price)
## 
## Call:
## lm(formula = price ~ pe + eps + roi + roe + bv, data = saham)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -9511.7 -1452.0   245.7  1152.9  7525.9 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -2875.1411  1309.0799  -2.196   0.0372 *  
## pe             -9.1001    11.9562  -0.761   0.4534    
## eps            -3.8971     7.5545  -0.516   0.6103    
## roi           124.3549   214.9633   0.578   0.5679    
## roe            70.6034   207.2762   0.341   0.7361    
## bv              3.8976     0.2566  15.188 1.93e-14 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3353 on 26 degrees of freedom
## Multiple R-squared:  0.9252, Adjusted R-squared:  0.9108 
## F-statistic: 64.32 on 5 and 26 DF,  p-value: 8.336e-14
# Uji asumsi multikolinieritas 
library(car)
vif(price)
##        pe       eps       roi       roe        bv 
##  1.096377  5.776259 36.081309 44.468854  1.106299
# Uji asumsi heteroskedastisitas
library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
bptest(price, studentize=FALSE, data=saham)
## 
##  Breusch-Pagan test
## 
## data:  price
## BP = 43.178, df = 5, p-value = 3.401e-08
# Uji asumsi autokorelasi
library(lmtest)
dwtest(price)
## 
##  Durbin-Watson test
## 
## data:  price
## DW = 2.2541, p-value = 0.7679
## alternative hypothesis: true autocorrelation is greater than 0
bgtest(price, order=6)
## 
##  Breusch-Godfrey test for serial correlation of order up to 6
## 
## data:  price
## LM test = 5.9147, df = 6, p-value = 0.4328
# diagnosa kenormalan error dengan grafik 
par(mfrow=c(2,2))
plot(price,which=c(1:4))

# uji kenormalan error
galat <- resid(price)
shapiro.test(galat) # Uji Shapiro-Wilk
## 
##  Shapiro-Wilk normality test
## 
## data:  galat
## W = 0.92245, p-value = 0.02424
library(tseries)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
jarque.bera.test(galat) # Uji Jarque Bera
## 
##  Jarque Bera Test
## 
## data:  galat
## X-squared = 8.3094, df = 2, p-value = 0.01569
library(nortest)
ad.test(galat) # Uji Anderson-Darling
## 
##  Anderson-Darling normality test
## 
## data:  galat
## A = 0.926, p-value = 0.01638
lillie.test(galat) # Uji Lilliefors/Kolmogorov-Smirnov
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  galat
## D = 0.14364, p-value = 0.09146