1 1. PENDAHULUAN

1.1 Latar Belakang

Teknologi merupakan salah satu bidang yang terdampak dari adanya perkembangan zaman. Hal tersebut dibuktikan dengan kemajuan-kemajuan teknologi yang semakin hari semakin terlihat perubahannya. Manusia mau tidak mau juga harus mempelajari guna beradaptasi dengan adanya perubahan tersebut. Bahkan akhir-akhir ini pemerintah sedang gencar melakukan program pemerataan digitalisasi, karena untuk seterusnya kehidupan manusia akan selalu berdampingan dengan teknologi digital.

Salah satu kiat ilmu yang terus mengikuti perkembangan teknologi digital yaitu ilmu statistika. Statistika merupakan suatu ilmu yang berhubungan dengan pengumpulan data yang kemudian data tersebut diolah serta dimanipulasi sehingga dapat mempresentasikan data dengan interpretasi. Sehingga untuk mempermudah proses statistik tersebut, munculah berbagai macam perangkat-perangkat lunak yang membantu proses pengolahan data. Kemunculan berbagai macam perangkat lunak tersebut tentunya merupakan dampak dari ada kemajuan teknologi digital. Terdapat beberapa software (pernagkat lunak) yang biasanya digunakan, diantaranya yaitu python, R, SPPS, minitab, dan lain sebagainya.

Pada pembahasan kali ini akan difokuskan pada software R, yaitu bahasa pemrograman dan alat yang sering digunakan untuk komputasi statistika. R merupakan bahasa pemrograman yang memiliki kesamaan dengan bahasa pemrograman S atau S+ yang dibuat oleh AT&T Bell. Seiring dengan perkembangan yang didukung oleh komunitas dan peneliti yang aktif mengembangkan R, software R mampu beradaptasi dan terus berkembang hingga dapat menjalankan metode komputasi dan analisis statistika terbaru dengan mudah serta praktis karena adanya beberapa package yang sudah siap digunakan. Selain menghitung, memanipulasi, dan mengolah data, software R juga dapat digunakan untuk membuat grafik maupun plot. Sehingga dapat dikatakan bahwa bahasa pemrograman R dapat sangat membantu proses analisis statistika. Dalam pembahasan ini, akan difokuskan pada salah satu materi analisis statistika yaitu analisis regresi untuk mengetahui bagaimana pengaruh volume dan tinggi kayu terhadap ketebalannya.

2 2. TINJAUAN PUSTAKA

2.1 2.1 Analisis Regresi

Analasis regresi merupakan suatu teknik statistika untuk memeriksa dan memodelkan hubungan antar variabel. Adapun variabel yang dimaksudkan yaitu variabel respon dan satu atau beberapa variabel prediktor. Variabel respon pada beberapa literatur bisa juga disebut sebagai variabel tidak bebas (dependen), variabel terikat, variabel yang dipengaruhi variabel lainnya, variabel yang merupakan hasil dari variabel yang lainnya, dan lain sebagainya. Sedangkan variabel prediktor dapat disebut juga sebagai variabel penjelas, variabel independen (bebas), variabel yang memiliki pengaruh terhadap hasil dari variabel respon, dan lain sebagainya. Hanya terdapat satu variabel respon pada setiap persamaaan regresi, tetapi variabel prediktor bisa lebih dari satu. Apabila variabel prediktor yang dilibatkan lebih dari satu, maka analisis regresinya disebut analisis regresi linear berganda. Terdapat dua macam linearitas pada model regresi, pertama linear dalam variabel yaitu nilai rata-rata kondisional pada variabel dependen yang merupakan fungsi linear dari variabel independen. Sedangkan kedua adalah linear dalam parameter, yaitu fungsi linear untuk parameter tetapi dapat tidak linear pada variabel

Analisis regresi dilakukan untuk mengetahui besarnya pengaruh dari suatu variabel prediktor terhadap variabel respon. Setelah diperoleh hasil dari pemodelan regresi, selanjutnya dapat diperoleh deskripsi data, pendugaan parameter, prediksi dan mengontrol hasil. Selain pada ilmu statistika, penerapan dari analisis regresi banyak digunakan di berbagai bidang, seperti bisang ekonomi, teknik, manajemen, pertanian, dan lainnya. Berikut merupakan bentuk persamaan regresi linear:

\[ \epsilon_{i} = y_{i} - \beta_{0} - \beta_{i}x_{i} \]

Keterangan:

  • 𝛃0 dan 𝛃1 merupakan konstanta yang belum diketahui, sehingga perlu dilakukan adanya pendugaan atau penaksiran nilainya.

  • 𝛆 merupakan error yang diasumsikan memiliki rata-rata nol, varian 𝛔^2, dan bersifat acak.

  • π‘₯ merupakan variabel prediktor yang bisa diukur dan dikontrol

  • 𝗒 merupakan variabel respon yang merupakan hasil dari pengaruh variabel prediktor.

