Regresi Beserta Asumsinya di R

Muhammad Khoirul Nizam

28-05-2024


Notes Theme: - Kelas A: cayman
- Kelas B: tactile
- Kelas C: architect
- Kelas D: hpstr

Library:

> # install.packages("knitr")
> # install.packages("rmarkdown")
> # install.packages("prettydoc")
> # install.packages("equatiomatic")
> # install.packages("tseries")
> # install.packages("lmtest")
> # install.packages("car")

1 PENDAHULUAN

1.1 Latar Belakang

Regresi linear adalah salah satu teknik analisis statistik yang paling umum digunakan untuk memahami hubungan antara satu atau lebih variabel independen dan variabel dependen. Tujuan utamanya adalah untuk memodelkan hubungan antara variabel independen dan dependen sehingga dapat digunakan untuk prediksi nilai dependen berdasarkan nilai-nilai independen yang diketahui.

Namun, untuk mendapatkan hasil yang valid dan dapat diandalkan dari analisis regresi linear, perlu dipastikan bahwa asumsi-asumsi dasar dari metode tersebut terpenuhi. Asumsi-asumsi tersebut termasuk asumsi linearitas (hubungan antara variabel independen dan dependen adalah linear), asumsi independensi (pengamatan dalam dataset saling independen), asumsi homoskedastisitas (varians dari kesalahan prediksi konstan), dan asumsi normalitas residual (residual terdistribusi secara normal), dan lainnya.

Dalam mini project ini, akan digunakan software R-Studio untuk menerapkan analisis regresi linear pada dataset yang relevan. Selain itu, kami juga akan memeriksa apakah asumsi-asumsi dasar dari regresi linear terpenuhi dalam dataset yang digunakan. Langkah-langkah ini akan membantu dalam pemahaman lebih lanjut tentang hubungan antara variabel independen dan dependen, serta kecocokan model yang dibuat.

2 TINJAUAN PUSTAKA

2.1 Regresi Linear

Analisi Regresi menyelidiki dan memodelkan hubungan antar variabel. Hubungan linier diasumsikan antara variabel dependen atau respon (Y) dan satu atau beberapa variabel independen, prediktor, regressor (X). Regresi linear dibagi menjadi regresi linear sederhana dan regresi linear berganda. Pada kasus ini, akan digunakan regresi linear berganda yakni regresi linear yang lebih dari satu variabel prediktor. Model dari regresi linear berganda dengan parameter \(\beta\) adalah sebagai berikut.

\[ Y=\beta_{0}+\beta_{1}X_{1}+\beta_{2}X_{2}+...+\beta_{p}X_{p} \]

Sama halnya seperti regresi linear sederhana, untuk menganalisis jika prediktor individu memiliki pengaruh pada respon Y dilakukan pengujian parameter apakah berbeda dari nol atau tidak.

2.2 Pendugaan Parameter Regresi

Parameter dalam regresi adalah \(\beta\). Untuk mencari nilai \(\beta\) dalam regresi linear berganda menggunakan rumus berikut.

\[ \beta=\left( X^{t}X \right)^{-1}\left( X^{t}Y \right) \]

dengan \(X\) adalah matriks dari variabel prediktor dan \(Y\) adalah matriks dari variabel respon.

2.3 Uji Signifikansi Simultan

Pengujian ini dilakukan sebagai upaya untuk memeriksa pengaruh koefisien regresi peubah prediktor secara bersaman. Pengujian secara simultan menggunakan uji F dengan penjelasan sebagai berikut.

Hipotesis

\(H_{0}:\beta_{1}=\beta_{2}=0\)

\(H_{1}: \text{Minimal terdapat salah satu }\beta_{i}\neq 0,\text{di mana }i=1,2\)

Statistik Uji

\[ JKR=\beta^{t}(X^{t}Y)-n\bar{Y}^{2} \]

