Library (Package yang digunakan)

library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✓ ggplot2 3.3.5     ✓ purrr   0.3.4
## ✓ tibble  3.1.6     ✓ dplyr   1.0.8
## ✓ tidyr   1.2.0     ✓ stringr 1.4.0
## ✓ readr   2.1.2     ✓ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(ggplot2)
library(MASS)
## 
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
## 
##     select
library(stargazer)
## 
## Please cite as:
##  Hlavac, Marek (2022). stargazer: Well-Formatted Regression and Summary Statistics Tables.
##  R package version 5.2.3. https://CRAN.R-project.org/package=stargazer
library(foreign)  
library(car)      
## Loading required package: carData
## 
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
## 
##     recode
## The following object is masked from 'package:purrr':
## 
##     some
library(gvlma)   
library(effects) 
## lattice theme set by effectsTheme()
## See ?effectsTheme for details.
library(sjPlot)  
## Registered S3 method overwritten by 'parameters':
##   method                         from      
##   format.parameters_distribution datawizard
## Learn more about sjPlot with 'browseVignettes("sjPlot")'.
library(relaimpo) 
## Loading required package: boot
## 
## Attaching package: 'boot'
## The following object is masked from 'package:car':
## 
##     logit
## Loading required package: survey
## Loading required package: grid
## Loading required package: Matrix
## 
## Attaching package: 'Matrix'
## The following objects are masked from 'package:tidyr':
## 
##     expand, pack, unpack
## Loading required package: survival
## 
## Attaching package: 'survival'
## The following object is masked from 'package:boot':
## 
##     aml
## 
## Attaching package: 'survey'
## The following object is masked from 'package:graphics':
## 
##     dotchart
## Loading required package: mitools
## This is the global version of package relaimpo.
## If you are a non-US user, a version with the interesting additional metric pmvd is available
## from Ulrike Groempings web site at prof.beuth-hochschule.de/groemping.
library(ggplot2)
library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(readxl)
library(kableExtra)
## 
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
## 
##     group_rows
library(agricolae)
library(tseries) 
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library(corrplot)
## corrplot 0.92 loaded

Import Data

library(readxl)
ratio<-read_excel("~/Downloads/ABDA2.xlsx")
## New names:
## * `` -> ...1
head(ratio)
## # A tibble: 6 × 7
##    ...1 Price    ROA    ROE   DER   PER    CR
##   <dbl> <dbl>  <dbl>  <dbl> <dbl> <dbl> <dbl>
## 1  2017  6900 0.0149 0.0329  1.21 100.   1.83
## 2     2  6800 0.0186 0.0420  1.26  77.9  1.79
## 3     3  6900 0.0115 0.0251  1.18 128.   1.85
## 4     4  7250 0.0102 0.0220  1.16 148.   1.86
## 5  2018  7500 0.0144 0.0301  1.10 108.   1.91
## 6     2  7600 0.0195 0.0400  1.05  82.3  1.95

Independen & Dependen Variabel

y=ratio$Price #dependen
x1= ratio$ROA #independen
x2= ratio$ROE #independen
x3= ratio$DER #independen
x4= ratio$PER #independen
x5= ratio$CR #independen

Visualisasi Data

Hubungan ROA dengan Harga Closing Saham

scat1=ggplot(ratio,aes(x1,y))+geom_point()+geom_smooth(method="lm",se=T)

scat1
## `geom_smooth()` using formula 'y ~ x'

Berdasarkan pola diatas dimana titik-titik berada di sekitar suatu garis lurus, diduga variabel ROA memiliki hubungan dengan Variabel Harga Closing Saham.

Hubungan ROE dengan Harga Closing Saham

scat2=ggplot(ratio,aes(x2,y))+geom_point()+geom_smooth(method="lm",se=T)

scat2
## `geom_smooth()` using formula 'y ~ x'

Berdasarkan pola diatas dimana titik-titik berada di sekitar suatu garis lurus, diduga variabel ROE memiliki hubungan dengan Variabel Harga Closing Saham.

Hubungan DER dengan Harga Closing Saham

scat3=ggplot(ratio,aes(x3,y))+geom_point()+geom_smooth(method="lm",se=T)

scat3
## `geom_smooth()` using formula 'y ~ x'

Berdasarkan pola diatas dimana titik-titik berada di sekitar suatu garis lurus, diduga variabel DER memiliki hubungan dengan Variabel Harga Closing Saham.

Hubungan PER dengan Harga Closing Saham