2.2 2.2 Asumsi-asumsi pada Analisis Regresi

2.2.1 a) Asumsi Normalitas

Asumsi normalitas dapat dibuktikan dengan melakukan uji normalitas. Uji normalitas merupakan uji yang digunakan untuk melngetahui apakah residualnya berdistribusi normal atau tidak. Selain itu, digunakan pula untukSeperti yang diketahui bahwa salah satu ciri-ciri model regresi yang baik adalah model yang memiliki nilai residual yang menyebar secara normal. Ajija (2011) menyatakan bahwa uji normalitas adalah uji yang diperlukan ketika jumlah observasi kurang dari 30. Jika lebih dari 30, maka tidak perlu dilakukian uji normalitas karena distribusi sampling errornya dipastikan telah mendekati normal. Beberapa cara yang dapat dilakukan untuk uji normalitas yaitu, uji Saphiro-wilk, Kolmogorov Smirnov, uji Chi-Square, dan lain-lain.

Ketika residual diasumsikan menyebar normal dan berdampak pada variabel dependennya, maka yang diuji normalitas adalah variabel dependennya. Sedangkan untuk variabel independennya diasumsikan bukan variabel acak. Ketika asumsi normalitas tidak berhasil terpenuhi, maka dapat dikatakan bahwa analisis regresi yang dihasilkan tidak tepat.

2.2.2 b) Asumsi Homoskedastisitas

Model regresi yang baik adalah model yang memiliki kesamaan ragam pada residual yang berbeda-beda. Jika asumsi ini tidak terpenuhi (terjadi heteroskedasitas), maka estimasi standar error, selang kepercayaan serta uji hipotesis pada analisis regresi akan menghasilkan hasil yang tidak tepat, sehingga akan berpengaruh pada kesimpulan dan interpretasi yang ditarik juga menjadi kurang tepat. Untuk mengetahui adanya heterokesdasitas dapat dilakukan uji:

2.2.3 c) Asumsi Non Autokorelasi

Pada kasus ini, error yang terjadi pada suatu pengamatan tidak akan mempengaruhi error pada pengamatan yang lainnya. Maksudnya adalah error yang terjadi pada setiap pengamatan memiliki nilai yang berbeda-beda. Apabila terjadi autokorelasi pada model regresi yang dihasilkan, maka keefektifan pendugaan parameter dan statistik inferensial yang dihasilkan menjadi tidak valid.

2.2.4 d) Asumsi Non Multikolinieritas

Syarat model regresi yang baik selanjutnya adalah memnuhi asumsi tidak terjadinya multikolinieritas antar variabel independennya. Uji multikolinieritas adalah uji yang membuktikan apakah pada model regresi berganda ditemukan adanya korelasi antar variabel prediktornya. Jika asumsi ini dilanggar, maka akan mengakibatkan selang kepercayaan menjadi lebih besar dan hipotesis nol lebih sering diterima karena koefisien yang tidak nyata.

3 3. SOURCE CODE

3.1 Library

Berikut merupakan library yang akan digunakan pada analisis regresi, apabila belum terinstall bisa install terlebih dahulu dengan cara: install.packages(β€œnama library”)

library(tseries)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(car)
## Loading required package: carData

3.2 Data

Data yang akan digunakan pada analisis regresi ini berasal dari dataset pada R studio yang dapat diperoleh dengan syntax berikut:

data(trees)
head(trees)
##   Girth Height Volume
## 1   8.3     70   10.3
## 2   8.6     65   10.3
## 3   8.8     63   10.2
## 4  10.5     72   16.4
## 5  10.7     81   18.8
## 6  10.8     83   19.7
Y  = as.matrix(trees$Girth, ncol=1)
X1 = trees$Height
X2 = trees$Volume

3.3 Analisis Regresi Cara Manual