\[ JKT=Y^{t}Y-n\bar{Y}^{2} \]

\[ JKG=JKT-JKR \]

Lebih lengkapnya dapat dilihat pada tabel dibawah ini

SK DB JK KT Fhitung
Regresi k-1 JKR JKR/(k-1) KTR/KTG
Galat n-k JKG JKG/(n-k)
Total n-1 JKT

Keputusan Apabila \(Fhitung>Ftabel\) tolak \(H_{0}\), dan sebaliknya apabila \(Fhitung<Ftabel\) terima \(H_{0}\).

2.4 Uji Signifikansi Parsial

Pengujian parameter yang digunakan adalah uji t. Pengujian ini dilakukan untuk melihat apakah masing-masing variabel prediktor memberikan pengaruh secara signifikan kepada variabel respon atau tidak. Penjelasannya sebagai berikut.

Hipotesis

\[ H_{0}:\beta_{i}=0 (\text{Tidak ada pengaruh dari variabel prediktor ke-i pada variabel respon}) \]

\[ H_{1}:\beta_{i}\neq 0 (\text{Terdapat pengaruh dari variabel prediktor ke-i pada variabel respon}) \]

Statistik Uji

\[ t_{hitung}=\frac{\hat{\beta_{i}}-\beta_{0}}{\sqrt{KTG*(X^{t}X)^{-1}_{[i.i]}}} \]

Keputusan Apabila \(thitung>ttabel\) maka tolak \(H_{0}\), dan sebaliknya apabila \(thitung<ttabel\) terima \(H_{0}\).

2.5 Koefisien Determinasi

Uji Koefisien Determinasi (R-Square) digunakan untuk melihat seberapa besar kontribusi variabel prediktor terhadap variabel responnya. Rumusnya adalah sebagai berikut.

\[ R^{2}=\frac{JKR}{JKT} \]

2.6 Asumsi Normalitas

Uji Saphiro Wilk digunakan untuk menguji apakah galat dari model regresi yang terbentuk berdistribusi normal atau tidak. Uji ini lebih tepat digunakan untuk sampel kecil, kurang dari 50 sampel. Apabila menggunakan R syntax-nya sebagai berikut.

> # library(tseries)
> # model = lm(Y ~ X1 + X2)
> # sisaan = residuals (model)
> # shapiro.test(sisaan)

2.7 Asumsi Homoskedastisitas

Homoskedastisitas digunakan untuk melihat adanya kesamaan ragam dari residual antar pengamatan. Uji yang dapat digunakan adalah uji Breusch Pagan. Apabila menggunakan R syntax-nya sebagai berikut.

> # library(lmtest)
> # model = lm(Y ~ X1 + X2)
> # bptest(model)

2.8 Asumsi Nonautokorelasi

Nonautokorelasi digunakan untuk melihat apakah terdapat hubungan di antara periode satu ke periode sebelumnya. Karena analisis regresi ingin melihat adanya hubungan antara variabel prediktor dan variabel respon. Uji yang digunakan adalah uji Durbin-Watson. Apabila menggunakan R syntax-nya sebagai berikut.

> # library(lmtest)
> # model = lm(Y ~ X1 + X2)
> # dwtest(model)

2.9 Asumsi Nonmultikolinearitas

Nonmultikolinearitas digunakan untuk melihat adanya hubungan di antara variabel-variabel bebas dalam regresi berganda. Alat statistik yang sering digunakan untuk mendeteksi adanya multikolinearitas adalah Variance Inflation Factor (VIF).

\[ VIF_{j}=\frac{1}{1-R_{j}^{2}} \]

Multikolinearitas antar variabel prediktor terjadi apabila keeratan hubungan antar variabel sangat besar. Asumsi nonmultikolinearitas terpenuhi jika nilai VIF < 10. Apabila menggunakan R, syntax-nya adalah sebagai berikut.

> # library(car)
> # model = lm(Y ~ X1 + X2)
> # vif(model)