scat4=ggplot(ratio,aes(x4,y))+geom_point()+geom_smooth(method="lm",se=T)

scat4
## `geom_smooth()` using formula 'y ~ x'

Berdasarkan pola diatas dimana titik-titik berada di sekitar suatu garis lurus, diduga variabel PER memiliki hubungan dengan Variabel Harga Closing Saham.

Hubungan CR dengan Harga Closing Saham

scat5=ggplot(ratio,aes(x5,y))+geom_point()+geom_smooth(method="lm",se=T)

scat5
## `geom_smooth()` using formula 'y ~ x'

Berdasarkan pola diatas dimana titik-titik berada di sekitar suatu garis lurus, diduga variabel CR memiliki hubungan dengan Variabel Harga Closing Saham.

Model Linier

Pemodelan regresi linier berganda akan dilakukan dengan membuat model yang mencakup keseluruhan variabel independent (ROA, ROE, DER, PER, dan CR).

model <- lm(y ~ x1 + x2 + x3 + x4 + x5, data = ratio)
summary(model)
## 
## Call:
## lm(formula = y ~ x1 + x2 + x3 + x4 + x5, data = ratio)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1166.0  -117.8   107.3   196.5   668.5 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)
## (Intercept)   50001.43   40783.36   1.226    0.248
## x1           725376.27  661731.66   1.096    0.299
## x2          -336754.37  309548.66  -1.088    0.302
## x3            -8265.60   11925.48  -0.693    0.504
## x4                1.68       2.61   0.644    0.534
## x5           -18033.86   14895.69  -1.211    0.254
## 
## Residual standard error: 619.1 on 10 degrees of freedom
## Multiple R-squared:  0.3799, Adjusted R-squared:  0.06983 
## F-statistic: 1.225 on 5 and 10 DF,  p-value: 0.3656

Pengecekan Model

Dalam membangun model regresi linier, metode estimasi yang digunakan adalah dengan metode estimasi kuadrat terkecil (ordinary least square), yaitu dengan meminimumkan jumlah kuadrat residual.

Terdapat asumsi yang harus diuji dalam membangun model regresi linier tersebut. Asumsi model tersebut sering juga disebut sebagai asumsi klasik yang terdiri atas:

1. Uji Normalitas Residual

2. Uji Linearitas

3. Uji Homoskedastisitas (Asumsi Model yang Bersifat Konstan)

4. Uji Autokorelasi (Uji Asumsi Tidak Adanya Korelasi dalam Model)

5. Uji Multikolinieritas antar Variabel Independen

Uji Normalitas

Uji normalitas akan diuji dengan Kolmogorov-Smirnov Test, Shapiro Wilk Test, dan Jarque Bera

Uji Kolmogorov-Smirnov

ks.test(model$residuals, ecdf(model$residuals))
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  model$residuals
## D = 0.0625, p-value = 1
## alternative hypothesis: two-sided

H0: model data berdistribusi normal; H1: model data tidak berdistribusi normal

Tingkat signifikansi = 0.05

Statistik Uji: p-value = 1

Keputusan: Karena p-value (1) > alpha (0.05), maka gagal tolak H0

Kesimpulan: Model data berdistribusi normal.

Uji Shapiro Test

shapiro.test(residuals(model))
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(model)
## W = 0.84327, p-value = 0.01086

H0: Residual berdistribusi normal; H1: Residual tidak berdistribusi normal

Tingkat signifikansi = 0.05

Statistik Uji: p-value = 0.01086

Keputusan: Karena p-value (0.01086) < alpha (0.05), maka tolak H0

Kesimpulan: Residual tidak berdistribusi normal.

Uji Jarque Bera

# analisis residual
residual=resid(model) #menampilkan residual dari model

jarque.bera.test(residual) #normalitas
## 
##  Jarque Bera Test
## 
## data:  residual
## X-squared = 4.1997, df = 2, p-value = 0.1225

H0: Residual berdistribusi normal; H1: Residual tidak berdistribusi normal

Tingkat signifikansi = 0.05

Statistik Uji: p-value = 0.1225

Keputusan: Karena p-value (0.1225) > alpha (0.05), maka gagal tolak H0

Kesimpulan: Residual berdistribusi normal.

QQ Plot

qqPlot(residual,distribution="norm",main="Normal QQ Plot") #normalitas dengan plot

## [1] 13  9

qqplot menunjukkan residual ada di sepanjang garis 45 derajat, sehingga mengindikasikan bahwa residual menyebar normal.