n  = dim(Y)[1]
n
## [1] 31
X0 = rep(1,n)
X  = data.frame(X0, X1, X2)
X  = as.matrix(X)
X
##       X0 X1   X2
##  [1,]  1 70 10.3
##  [2,]  1 65 10.3
##  [3,]  1 63 10.2
##  [4,]  1 72 16.4
##  [5,]  1 81 18.8
##  [6,]  1 83 19.7
##  [7,]  1 66 15.6
##  [8,]  1 75 18.2
##  [9,]  1 80 22.6
## [10,]  1 75 19.9
## [11,]  1 79 24.2
## [12,]  1 76 21.0
## [13,]  1 76 21.4
## [14,]  1 69 21.3
## [15,]  1 75 19.1
## [16,]  1 74 22.2
## [17,]  1 85 33.8
## [18,]  1 86 27.4
## [19,]  1 71 25.7
## [20,]  1 64 24.9
## [21,]  1 78 34.5
## [22,]  1 80 31.7
## [23,]  1 74 36.3
## [24,]  1 72 38.3
## [25,]  1 77 42.6
## [26,]  1 81 55.4
## [27,]  1 82 55.7
## [28,]  1 80 58.3
## [29,]  1 80 51.5
## [30,]  1 80 51.0
## [31,]  1 87 77.0
k  = dim(trees)[2]
k
## [1] 3
#penduga koefisien
beta_duga = solve(t(X)%*%X)%*%(t(X)%*%Y)
beta_duga
##           [,1]
## X0 10.81637050
## X1 -0.04548349
## X2  0.19517975
y_duga    = X%*%beta_duga
u_duga    = Y - y_duga
y_bar     = rep(mean(Y),n)
y_bar
##  [1] 13.24839 13.24839 13.24839 13.24839 13.24839 13.24839 13.24839 13.24839
##  [9] 13.24839 13.24839 13.24839 13.24839 13.24839 13.24839 13.24839 13.24839
## [17] 13.24839 13.24839 13.24839 13.24839 13.24839 13.24839 13.24839 13.24839
## [25] 13.24839 13.24839 13.24839 13.24839 13.24839 13.24839 13.24839
#menghitung analisis ragam
##jumlah kuadrat
JKT = t(Y-y_bar)%*%(Y-y_bar)
JKR = t(y_duga-y_bar)%*%(y_duga-y_bar)
JKG =  JKT-JKR
JK  = c(JKR, JKG, JKT)
JK
## [1] 277.94640  17.49101 295.43742
##derajat bebas
dbR = k-1
dbT = n-1
dbG = dbT-dbR
db  = c(dbR, dbG, dbT)
db
## [1]  2 28 30
KT  = JK/db
KT
## [1] 138.9732023   0.6246791   9.8479140
##membentuk tabel anova
SU    = c("Regresi", "Galat", "Total")
AnReg = data.frame(SU, JK, db, KT)
names(AnReg) = c("SU", "JK", "db", "KT")
AnReg
##        SU        JK db          KT
## 1 Regresi 277.94640  2 138.9732023
## 2   Galat  17.49101 28   0.6246791
## 3   Total 295.43742 30   9.8479140
#koefisien determinasi
R2 = AnReg$JK[1]/AnReg$JK[3]
R2
## [1] 0.9407962
#menghitung uji F
SU_F = AnReg$KT[1]/AnReg$KT[2]
SU_F
## [1] 222.4713
pvalue_f = pf(SU_F, AnReg$db[1], AnReg$db[2], lower.tail=FALSE)
pvalue_f
## [1] 6.499697e-18
#uji T
var_cov = AnReg$KT[2]*solve(t(X)%*%X)
var_cov
##             X0            X1            X2
## X0  3.89350098 -0.0551161684  0.0104563686
## X1 -0.05511617  0.0007987462 -0.0001852292
## X2  0.01045637 -0.0001852292  0.0001200176
sd = rep(0,k)
for (i in 1:k){
  sd[i] = sqrt(var_cov[i,i])
}
sd
## [1] 1.97319563 0.02826210 0.01095526
thit = beta_duga/sd
thit
##         [,1]
## X0  5.481651
## X1 -1.609346
## X2 17.816084
pvalue_t = 2*pt(abs(thit), AnReg$db[2], lower.tail=FALSE)
pvalue_t
##            [,1]
## X0 7.446911e-06
## X1 1.187591e-01
## X2 8.223304e-17

3.4 Analisis Regresi dengan Fungsi lm(…)

data(trees)
head(trees)
##   Girth Height Volume
## 1   8.3     70   10.3
## 2   8.6     65   10.3
## 3   8.8     63   10.2
## 4  10.5     72   16.4
## 5  10.7     81   18.8
## 6  10.8     83   19.7
str(trees)
## 'data.frame':    31 obs. of  3 variables:
##  $ Girth : num  8.3 8.6 8.8 10.5 10.7 10.8 11 11 11.1 11.2 ...
##  $ Height: num  70 65 63 72 81 83 66 75 80 75 ...
##  $ Volume: num  10.3 10.3 10.2 16.4 18.8 19.7 15.6 18.2 22.6 19.9 ...
X1 = trees$Height
X2 = trees$Volume
Y = trees$Girth
data_trees = data.frame (X1,X2,Y)
anreg = lm (Y~X2+X1, data = data_trees)
summary (anreg)
## 
## Call:
## lm(formula = Y ~ X2 + X1, data = data_trees)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.34288 -0.56696 -0.08628  0.80283  1.11642 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 10.81637    1.97320   5.482 7.45e-06 ***
## X2           0.19518    0.01096  17.816  < 2e-16 ***
## X1          -0.04548    0.02826  -1.609    0.119    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7904 on 28 degrees of freedom
## Multiple R-squared:  0.9408, Adjusted R-squared:  0.9366 
## F-statistic: 222.5 on 2 and 28 DF,  p-value: < 2.2e-16