3 SOURCE CODE

3.1 Library

Berikut ini adalah beberapa packages yang digunakan dalam analisis regresi linear berganda.

> # install.packages("tseries")
> # install.packages("lmtest")
> # install.packages("car")
> 
> # Library
> library(tseries)
> library(lmtest)
> library(car)

3.2 Data

> # Import File Dari CSV
> Dataku=read.csv("C:/Users/user/Downloads/Komstat_Data.csv",header=TRUE)
> Dataku
   No  X1  X2  Y
1   1 110  60 65
2   2 120  70 70
3   3 115  75 75
4   4 130  80 75
5   5 110  80 80
6   6 120  90 80
7   7 120  95 85
8   8 125  95 95
9   9 110 100 90
10 10 120 100 98
> # Input Data Manual
> Nilai_UAS=c(65,70,75,75,80,80,85,95,90,98)
> IQ=c(110,120,115,130,110,120,120,125,110,120)
> Kehadiran=c(60,70,75,80,80,90,95,95,100,100)
> Data=data.frame(Nilai_UAS,IQ,Kehadiran);Data
   Nilai_UAS  IQ Kehadiran
1         65 110        60
2         70 120        70
3         75 115        75
4         75 130        80
5         80 110        80
6         80 120        90
7         85 120        95
8         95 125        95
9         90 110       100
10        98 120       100

Dalam syntax di atas, pendefinisian data dapat menggunakan 2 cara yakni import file cs menggunakan syntax read.csv() maupun input secara manual menggunakan data frame.

3.3 Pendugaan Parameter Regresi

> ## Pembentukan Matriks
> # Y=as.matrix(Data$Nilai_UAS,ncol=1);Y
> # MatX=data.frame(rep(1,times=10),Data$IQ,Data$Kehadiran);MatX
> # X=as.matrix(MatX);X
> # XtX=t(X)%*%X;XtX
> # XtY=t(X)%*%Y;XtY
> # n=dim(Y)[1];n
> ## Perhitungan nilai Beta
> # beta=(solve(XtX))%*%(XtY);beta
> ## Function Regresi Linear menggunakan syntax R
> # model=lm(Nilai_UAS~IQ+Kehadiran);model
> 

Variabel respon Y didefinisikan sebagai matriks dengan syntax as.matrix(), sementara variabel prediktor X didefinisikan sebagai matriks dengan tambahan syntax rep(1,times=10) sebagai intercept. Selain itu, syntax di atas menampilkan banyak operasi matriks seperti %*% untuk perkalian matriks, “t()” untuk transpose matriks, dan “solve()” untuk invers matriks. Adapula function di R yang digunakan untuk analisis regresi linear sederhana maupun berganda yakni pada syntax “lm()”.

3.4 Uji Simultan (F)

> ## Uji Simultan (F)
> # Yduga=X%*%beta;Yduga
> # Uduga=Y-Yduga;Uduga
> # Ybar=rep(mean(Y),n);Ybar
> ## Jumlah Kuadrat
> # JKT=t(Y-Ybar)%*%(Y-Ybar);JKT
> # JKR=t(Yduga-Ybar)%*%(Yduga-Ybar);JKR
> # JKG=JKT-JKR;JKG
> # JK=c(JKR,JKG,JKT);JK
> ## Derajat Bebas
> # dbR=2
> # dbT=n-1;dbT
> # dbG=dbT-dbR;dbG
> # db=c(dbR,dbG,dbT);db
> ## Kuadrat Tengah
> # KTR=JKR/dbR;KTR
> # KTG=JKG/dbG;KTG
> # KT=c(KTR,KTG,"NA");KT
> ## Menghitung uji F
> # Fhit=KTR/KTG;Fhit
> # Fhitung=c(Fhit,"NA","NA")
> ## Menghitung P-value
> # Pval=pf(Fhit,2,7,lower.tail=FALSE);Pval
> # Pvalue=c(Pval,"NA","NA")
> ## Membentuk Tabel Anova
> # SK=c("Regresi","Galat","Total")
> # Anova=data.frame(SK,JK,db,KT,Fhitung,Pvalue)
> # Anova
> ## Function Uji Simultan menggunakan syntax R
> # model=lm(Nilai_UAS~IQ+Kehadiran);model
> # summary(model)