Dilihat dari Uji Kolmogorov-Smirnov, Jarque Bera, dan qqplot, maka dapat disimpulkan bahwa model yang dibuat memenuhi asumsi kenormalan. Namun pada Uji Shapiro Wilk didapatkan hasil bahwa residual tidak berdistribusi normal.

Uji Linearitas

Asumsi linieritas dapat diperiksa menggunakan Normal QQ Plot

qqPlot(residual,distribution="norm",main="Normal QQ Plot") #normalitas dengan plot

## [1] 13  9

qqplot menunjukkan residual ada di sepanjang garis 45 derajat, sehingga mengindikasikan bahwa residual menyebar normal, artinya model tersebut sudah linearitas dalam parameter.

# Ho : The model is correct linearly specified

linearity <- resettest(model, power = 2, type = "fitted", 
                          data = ratio)

linearity
## 
##  RESET test
## 
## data:  model
## RESET = 0.49781, df1 = 1, df2 = 9, p-value = 0.4983

H0: model data linier; H1: model data tidak linier

Tingkat signifikansi = 0.05

Statistik Uji: p-value = 0.4983

Keputusan: Karena p-value (0.4983) > alpha (0.05), maka gagal tolak H0

Kesimpulan: Model data linier.

Kehomogenan Ragam (Homoskedastisitas)

Untuk menguji homoskedastisitas akan digunakan uji Breusch Pagan

bptest(model, data=ratio)
## 
##  studentized Breusch-Pagan test
## 
## data:  model
## BP = 6.2581, df = 5, p-value = 0.2819

H0: Ragam homogen; H1: Ragam tidak homogen

Tingkat signifikansi = 0.05

Statistik Uji: p-value = 0.2819

Keputusan: Karena p-value (0.2819) > alpha (0.05), maka gagal tolak H0

Kesimpulan: Model menunjukkan ragam homogen dan asumsi homoskedastisitas terpenuhi.

Uji Autokorelasi

Uji autokorelasi akan diuji dengan uji Durbin Watson

dwtest(model)
## 
##  Durbin-Watson test
## 
## data:  model
## DW = 1.8409, p-value = 0.1676
## alternative hypothesis: true autocorrelation is greater than 0

H0: Tidak ada autokorelasi pada model; H1: ada autokorelasi pada model

Tingkat signifikansi = 0.05

Statistik Uji: p-value = 0.1676

Keputusan: Karena p-value (0.1676) > alpha (0.05), maka gagal tolak H0

Kesimpulan: Tidak ada autokorelasi pada model.

Uji Multikolinearitas

Kolinieritas akan diuji dengan VIF (Variance Inflation Factor). Jika, nilai VIF > 10, maka terjadi multikolinieritas.

vif(model)
##          x1          x2          x3          x4          x5 
## 1310.824708 1224.842433   72.515462    2.200826  111.718274

Ketiga variabel (ROA, ROE, DER, CR) memiliki nilai VIF > 10 dan nilainya cukup besar sehingga mengindikasikan bahwa ada multikolinieritas.

Kesimpulan model berdasarkan beberapa uji yang dilakukan:

1. Memenuhi asumsi kenormalan (normalitas residual), namun belum memenuhi Uji Shapiro Wilk

2. Model sudah linearitas dalam parameter

3. Model menunjukkan ragam homogen dan asumsi homoskedastisitas terpenuhi

4. Tidak ada autokorelasi

5. Ada multikolinieritas

Matriks Korelasi

Uji multikolinieritas dengan VIF > 10 menunjukkan adanya multikolinieritas. Maka akan diuji variabel mana yang berkorelasi dengan menggunakan matrik korelasi.

Perhitungan Matriks Korelasi

fundamental <- ratio[c(2,3,4,5,6,7)]

mk <- cor(fundamental)

round(mk,2) #Membulatkan 2 angka di belakang koma
##       Price   ROA   ROE   DER   PER    CR
## Price  1.00 -0.15 -0.09  0.50  0.07 -0.53
## ROA   -0.15  1.00  0.99 -0.27  0.15  0.33
## ROE   -0.09  0.99  1.00 -0.17  0.17  0.22
## DER    0.50 -0.27 -0.17  1.00 -0.15 -0.99
## PER    0.07  0.15  0.17 -0.15  1.00  0.07
## CR    -0.53  0.33  0.22 -0.99  0.07  1.00

Visualisasi Matriks Korelasi