3.5 Uji Asumsi Klasik

# ASUMSI NORMALITAS
library(tseries)
sisa = residuals(anreg)
jarque.bera.test(sisa)
## 
##  Jarque Bera Test
## 
## data:  sisa
## X-squared = 1.3547, df = 2, p-value = 0.508
shapiro.test(sisa)
## 
##  Shapiro-Wilk normality test
## 
## data:  sisa
## W = 0.92709, p-value = 0.03657
# ASUMSI HOMOSKEDASTISITAS
library(lmtest)
bptest(anreg)
## 
##  studentized Breusch-Pagan test
## 
## data:  anreg
## BP = 3.1411, df = 2, p-value = 0.2079
#ASUMSI NONAUTOKORELASI
dwtest(anreg)
## 
##  Durbin-Watson test
## 
## data:  anreg
## DW = 1.2146, p-value = 0.005783
## alternative hypothesis: true autocorrelation is greater than 0
# ASUMSI NONMULTIKOLINIERITAS
library(car)
vif(anreg)
##       X2       X1 
## 1.557396 1.557396

4 HASIL DAN PEMBAHASAN

4.0.1 Berdasarkan hasil perhitungan menggunakan R Studio baik secara manual maupun fungsi lm(…) diperoleh hasil sebagai berikut:

  • Diperoleh model persamaan regresi
Y = 10.81637 + 0.19518X2 - 0.04548X1

Interpretasi:

Setiap volume kayu bertambah 1, maka ketebalannya akan bertambah sebesar 0.195

Setiap tinggi kayu bertambah satu, maka akan berkurang sebesar 0.0454

  • Berdasarkan hasil uji simultan dapat disimpulkan bahwa:

    nilai p (6.45e-18) < alpha (0.05), maka tolak H0. Sehingga pada taraf nyata 95% dapat dikatakan bahwa terdapat pengaruh yang signifikan antara volume dan tinggi kayu terhadap ketebalan kayu.

  • Berdasarkan hasil uji parsial:

    • Untuk X1

      nilai p (0.119) > alpha (0.05), maka terima H0. Sehingga pada taraf nyata 95% dapat disimpulkan bahwa tinggi kayu tidak memiliki pengaruh yang signifikan terhadap ketebalan kayu.

    • Untuk X2

      nilai p (2e-16) < alpha (0.05), maka tolah H0. Sehingga pada taraf nyata 95% dapat disimpulkan bahwa volume kayu memiliki pengaruh yang signifikan terhadap ketebalan kayu.

  • Asumsi Normalitas

    nilai p (0.03657) < alpha (0.05), maka tolak H0. Berdasarkan uji asumsi normalitas dengan shapiro wilk, maka dapat disimpulkan bahwa galat tidak menyebar secara normal.

  • Asumsi Homoskedastisitas

    nilai p (0.02079) < alpha (0.05), maka tolak H0. Sehingga berdasarkan hasil uji homoskedastisitas dapat disimpulkan bahwa asumsi homogenitas galat tidak terpenuhi.

  • Asumsi Non Autokorelasi

    nilai p (0.00578) < alpha (0.05), maka tolak H0. Sehingga berdasarkan hasil uji durbin watson, dapat disimpulkan bahwa terjadi pelanggaran asumsi non autokorelasi pada galat.

  • Asumsi Non Multikolinieritas

    Karena nilai VIF pada X1 (1.5573) dan X2 (1.5573) berada dibawah 10. Maka dapat disimpulkan bahwa asumsi multikolinieritas terpenuhi.

5 KESIMPULAN

Berdasarkan hasil perhitungan manual dan menggunakan fungsi lm(…) diperoleh hasil yang sama, mulai dari pendugaan parameter regresi hingga hasil uji parsialnya. Apabila tidak ingin memakan waktu lama, maka bisa untuk menggunakan fungsi lm(…) karena syntax fungsi lm(…) lebih singkat dan praktis digunakan serta dapat langsung melanjutkan untuk uji asumsi klasik model regresi.

6 DAFTAR PUSTAKA

Efendi, A., Wardani, N. W. S., Fitriani, R., Sumarminingsih, E. 2020. Analisis Regresi Teori dan Aplikasi dengan R. Malang : UB Press

Kurniawan, R. dan Yuniarto, B. 2016. Analisis Regresi Dasar dan Penerapannya dengan R. Jakarta: Kencana.

Walpole, R. E. 1922. Pengantar Statstika. 3rd edn. Jakarta: PT Gramedia Pustaka