Pengujian dilakukan secara manual menggunakan R dengan menghitung setiap sub-bagian dari tabel anova dan membentuknya kembali menggunakan data frame dengan syntax data.frame()

3.5 Uji Parsial (t)

> ## Uji Parsial (t)
> # k=3;sd=rep(0,k)
> # for(i in 1:k){sd[i]=sqrt(KTG*(solve(t(X)%*%X))[i,i])};sd
> # thit=beta/sd;thit
> # pvalue_t=2*pt(abs(thit),dbG,lower.tail=FALSE);pvalue_t
> ## Function Uji Parsial menggunakan syntax R
> # model=lm(Nilai_UAS~IQ+Kehadiran);model
> # summary(model)

Dalam pengujian ini, nilai k yang digunakan adalah 3. Untuk memudahkan perhitungan maka akan digunakan looping dengan syntax for (i in 1:k) dengan rumus sesuai dengan tinjauan pustaka pada bab sebelumnya. Dan untuk mencari p-value sendiri menggunakan function pt() yang berarti menghitung fungsi kumulatif dari sebaran t.

3.6 Koefisien Determinasi

> ## Uji Koefisien Determinasi
> # Rsquare=JKR/JKT;Rsquare
> ## Function Uji Koefisien Determinasi menggunakan syntax R
> # model=lm(Nilai_UAS~IQ+Kehadiran);model
> # summary(model)

Menggunakan syntax lm() untuk mencari tahu apakah nilai R-Square yang dihitung sama atau berbeda dengan perhitungan manual.

3.7 Uji Asumsi

> ## Asumsi Normalitas
> # sisa=residuals(Model)
> # shapiro.test(sisa)
> ## Asumsi Homoskedastisitas
> # bptest(Model)
> ## Asumsi Nonautokorelasi
> # dwtest(Model)
> ## Asumsi Nonmultikolinearitas
> # vif(Model)

Uji-uji di atas dapat dilakukan apabila telah membuka semua packages yang ada di library.

4 HASIL DAN PEMBAHASAN

4.1 Pendugaan Parameter Regresi Linear

Dari data yang telah diinputkan, akan dibentuk matriks sebagai berikut.

\[ Y=\left[ \begin{matrix} 65\\ 70\\ 75\\ 80\\ 80\\ 85\\ 95\\ 90\\ 98\\ \end{matrix} \right] \]

\[ X=\left[ \begin{matrix} 1 &110 &60 \\ 1 &120 &70 \\ 1 &115 &75 \\ 1 &130 &75 \\ 1 &110 &80 \\ 1 &120 &80 \\ 1 &120 &85 \\ 1 &125 &95 \\ 1 &110 &90 \\ 1 &120 &98 \end{matrix} \right] \]

Apabila menggunakan R-Studio pembentukan matriksnya yakni sebagai berikut.

> # Pembentukan Matriks
> Y=as.matrix(Data$Nilai_UAS,ncol=1);Y
      [,1]
 [1,]   65
 [2,]   70
 [3,]   75
 [4,]   75
 [5,]   80
 [6,]   80
 [7,]   85
 [8,]   95
 [9,]   90
[10,]   98
> MatX=data.frame(rep(1,times=10),Data$IQ,Data$Kehadiran);MatX
   rep.1..times...10. Data.IQ Data.Kehadiran