corrplot(mk, type="lower",
         order = "hclust", # mengurutkan berdasarkan hierarchical clustering
         tl.col= "black", # warna tulisan
         addCoef.col = "black", # tambahkan koefisien korelasi
         diag=FALSE, #menyembunyikan koefisien pada diagonal
         tl.srt= 45, # kemiringan tulisan 45 derajat
         method = "circle") # Bentuk Visualisasi

Terlihat dalam matriks korelasi bahwa terdapat korelasi yang tinggi antara ROA dan ROE sebesar 0.99 yang menyebabkan adanya kolinieritas.

Solusi

Untuk mengatasi masalah multikolinieritas dan autokorelasi dalam model maka perlu dibuat model yang baru yang tidak mengandung variabel yang berkorelasi tinggi.

Cara yang dilakukan yaitu dengan mengeluarkan variabel yang memiliki p-value terbesar serta tidak signifikan. Begitu seterusnya hingga semua variabel telah signifikan.

Model yang kita punya sebelumnya:

Model 1 - Model Awal (ROA, ROE, DER, PER, CR)

model <- lm(y ~ x1 + x2 + x3 + x4 + x5, data = ratio)
summary(model)
## 
## Call:
## lm(formula = y ~ x1 + x2 + x3 + x4 + x5, data = ratio)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1166.0  -117.8   107.3   196.5   668.5 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)
## (Intercept)   50001.43   40783.36   1.226    0.248
## x1           725376.27  661731.66   1.096    0.299
## x2          -336754.37  309548.66  -1.088    0.302
## x3            -8265.60   11925.48  -0.693    0.504
## x4                1.68       2.61   0.644    0.534
## x5           -18033.86   14895.69  -1.211    0.254
## 
## Residual standard error: 619.1 on 10 degrees of freedom
## Multiple R-squared:  0.3799, Adjusted R-squared:  0.06983 
## F-statistic: 1.225 on 5 and 10 DF,  p-value: 0.3656
vif(model)
##          x1          x2          x3          x4          x5 
## 1310.824708 1224.842433   72.515462    2.200826  111.718274

Jika dilihat dari summary model 1, p-value terbesar adalah variabel x4 (PER) yaitu 0.534 sehingga akan dikeluarkan dari model dan dibuat Model ke-2 dengan 4 variabel yaitu ROA, ROE, DER, dan CR.

Model 2 - ROA, ROE, DER, CR

model2 <- lm(y ~ x1 + x2 + x3 + x5, data = ratio)
summary(model2)
## 
## Call:
## lm(formula = y ~ x1 + x2 + x3 + x5, data = ratio)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1253.26   -69.24    63.91   308.63   554.55 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)    54532      39088   1.395    0.191
## x1            505709     551709   0.917    0.379
## x2           -231696     255957  -0.905    0.385
## x3            -10990      10849  -1.013    0.333
## x5            -18717      14457  -1.295    0.222
## 
## Residual standard error: 602.4 on 11 degrees of freedom
## Multiple R-squared:  0.3542, Adjusted R-squared:  0.1193 
## F-statistic: 1.508 on 4 and 11 DF,  p-value: 0.2662
vif(model2)
##        x1        x2        x3        x5 
## 962.39384 884.52180  63.38461 111.15115

Jika dilihat dari summary model 2, p-value terbesar adalah variabel x2 (ROE) yaitu 0.385 sehingga akan dikeluarkan dari model dan dibuat Model ke-3 dengan 3 variabel yaitu ROA, DER, dan CR.

Model 3 - ROA, DER, CR

model3 <- lm(y ~ x1 + x3 + x5, data = ratio)
summary(model3)
## 
## Call:
## lm(formula = y ~ x1 + x3 + x5, data = ratio)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1191.9  -114.6   153.3   248.6   801.3 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)    29345      27245   1.077    0.303
## x1              6629      20040   0.331    0.747
## x3             -5506       8931  -0.616    0.549
## x5             -8650       9167  -0.944    0.364
## 
## Residual standard error: 597.9 on 12 degrees of freedom
## Multiple R-squared:  0.3061, Adjusted R-squared:  0.1326 
## F-statistic: 1.764 on 3 and 12 DF,  p-value: 0.2074
vif(model3)
##        x1        x3        x5 
##  1.289248 43.616434 45.374178

Jika dilihat dari summary model 3, p-value terbesar adalah variabel x1 (ROA) yaitu 0.747 sehingga akan dikeluarkan dari model dan dibuat Model ke-4 dengan 2 variabel yaitu DER dan CR.