1                   1     110             60
2                   1     120             70
3                   1     115             75
4                   1     130             80
5                   1     110             80
6                   1     120             90
7                   1     120             95
8                   1     125             95
9                   1     110            100
10                  1     120            100
> X=as.matrix(MatX);X
      rep.1..times...10. Data.IQ Data.Kehadiran
 [1,]                  1     110             60
 [2,]                  1     120             70
 [3,]                  1     115             75
 [4,]                  1     130             80
 [5,]                  1     110             80
 [6,]                  1     120             90
 [7,]                  1     120             95
 [8,]                  1     125             95
 [9,]                  1     110            100
[10,]                  1     120            100
> XtX=t(X)%*%X;XtX
                   rep.1..times...10. Data.IQ Data.Kehadiran
rep.1..times...10.                 10    1180            845
Data.IQ                          1180  139650          99900
Data.Kehadiran                    845   99900          73075
> XtY=t(X)%*%Y;XtY
                    [,1]
rep.1..times...10.   813
Data.IQ            96060
Data.Kehadiran     69925
> n=dim(Y)[1];n
[1] 10

Setelah dibentuk matriks seperti syntax di atas, maka digunakan rumus sebagai berikut untuk menghitung nilai \(\beta\).

\[ \hat{\beta}=\left( X^{t}X \right)^{-1}(X^{t}Y) \]

Sehingga didapat hasil \(\beta\) -nya adalah sebagai berikut

> # Perhitungan nilai Beta
> beta=(solve(XtX))%*%(XtY);beta
                         [,1]
rep.1..times...10. 23.0544545
Data.IQ            -0.0343275
Data.Kehadiran      0.7372330
> # Function Regresi Linear menggunakan syntax R
> model=lm(Nilai_UAS~IQ+Kehadiran);model

Call:
lm(formula = Nilai_UAS ~ IQ + Kehadiran)

Coefficients:
(Intercept)           IQ    Kehadiran  
   23.05445     -0.03433      0.73723  

Dari syntax di atas, dapat disimpulkan bahwa apabila perhitungan dilakukan secara manual dengan R menunjukkan hasil yang sama dengan function yang ada pada R “lm()”

4.2 Uji Signifikansi Simultan

Hipotesis

\(H_{0}:\beta_{1}=\beta_{2}=0\)

\(H_{1}: \text{Minimal terdapat salah satu }\beta_{i}\neq 0,\text{di mana }i=1,2\)

Statistik Uji

Statistik uji yang digunakan adalah uji F, apabila menggunakan R syntax-nya sebagai berikut.

> Yduga=X%*%beta;Yduga
          [,1]
 [1,] 63.51241
 [2,] 70.54147
 [3,] 74.39927
 [4,] 77.57052
 [5,] 78.25707
 [6,] 85.28613
 [7,] 88.97229
 [8,] 88.80065
 [9,] 93.00173
[10,] 92.65846
> Uduga=Y-Yduga;Uduga
            [,1]
 [1,]  1.4875890
 [2,] -0.5414662
 [3,]  0.6007312
 [4,] -2.5705215
 [5,]  1.7429286
 [6,] -5.2861266
 [7,] -3.9722917
 [8,]  6.1993458
 [9,] -3.0017318
[10,]  5.3415432
> Ybar=rep(mean(Y),n);Ybar
 [1] 81.3 81.3 81.3 81.3 81.3 81.3 81.3 81.3 81.3 81.3
> # Jumlah Kuadrat
> JKT=t(Y-Ybar)%*%(Y-Ybar);JKT
       [,1]
[1,] 1032.1
> JKR=t(Yduga-Ybar)%*%(Yduga-Ybar);JKR
        [,1]
[1,] 899.891
> JKG=JKT-JKR;JKG
        [,1]
[1,] 132.209
> JK=c(JKR,JKG,JKT);JK
[1]  899.891  132.209 1032.100
> # Derajat Bebas
> dbR=2
> dbT=n-1;dbT
[1] 9
> dbG=dbT-dbR;dbG
[1] 7
> db=c(dbR,dbG,dbT);db
[1] 2 7 9
> # Kuadrat Tengah
> KTR=JKR/dbR;KTR
         [,1]
[1,] 449.9455
> KTG=JKG/dbG;KTG
       [,1]
[1,] 18.887
> KT=c(KTR,KTG,"NA");KT
[1] "449.945516644229" "18.886995244506"  "NA"              
> # Menghitung uji F
> Fhit=KTR/KTG;Fhit
         [,1]
[1,] 23.82303
> Fhitung=c(Fhit,"NA","NA")
> # Menghitung P-value
> Pval=pf(Fhit,2,7,lower.tail=FALSE);Pval
             [,1]
[1,] 0.0007522929
> Pvalue=c(Pval,"NA","NA")
> # Membentuk Tabel Anova
> SK=c("Regresi","Galat","Total")
> Anova=data.frame(SK,JK,db,KT,Fhitung,Pvalue)
> Anova
       SK       JK db               KT          Fhitung               Pvalue
1 Regresi  899.891  2 449.945516644229 23.8230332998634 0.000752292903839419
2   Galat  132.209  7  18.886995244506               NA                   NA
3   Total 1032.100  9               NA               NA                   NA

Dari di atas di dapatkan \(P-Value=0.00075\). Perhitungan manual di atas menunjukkan hasil yang sama dengan menggunakan function “lm()” pada syntax R di bawah ini.

> # Function Uji Simultan menggunakan syntax R
> model=lm(Nilai_UAS~IQ+Kehadiran);model

Call:
lm(formula = Nilai_UAS ~ IQ + Kehadiran)

Coefficients:
(Intercept)           IQ    Kehadiran  
   23.05445     -0.03433      0.73723  
> summary(model)

Call:
lm(formula = Nilai_UAS ~ IQ + Kehadiran)

Residuals:
    Min      1Q  Median      3Q     Max 
-5.2861 -2.8939  0.0296  1.6791  6.1993 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 23.05445   25.57161   0.902 0.397247    
IQ          -0.03433    0.22051  -0.156 0.880686    
Kehadiran    0.73723    0.10918   6.752 0.000264 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 4.346 on 7 degrees of freedom
Multiple R-squared:  0.8719,    Adjusted R-squared:  0.8353 
F-statistic: 23.82 on 2 and 7 DF,  p-value: 0.0007523

Keputusan

\(P-Value(0.00075) < \alpha(0.05)\) maka Tolak \(H_{0}\)

Kesimpulan

Dengan taraf nyata 5%, dapat disimpulkan bahwa minimal ada salah satu variabel prediktor (IQ dan Kehadiran) yang memberikan pengaruh signifikan terhadap Nilai UAS.

4.3 Uji Signifikansi Parsial

Hipotesis

\(H_{0}:\beta_{i}=0 (\text{Tidak ada pengaruh dari variabel prediktor ke-i pada variabel respon})\)

\(H_{1}:\beta_{i}\neq 0 (\text{Terdapat pengaruh dari variabel prediktor ke-i pada variabel respon})\)

Statistik Uji