Model 4 - DER dan CR

model4 <- lm(y ~ x3 + x5, data = ratio)
summary(model4)
## 
## Call:
## lm(formula = y ~ x3 + x5, data = ratio)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1169.38   -82.97    84.06   235.34   875.11 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)    25916      24317   1.066    0.306
## x3             -4451       8052  -0.553    0.590
## x5             -7432       8103  -0.917    0.376
## 
## Residual standard error: 577 on 13 degrees of freedom
## Multiple R-squared:  0.2997, Adjusted R-squared:  0.192 
## F-statistic: 2.782 on 2 and 13 DF,  p-value: 0.09867
vif(model4)
##      x3      x5 
## 38.0566 38.0566

Jika dilihat dari summary model 4, p-value terbesar adalah variabel x3 (DER) yaitu 0.590 sehingga akan dikeluarkan dari model dan dibuat Model ke-5 dengan 1 variabel yaitu CR.

Model 5 - CR

model5 <- lm(y ~ x5, data = ratio)
summary(model5)
## 
## Call:
## lm(formula = y ~ x5, data = ratio)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1106.7  -188.3    67.1   296.1   941.6 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    12546       2485   5.049 0.000178 ***
## x5             -3012       1280  -2.352 0.033814 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 562.5 on 14 degrees of freedom
## Multiple R-squared:  0.2833, Adjusted R-squared:  0.2321 
## F-statistic: 5.533 on 1 and 14 DF,  p-value: 0.03381

Karena p-value variabel pada model5 sudah < 0.05, maka dilanjutkan dengan memilih model yang terbaik dengan melihat beberapa kriterianya.

Kriteria yang digunakan adalah melihat nilai AIC terkecil.

Metode AIC

Metode AIC adalah metode yang dapat digunakan untuk memilih model regresi terbaik yang didasarkan pada metode maximum likelihood estimation (MLE). Menurut metode AIC, model regresi terbaik adalah model regresi yang mempunyai nilai AIC terkecil.

# kriteria pemilihan model
AIC=c(AIC(model),AIC(model2),AIC(model3),AIC(model4),AIC(model5))
BIC=c(BIC(model),BIC(model2),BIC(model3),BIC(model4),BIC(model5))
AdjustedRsquared=c(summary(model)[[9]],summary(model2)[[9]],
                   summary(model3)[[9]],summary(model4)[[9]],summary(model5)[[9]])
ResidualStandardError=c(summary(model)[[6]],summary(model2)[[6]],
                        summary(model3)[[6]],summary(model4)[[6]],summary(model5)[[6]])
Model=c("model1","model2","model3","model4","model5")

Kriteria=data.frame(Model,AdjustedRsquared,
                    ResidualStandardError,AIC,BIC)
Kriteria
##    Model AdjustedRsquared ResidualStandardError      AIC      BIC
## 1 model1       0.06982571              619.1178 257.5914 262.9996
## 2 model2       0.11933064              602.4175 256.2414 260.8769
## 3 model3       0.13258383              597.8675 255.3909 259.2539
## 4 model4       0.19200833              577.0250 253.5361 256.6265
## 5 model5       0.23208385              562.5331 251.9079 254.2257

AIC terkecil adalah 251.9079 yaitu model 5.

Pengecekan Asumsi Model Baru

par(mfrow=c(2,2))
plot(model5)

par(mfrow=c(1,1))

Uji Normalitas

Uji normalitas akan diuji dengan Kolmogorov-Smirnov Test, Shapiro Wilk Test, dan Jarque Bera

Uji Kolmogorov-Smirnov

ks.test(model5$residuals, ecdf(model5$residuals))
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  model5$residuals
## D = 0.0625, p-value = 1
## alternative hypothesis: two-sided

H0: model data berdistribusi normal; H1: model data tidak berdistribusi normal

Tingkat signifikansi = 0.05

Statistik Uji: p-value = 1

Keputusan: Karena p-value (1) > alpha (0.05), maka gagal tolak H0

Kesimpulan: Model data berdistribusi normal.

Uji Shapiro Test

shapiro.test(residuals(model5))
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(model5)
## W = 0.94326, p-value = 0.3909

H0: Residual berdistribusi normal; H1: Residual tidak berdistribusi normal

Tingkat signifikansi = 0.05

Statistik Uji: p-value = 0.3909