Statistik uji yang digunakan adalah uji t. k yang digunakan sama dengan 3 (Karena Apabila menggunakan R statistik ujinya sebagai berikut.

> # Uji Parsial (t)
> k=3;sd=rep(0,k)
> for(i in 1:k){sd[i]=sqrt(KTG*(solve(t(X)%*%X))[i,i])};sd
[1] 25.5716101  0.2205125  0.1091797
> thit=beta/sd;thit
                         [,1]
rep.1..times...10.  0.9015644
Data.IQ            -0.1556715
Data.Kehadiran      6.7524718
> pvalue_t=2*pt(abs(thit),dbG,lower.tail=FALSE);pvalue_t
                           [,1]
rep.1..times...10. 0.3972467061
Data.IQ            0.8806860631
Data.Kehadiran     0.0002644133
> # Function Uji Parsial menggunakan syntax R
> model=lm(Nilai_UAS~IQ+Kehadiran);model

Call:
lm(formula = Nilai_UAS ~ IQ + Kehadiran)

Coefficients:
(Intercept)           IQ    Kehadiran  
   23.05445     -0.03433      0.73723  
> summary(model)

Call:
lm(formula = Nilai_UAS ~ IQ + Kehadiran)

Residuals:
    Min      1Q  Median      3Q     Max 
-5.2861 -2.8939  0.0296  1.6791  6.1993 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 23.05445   25.57161   0.902 0.397247    
IQ          -0.03433    0.22051  -0.156 0.880686    
Kehadiran    0.73723    0.10918   6.752 0.000264 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 4.346 on 7 degrees of freedom
Multiple R-squared:  0.8719,    Adjusted R-squared:  0.8353 
F-statistic: 23.82 on 2 and 7 DF,  p-value: 0.0007523

Sehingga dari uji t di atas didapatkan hasil sebagai berikut.

Prediktor P-Value
Intercept 0.39724
IQ 0.88068
Kehadiran 0.00026

Keputusan

Prediktor P-Value Keputusan
Intercept 0.39724 Terima \(H_{0}\)
IQ 0.88068 Terima \(H_{0}\)
Kehadiran 0.00026 Tolak \(H_{0}\)

Kesimpulan

Prediktor Kesimpulan
Intercept Tidak terdapat pengaruh yang signifikan antara intercept dengan nilai UAS
IQ Tidak terdapat pengaruh yang signifikan antara IQ dengan nilai UAS
Kehadiran Terdapat pengaruh yang signifikan antara Kehadiran dengan dengan nilai UAS

4.4 Koefisine Determinasi

Pengujian Koefisien Determinasi digunakan untuk melihat seberapa besar kontribusi varibel prediktor terhadap variabel respon. Dalam kasus ini, cara menghitungnya adalah sebagai berikut.

> # Uji Koefisien Determinasi
> Rsquare=JKR/JKT;Rsquare
          [,1]
[1,] 0.8719029

Sehingga didapat R-Square sebesar 0.8719 dan pengujian manual ini menunjukkan hasil yang sama dengan pengujian secara syntax function di R yakni “lm()” sebagai berikut.

> # Function Uji Koefisien Determinasi menggunakan syntax R
> model=lm(Nilai_UAS~IQ+Kehadiran);model

Call:
lm(formula = Nilai_UAS ~ IQ + Kehadiran)

Coefficients:
(Intercept)           IQ    Kehadiran  
   23.05445     -0.03433      0.73723  
> summary(model)

Call:
lm(formula = Nilai_UAS ~ IQ + Kehadiran)

Residuals:
    Min      1Q  Median      3Q     Max 
-5.2861 -2.8939  0.0296  1.6791  6.1993 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 23.05445   25.57161   0.902 0.397247    
IQ          -0.03433    0.22051  -0.156 0.880686    
Kehadiran    0.73723    0.10918   6.752 0.000264 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 4.346 on 7 degrees of freedom
Multiple R-squared:  0.8719,    Adjusted R-squared:  0.8353 
F-statistic: 23.82 on 2 and 7 DF,  p-value: 0.0007523

Dari pengujian di atas, dapat disimpulkan bahwa IQ dan Kehadiran mampu menjelaskan pengaruhnya sebesar 87.19% dalam menentukan nilai UAS, sisanya dipengaruhi oleh faktor lain.

4.5 Uji Asumsi Regresi Linear

4.5.1 Asumsi Normalitas

Hipotesis

\(H_{0}:\text{Galat populasi berdistribusi normal}\)

\(H_{1}:\text{Galat populasi tidak berdistribusi normal}\)

Statistik Uji

> model = lm(Nilai_UAS ~ IQ + Kehadiran)
> sisaan = residuals (model)
> shapiro.test(sisaan)

    Shapiro-Wilk normality test

data:  sisaan
W = 0.95125, p-value = 0.6833

Dari di atas di dapatkan \(P-Value=0.6833\).

Keputusan

\(P-Value(0.6833) > \alpha(0.05)\) maka Terima \(H_{0}\)

Kesimpulan

Dengan taraf nyata 5%, dapat disimpulkan bahwa galat populasi menyebar secara normal

4.5.2 Asumsi Homoskedastisitas

Hipotesis

\(H_{0}:\text{Ragam populasi bersifat konstan}\)

\(H_{1}:\text{Ragam populasi tidak bersifat konstan}\)

Statistik Uji

> model = lm(Nilai_UAS ~ IQ + Kehadiran)
> bptest(model)

    studentized Breusch-Pagan test

data:  model
BP = 5.905, df = 2, p-value = 0.05221

Dari di atas di dapatkan \(P-Value=0.05221\).

Keputusan

\(P-Value(0.05221) > \alpha(0.05)\) maka Terima \(H_{0}\)

Kesimpulan

Dengan taraf nyata 5%, dapat disimpulkan bahwa ragam populasi bersifat konstan

4.5.3 Asumsi Nonautokolerasi

Hipotesis

\(H_{0}:\text{Tidak terjadi autokorelasi}\)

\(H_{1}:\text{Terjadi autokorelasi}\)

Statistik Uji

model = lm(Nilai_UAS ~ IQ + Kehadiran)

> model = lm(Nilai_UAS ~ IQ + Kehadiran)
> dwtest(model)

    Durbin-Watson test

data:  model
DW = 2.594, p-value = 0.8013
alternative hypothesis: true autocorrelation is greater than 0

Dari di atas di dapatkan \(P-Value=0.8013\).

Keputusan

\(P-Value(0.8013) > \alpha(0.05)\) maka Terima \(H_{0}\)

Kesimpulan

Dengan taraf nyata 5%, dapat disimpulkan bahwa model regresi memenuhi asumsi nonautokorelasi (tidak terjadi autokorelasi)

4.5.4 Asumsi Nonmultikolinearitas

Apabila menggunakan R syntax-nya adalah sebagai berikut.

> model = lm(Nilai_UAS ~ IQ + Kehadiran)
> vif(model)
       IQ Kehadiran 
 1.055571  1.055571 

Dari pengujian di atas, di dapatkan nilai vif > 10 dan mendekati 1 sehingga asumsi nonmultikolinearitas terpenuhi.

4.6 Interpretasi Model

Model yang terbentuk dari analisis regresi pengaruh IQ dan Kehadiran terhadap nilai UAS adalah sebagai berikut.

\[ Y=23.05445-0.03433X_{1}+0.73723X_{2} \]

dengan, - \(Y\) = Nilai_UAS - \(X_{1}\) = IQ - \(X_{2}\) = Kehadiran

5 KESIMPULAN

Setelah melakukan analisis regresi dan pengujian asumsinya, dapat disimpulkan bahwa model yang terbentuk adalah \(Y=23.05445-0.03433X_{1}+0.73723X_{2}\). Dalam hal ini, koefisien variabel \(X_{1}\) bernilai negatif yang artinya IQ memberikan pengaruh negatif (Tidak memberikan pengaruh yang signifikan) terhadap nilai_UAS. Model regresi yang terbentuk merupakan model regresi terbaik karena telah memenuhi asumsi normalitas, homoskedastisitas, nonautokorelasi, dan nonmultikolinearitas.

6 DAFTAR PUSTAKA

  • Sumarminingsih, Eni, Achmad Efendi, dan Adji Achmad Rinaldo F. 2022. Komputasi Statistika. Malang: UB Press.
  • M Nazir, 1983, Metode Statista Dasar I, GramediaPustaka Utama; Jakarta