Keputusan: Karena p-value (0.3909) > alpha (0.05), maka gagal tolak H0

Kesimpulan: Residual berdistribusi normal.

Uji Jarque Bera

# analisis residual
residual1=resid(model5) #menampilkan residual dari model

jarque.bera.test(residual1) #normalitas
## 
##  Jarque Bera Test
## 
## data:  residual1
## X-squared = 0.73276, df = 2, p-value = 0.6932

H0: Residual berdistribusi normal; H1: Residual tidak berdistribusi normal

Tingkat signifikansi = 0.05

Statistik Uji: p-value = 0.6932

Keputusan: Karena p-value (0.6932) > alpha (0.05), maka gagal tolak H0

Kesimpulan: Residual berdistribusi normal.

QQ Plot

qqPlot(residual1,distribution="norm",main="Normal QQ Plot") #normalitas dengan plot

## [1] 13  9

qqplot menunjukkan residual ada di sepanjang garis 45 derajat, sehingga mengindikasikan bahwa residual menyebar normal.

Dilihat dari Uji Kolmogorov-Smirnov, Jarque Bera, dan qqplot, maka dapat disimpulkan bahwa model yang dibuat memenuhi asumsi kenormalan.

Uji Linearitas

Asumsi linieritas dapat diperiksa menggunakan Normal QQ Plot

qqPlot(residual1,distribution="norm",main="Normal QQ Plot") #normalitas dengan plot

## [1] 13  9

qqplot menunjukkan residual ada di sepanjang garis 45 derajat, sehingga mengindikasikan bahwa residual menyebar normal, artinya model tersebut sudah linearitas dalam parameter.

Kehomogenan Ragam (Homoskedastisitas)

Untuk menguji homoskedastisitas akan digunakan uji Breusch Pagan

bptest(model5, data=ratio)
## 
##  studentized Breusch-Pagan test
## 
## data:  model5
## BP = 0.00010966, df = 1, p-value = 0.9916

H0: Ragam homogen; H1: Ragam tidak homogen

Tingkat signifikansi = 0.05

Statistik Uji: p-value = 0.9916

Keputusan: Karena p-value (0.9916) > alpha (0.05), maka gagal tolak H0

Kesimpulan: Model menunjukkan ragam homogen dan asumsi homoskedastisitas terpenuhi.

Uji Autokorelasi

Uji autokorelasi akan diuji dengan uji Durbin Watson

dwtest(model5)
## 
##  Durbin-Watson test
## 
## data:  model5
## DW = 1.4364, p-value = 0.07588
## alternative hypothesis: true autocorrelation is greater than 0

H0: Tidak ada autokorelasi pada model; H1: ada autokorelasi pada model

Tingkat signifikansi = 0.05

Statistik Uji: p-value = 0.07588

Keputusan: Karena p-value (0.07588) > alpha (0.05), maka gagal tolak H0

Kesimpulan: Tidak ada autokorelasi pada model.

Uji-uji asumsi menunjukkan bahwa solusi menghilangkan variabel ROA, ROE, DER, dan PER pada model cukup berhasil untuk menghasilkan model yang baik.

Kesimpulan model baru berdasarkan beberapa uji yang dilakukan:

1. Memenuhi asumsi kenormalan (normalitas residual)

2. Model sudah linearitas dalam parameter

3. Model menunjukkan ragam homogen dan asumsi homoskedastisitas terpenuhi

4. Tidak ada autokorelasi

5. Tidak ada multikolinieritas

Persamaan Regresi

model5 <- lm(y ~ x5, data = ratio)
summary(model5)
## 
## Call:
## lm(formula = y ~ x5, data = ratio)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1106.7  -188.3    67.1   296.1   941.6 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    12546       2485   5.049 0.000178 ***
## x5             -3012       1280  -2.352 0.033814 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 562.5 on 14 degrees of freedom
## Multiple R-squared:  0.2833, Adjusted R-squared:  0.2321 
## F-statistic: 5.533 on 1 and 14 DF,  p-value: 0.03381

Persamaan Regresi

Persamaan Regresi = 12546 - 3012 CR

Interpretasi: Setiap penurunan satu satuan Current Ratio menyebabkan Harga Closing ABDA turun sebesar 3012 dengan mengganggap variabel lain konstan.

Multiple R-squared = 0.2833 yang artinya Harga Closing Saham ABDA dapat dijelaskan oleh Current Ratio sebesar 28.33% sedangkan 71.67% dijelaskan oleh faktor lain diluar model.