1 PENDAHULUAN
1.1 Latar Belakang
Pada zaman kemajuan teknologi ini membuat aktivitas kehidupan sehari-hari kita tidak terlepas dalam penggunaan smartphone, laptop, dan lain-lain yang mampu membantu mengolah data. Komputasi adalah pilihan yang tepat untuk data inputan yang menggunakan suatu algoritma. Komputasi bisa dilakukan dengan software yang mendukung analisisnya, seperti software R, spp, genstat, minitab, dan sebagainya. Dalam software R terdapat fasilitas untuk perhitungan, manipulasi, dan pembuatan grafik. Oleh karena itu, software R dapat digunakan untuk suatu analisis statistika. Namun, terdapat kelemahan dari software ini yaitu diperlukan syntax agar dapat mengetahui hasil dari analisis statistika tersebut. Maka, dalam praktikum ini akan membahas mengenai salah satu analisis yang dilakukan menggunakan aplikasi R yaitu analisis regresi linier sederhana untuk mengetahui pengaruh lama pengalaman kerja karyawan terhadap banyaknya gaji yang didapat.
1.2 Tinjauan Pustaka
1.2.1 Statistika Deskriptif
Statistik deskriptif merupakan proses transformasi data penelitian dalam bentuktabulasi sehingga mudah dipahami dan diinterpretasikan. Statistik deskripstifberfungsi mempelajari tata cara pengumpulan, pencatatan, penyusunan danpenyajian data penelitian dalam bentuk tabel frekuensi atau grafik dan selanjutnyadilakukan pengukuran nilai-nilai statistiknya seperti mean/rerata aritmetik, median,modes, deviasi standar. Pada umumnya memberikan informasi mengenaikarakteristik variabel penelitian utama dan data demografi responden.
1.2.2 Statistik Inferensial
Statistik inferensial merupakan penerapan metode statistik untuk menaksir dan atau menguji karakteristik populasi yang dihipotesiskan berdasarkan data sampel.Ilmu pengetahuan statistik yang bertugas mempelajari tata cara penarikankesimpulan mengenai keseluruhan populasi berdasarkan data hasil penelitianpada sampel (bagian dari populasi). Berdasarkan asumsi yang mendasarinya, statistik inferensial dibedakan menjadi dua yaitu : a. Statistik Parametrik. Pendugaan dan uji hipotesis dari parameter populasi didasarkan anggapan bahwa skor-skor yang dianalisis telah ditarik dari suatu populasi dengan ditribusi tertentu
- Statistik Nonparametrik. Pendugaan dan uji hipotesis dari parameter populasi anggapan bahwa skor-skor yang dianalisis telah ditarik dari suatu populasi dengan bebas sebaran (tidak mengikuti distribusi tertentu)
1.2.3 Analisis Regresi Linier Sederhana
Analisis regresi linier sederhana adalah hubungan secara linear antara satu variabel independen (X) dengan variabel dependen (Y). Analisis regresi sederhana dapat digunakan untuk mengetahui arah dari hubungan antara variabel bebas dengan variabel terikat, apakah memiliki hubungan positif atau negatif serta untuk memprediksi nilai dari variabel terikat apabila nilai variabel bebas mengalami kenaikan ataupun penurunan. Pada regresi sederhana biasanya data yang digunakan memiliki skala interval atau rasio.
Rumus regresi linier sederhana sebagai berikut: \[
Y= a+bX
\] dimana:
Y = Variabel tak bebas (nilai yang akan diprediksi) X = Variabel bebas (variabel ndependent)
a = Konstanta (nilai dari Y apabila X=0) b = koefisien regresi (pengaruh positif atau negatif)
1.2.4 Analisis Korelasi
Analisis koefisien korelasi pada penelitian ini menggunakan analisis koefisien korelasi pearson. Analisis koefisien korelasi pearson digunakan untuk mengukur hubungan antara disiplin kerja (X) dan variabel kinerja (Y).
Rumus yang digunakan untuk uji korelasi menurut Sugiyono (2012) yaitu : \[
r = \frac{n \sum xy - \sum x \sum y} {\sqrt(n \sum x^2 - (\sum x)^2)(n \sum y^2 -(\sum y)^2)}
\] dimana: r = Koefisien korelasi
n = Jumlah data
X = Variabel Bebas (Independen)
Y = Variabel terikat (Dependen)
1.2.5 Uji Asumsi Klasik
Uji asumsi klasik ini merupakan uji prasyarat yang dilakukan sebelum melakukan analisis lebih lanjut terhadap data yang telah dikumpulkan. Pengujian asumsi klasik ini ditujukan agar dapat menghasilkan model regresi yang memenuhi kriteria BLUE (Best Linier Unbiased Estimator). Untuk mengetahui apakah model regresi yang akan digunakan telah memenuhi kriteria BLUE maka perlu dilakukan serangkaian pengujian yaitu Uji Normalitas, Uji Multikolinieritas, Uji Heteroskedastisitas, dan Uji Autokorelasi
2 SOURCE CODE
2.1 Library yang Dibutuhkan
> library(rmarkdown) #membuat markdown dengan Bahasa R menggunakan Rstudio
> library(prettydoc) #membuat tampilan dokumen menjadi lebih cantik
> library(tinytex) #membantu fungsi untuk menginstall dan memperbaiki TeXLive dan meng-compile LaTeX dokumen
> library(equatiomatic) #Mengubah model menjadi persamaan LaTeX
> library(car) #pendamping analisis regresi yang diterapkan
> library(tseries) #analisis time series dan komputasi keuangan
> library(lmtest) #pengujian model regresi linier
2.2 Data
Berikut adalah data yang akan digunakan (Data terdiri dari 30 obervasi dengan 2 variabel).
> datagaji<- read.csv(file.choose(), header=TRUE)
> head(datagaji)
YearsExperience Salary1 1.1 39343
2 1.3 46205
3 1.5 37731
4 2.0 43525
5 2.2 39891
6 2.9 56642
> str(datagaji)
'data.frame': 30 obs. of 2 variables:
$ YearsExperience: num 1.1 1.3 1.5 2 2.2 2.9 3 3.2 3.2 3.7 ...
$ Salary : num 39343 46205 37731 43525 39891 ...
> paged_table(as.data.frame(datagaji))
Keterangan: -datagaji<-read.csv(file.choose(), header=TRUE) untuk memilih file yang disimpan pada komputer dalam bentuk csv di folder. - datagaji untuk memanggil file yang sudah disimpan pada obyek bernama datagaji.
2.3 Analisis Grafik
2.3.1 Scatter plot
> scatter.smooth(x=datagaji$YearsExperience, y=datagaji$Salary, main="Gambar 1. Smooth Scatter Plot Salary~YearsExperience", xlab="Salary", ylab="Years Experience", pch=16, col="brown1") # scatterplot
2.3.2 Box plot
> par(mfrow=c(1,2)) #Membagi area grafik menjadi 2 kolom
> boxplot(datagaji$YearsExperience, main="Gambar 2.1. Boxplot Years Experience",sub=paste("Outlier rows: ", boxplot.stats(datagaji$YearsExperience)$out), col="darkseagreen1") #box plot untuk YearsExperience
>
> boxplot(datagaji$Salary, main="Gambar 2.2. Boxplot Salary",sub=paste("Outlier rows: ", boxplot.stats(datagaji$Salary)$out), col="darksalmon") #box plot untuk Salary
2.3.3 Density plot
> par(mfrow=c(1,2)) #Membagi area grafik menjadi 2 kolom
> plot(density(datagaji$YearsExperience), main="Gambar 3.1. Density Plot : Year Experience", ylab="Frequency", sub=paste("Skewness: ", round(e1071::skewness(datagaji$YearsExperience),2))) #desity plot untuk YearsExperience
> polygon(density(datagaji$YearsExperience), col="darkolivegreen3")
>
> plot(density(datagaji$Salary), main="Gambar 3.2. Density Plot : Salary", ylab="Frequency", sub=paste("Skewness: ", round(e1071::skewness(datagaji$Salary),2))) #desity plot untuk Salary
> polygon(density(datagaji$Salary), col="deepskyblue3")
2.4 Analisis Korelasi
Analisis korelasi pada kasus ini untuk mengetahui hubungan antara lamanya pengalaman karyawan dengan banyaknya gaji yang didapatkan.
> cor(datagaji[1:2], method="pearson") #menghitung korelasi antara YearsExperience dengan banyaknya gaji
YearsExperience Salary1.0000000 0.9782416
YearsExperience 0.9782416 1.0000000 Salary
2.5 Analisis Regresi
Analisis untuk meramalkan pengaruh variabel prediktor terhadap variable kriterium untuk membuktikan ada atau tidaknya hubungan fungsional antara variabel bebas (X) dengan sebuah variabel terikat (Y). Setelah melihat hubungan linier secara visual dan dengan menghitung korelasinya, maka langkah selanjutnya yaitu membentuk model analisis regresi sebagai berikut:
2.5.1 Analisis Koefisien Model
2.5.1.1 Penduga Beta
\[ \hat\beta=(X'X) ^-~^1 X'Y \]
> X<-datagaji$YearsExperience
> Y<-datagaji$Salary
> datagaji2<-data.frame(X,Y)
> n<-dim(datagaji)[1] #dimensi data
> n
1] 30
[> X<-matrix(c(rep(1,n),datagaji$YearsExperience),nrow=n)
> X
1] [,2]
[,1,] 1 1.1
[2,] 1 1.3
[3,] 1 1.5
[4,] 1 2.0
[5,] 1 2.2
[6,] 1 2.9
[7,] 1 3.0
[8,] 1 3.2
[9,] 1 3.2
[10,] 1 3.7
[11,] 1 3.9
[12,] 1 4.0
[13,] 1 4.0
[14,] 1 4.1
[15,] 1 4.5
[16,] 1 4.9
[17,] 1 5.1
[18,] 1 5.3
[19,] 1 5.9
[20,] 1 6.0
[21,] 1 6.8
[22,] 1 7.1
[23,] 1 7.9
[24,] 1 8.2
[25,] 1 8.7
[26,] 1 9.0
[27,] 1 9.5
[28,] 1 9.6
[29,] 1 10.3
[30,] 1 10.5
[> Y
1] 39343 46205 37731 43525 39891 56642 60150 54445 64445 57189
[11] 63218 55794 56957 57081 61111 67938 66029 83088 81363 93940
[21] 91738 98273 101302 113812 109431 105582 116969 112635 122391 121872
[> k<-dim(X)[2] #dimensi data variabel X
> k
1] 2
[> b_topi<-(solve(t(X)%*%X))%*%(t(X)%*%Y) #Penduga beta
> b_topi
1]
[,1,] 25792.200
[2,] 9449.962 [
2.5.1.2 Penduga Respons (Y)
\[ \hat Y=X \hat\beta \]
> Y_topi<-X%*%b_topi #Penduga respon (Y)
> Y_topi
1]
[,1,] 36187.16
[2,] 38077.15
[3,] 39967.14
[4,] 44692.12
[5,] 46582.12
[6,] 53197.09
[7,] 54142.09
[8,] 56032.08
[9,] 56032.08
[10,] 60757.06
[11,] 62647.05
[12,] 63592.05
[13,] 63592.05
[14,] 64537.05
[15,] 68317.03
[16,] 72097.02
[17,] 73987.01
[18,] 75877.00
[19,] 81546.98
[20,] 82491.97
[21,] 90051.94
[22,] 92886.93
[23,] 100446.90
[24,] 103281.89
[25,] 108006.87
[26,] 110841.86
[27,] 115566.84
[28,] 116511.84
[29,] 123126.81
[30,] 125016.80 [
2.5.1.3 Penduga U (sisaan)
\[ \hat u=Y-\hat Y \]
> sisa_utopi<-Y - Y_topi #sisaan (vektor selisih)
> sisa_utopi
1]
[,1,] 3155.8412
[2,] 8127.8488
[3,] -2236.1437
[4,] -1167.1248
[5,] -6691.1173
[6,] 3444.9091
[7,] 6007.9128
[8,] -1587.0796
[9,] 8412.9204
[10,] -3568.0608
[11,] 570.9467
[12,] -7798.0495
[13,] -6635.0495
[14,] -7456.0457
[15,] -7206.0306
[16,] -4159.0156
[17,] -7958.0080
[18,] 7210.9995
[19,] -183.9779
[20,] 11448.0259
[21,] 1686.0560
[22,] 5386.0673
[23,] 855.0975
[24,] 10530.1088
[25,] 1424.1276
[26,] -5259.8611
[27,] 1402.1577
[28,] -3876.8385
[29,] -735.8121
[30,] -3144.8046 [
2.5.2 Analisis Ragam
>
> Ybar<-rep(mean(Y),n) #nilai rata-rata variabel Y diulang sebanyak n kali
> Ybar
1] 76003 76003 76003 76003 76003 76003 76003 76003 76003 76003 76003 76003
[13] 76003 76003 76003 76003 76003 76003 76003 76003 76003 76003 76003 76003
[25] 76003 76003 76003 76003 76003 76003
[>
> JKRegresi<-t(Y_topi-Ybar)%*%(Y_topi-Ybar) #Jumlah keragaman regresi
> JKRegresi
1]
[,1,] 20856849300
[>
> JKGalat<-t(Y-Y_topi)%*%(Y-Y_topi) #Jumlah keragaman galat
> JKGalat
1]
[,1,] 938128552
[>
> JKTotal<-t(Y-Ybar)%*%(Y-Ybar) #Jumlah keragaman total
> JKTotal
1]
[,1,] 21794977852
[>
> JK<-c(JKRegresi, JKGalat, JKTotal) #gabungan jumlah kuadrat
> JK
1] 20856849300 938128552 21794977852
[>
> dbregresi<-k-1 #derajat bebas regresi
> dbTotal<-n-1 #derajat bebas total
> dbGalat<-dbTotal-dbregresi #derajat bebas galat
> db<-c(dbregresi, dbGalat, dbTotal) #gabungan derajat bebas
> db
1] 1 28 29
[>
> KT<-JK/db #kuadrat tengah
> KT
1] 20856849300 33504591 751550960
[>
> sk<-c("Regresi", "Galat", "Total") #sumber keragaman
> sk
1] "Regresi" "Galat" "Total"
[>
> anregresi<-data.frame(sk,JK,db,KT) #data frame gabungan sk, JK, db, dan KT untuk membentuk suatu tabel
> names(anregresi)<-c("SK","JK","db","KT")
> anregresi
SK JK db KT1 Regresi 20856849300 1 20856849300
2 Galat 938128552 28 33504591
3 Total 21794977852 29 751550960
2.5.3 Hasil Uji Serempak(uji F)
Rumus: \[ F=\frac{KT Regresi} {KT Galat} \]
> F_hit<-anregresi$KT[1]/anregresi$KT[2] #F hitung
> F_hit
1] 622.5072
[>
> pf<-pf(F_hit, anregresi$db[1],anregresi$db[2], lower.tail=FALSE) #menghitung p-value
> pf
1] 1.143068e-20 [
2.5.4 Hasil Uji Partial (uji t)
Rumus statistik uji:
\[ se(\hat\beta~j~)= \sqrt{var(\hat\beta~j~)} \] \[ var(\hat\beta~j)=\hat\sigma^2 (X'X)^-~^1 \]
> var_cov<-anregresi$KT[2]*solve(t(X) %*% X) #mencari ragam peragam
> var_cov
1] [,2]
[,1,] 5166771.9 -762224.4
[2,] -762224.4 143455.0 [
> sd<-rep(0,k)
> for(i in 1:k){
+ sd[i]<-sqrt(var_cov[i,i])
+ }
> sd
1] 2273.0534 378.7546 [
\[ T=\frac{\hat\beta~j~-\beta~j~}{se(\hat\beta~j~)}, menyebar secara ~~t(n-k) \]
Menghitung statistik uji t masing-masing penduga beta:
> t<-b_topi/sd
> t
1]
[,1,] 11.34694
[2,] 24.95009 [
Menghitung nilai p-value masing-masing penduga beta:
> p<-2*pt(abs(t), areg$db[2], lower.tail=FALSE)
in pt(abs(t), areg$db[2], lower.tail = FALSE): object 'areg' not found
Error > p
in eval(expr, envir, enclos): object 'p' not found Error
2.5.5 Selang Kepercayaan Parameter
\[ Selang~kepercayaan~(1-\alpha)*100\% ~~bagi~~ \beta~j \]
> alpha<-0.05
> ttabel<-qt(alpha/2,anregresi$db[2], lower.tail=FALSE)
> ttabel
1] 2.048407
[>
> batasbawah_sk<-b_topi-(ttabel*sd) #menghitung batas bawah selang
> batasbawah_sk
1]
[,1,] 21136.061
[2,] 8674.119
[> batasatas_sk<-b_topi+(ttabel*sd) #menghitung batas atas selang
> batasatas_sk
1]
[,1,] 30448.34
[2,] 10225.81
[>
> selangkepercayaan<-cbind(batasbawah_sk, batasatas_sk) #membuat selang kepercayaan berdasarkan batas atas dan batas bawah
> selangkepercayaan
1] [,2]
[,1,] 21136.061 30448.34
[2,] 8674.119 10225.81 [
2.5.6 Koefisien Determinasi dan Adjusted Koefisien Determinasi
Koefisien determinasi: \[ R^2=\frac{JK~Regresi}{JK~Total} \]
Hasil pada Rstudio:
> R2<-anregresi$JK[1]/anregresi$JK[3]
> R2
1] 0.9569567 [
Adjusted koefisien determinasi: \[ adjusted~R^2=1-\frac{JK~Galat/(n-k)}{JK~Total/(n-1)} \]
Hasil pada Rstudio:
> adjustedR2<-1-((anregresi$JK[1]/dbGalat)/(anregresi$JK[3]/dbTotal))
> adjustedR2
1] 0.008866312 [
2.6 Analisis Regresi dengan Fungsi Built In
2.6.1 Analisis Koefisien Model
> X<-datagaji$YearsExperience
> Y<-datagaji$Salary
> regresi<-lm(Y~X, data=datagaji) #membentuk analisis regresi sederhana
> print(regresi)
:
Calllm(formula = Y ~ X, data = datagaji)
:
Coefficients
(Intercept) X 25792 9450
> extract_eq(regresi, use_coefs = TRUE) #membentuk model analisis regresi sederhana beserta nilai koefisiennya
\[ \operatorname{\widehat{Y}} = 25792.2 + 9449.96(\operatorname{X}) \]
> summary(regresi) #memanggil koefisien model menggunakan syntax sebagai berikut.
:
Calllm(formula = Y ~ X, data = datagaji)
:
Residuals
Min 1Q Median 3Q Max -7958.0 -4088.5 -459.9 3372.6 11448.0
:
CoefficientsPr(>|t|)
Estimate Std. Error t value 25792.2 2273.1 11.35 5.51e-12 ***
(Intercept) 9450.0 378.8 24.95 < 2e-16 ***
X ---
: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Signif. codes
: 5788 on 28 degrees of freedom
Residual standard error-squared: 0.957, Adjusted R-squared: 0.9554
Multiple R-statistic: 622.5 on 1 and 28 DF, p-value: < 2.2e-16 F
2.6.2 Analisis Ragam
> anova(regresi) #memanggil hasil analisis ragam
Analysis of Variance Table
: Y
ResponsePr(>F)
Df Sum Sq Mean Sq F value 1 2.0857e+10 2.0857e+10 622.51 < 2.2e-16 ***
X 28 9.3813e+08 3.3505e+07
Residuals ---
: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Signif. codes
2.6.3 Hasil Uji Serempak (uji F)
> f_hit <- regresi$fhit[1] #menghitung statistik uji f
> f <- summary(regresi)$fstatistic
> f
value numdf dendf 622.5072 1.0000 28.0000
> p_value <- pf(f[1], f[2], f[3], lower=FALSE) #menghitung p value
> p_value
value 1.143068e-20
2.6.4 Hasil Uji Partial (uji t)
> regresi
:
Calllm(formula = Y ~ X, data = datagaji)
:
Coefficients
(Intercept) X 25792 9450
> model_sum <- summary(regresi) #membuat model_sum sebagai sebuah objek
> model_coef <- model_sum $ coefficients #model koefisien
> beta.duga <- model_coef["X", "Estimate"] #mencari beta duga untuk kecepatan
> std.error <- model_coef["X", "Std. Error"] #mencari standar error untuk kecepatan
> t_hit <- beta.duga/std.error #menghitung statistik uji t
> t_hit
1] 24.95009
[> p_value <- 2*pt(-abs(t_hit) ,df=nrow(datagaji)-ncol(datagaji)) #menghitung p value
> p_value
1] 1.143068e-20 [
##PENGUJIAN ASUMSI ###Uji Normalitas galat Uji Jarque Berra
H0 : Pengamatan menyebar normal H1 : Pengamatan tidak menyebar normal
> library(tseries)
> sisa<-residuals(regresi)
> jarque.bera.test(sisa)
Jarque Bera Test
: sisa
data-squared = 1.5691, df = 2, p-value = 0.4563 X
###Uji Saphiro Wilk
H0 : Pengamatan menyebar normal H1 : Pengamatan tidak menyebar normal
> shapiro.test(sisa)
-Wilk normality test
Shapiro
: sisa
data= 0.95234, p-value = 0.1952 W
###Uji homogenitas ragam galat Uji Breusch Pagan
H0 : asumsi homogenitas ragam galat terpenuhi H1 : asumsi homogenitas ragam galat tidak terpenuhi
> library(lmtest)
> bptest(regresi)
-Pagan test
studentized Breusch
: regresi
data= 0.39905, df = 1, p-value = 0.5276 BP
###uji non autokorelasi galat Uji DW
H0 : tidak terdapat masalah autokorelasi H1 : terdapat masalah autokorelasi
> library(lmtest)
> dwtest(regresi)
-Watson test
Durbin
: regresi
data= 1.648, p-value = 0.1178
DW : true autocorrelation is greater than 0 alternative hypothesis
3 HASIL DAN PEMBAHASAN
3.1 Analisis Grafik
3.1.1 Scatter Plot
Plot pencar atau scatter plot dapat membantu memvisualisasikan hubungan linier antara variabel dependen (respon) dan variabel independen (prediktor).
> scatter.smooth(x=datagaji$YearsExperience, y=datagaji$Salary, main="Gambar 1. Smooth Scatter Plot Salary~YearsExperience", xlab="Salary", ylab="Years Experience", pch=16, col="brown1") # scatterplot
Plot pencar bersama dengan garis smoothing di atas menunjukkan hubungan yang meningkat secara linier antara variabel ‘YearsExperience’ dan ‘Salary’. Ini adalah hal yang baik, karena salah satu asumsi yang mendasari regresi linier adalah bahwa hubungan antara variabel respon dan prediktor adalah linier dan aditif.
3.1.2 Box Plot
Box plot digunakan untuk menemukan pengamatan outlier dalam variabel. Data yang memiliki outlier di prediktor dapat secara drastis memengaruhi prediksi karena mereka dapat dengan mudah memengaruhi arah/kemiringan garis yang paling sesuai.
> par(mfrow=c(1,2)) #Membagi area grafik menjadi 2 kolom
> boxplot(datagaji$YearsExperience, main="Gambar 2.1. Boxplot Years Experience",sub=paste("Outlier rows: ", boxplot.stats(datagaji$YearsExperience)$out), col="darkseagreen1") #box plot untuk YearsExperience
>
> boxplot(datagaji$Salary, main="Gambar 2.2. Boxplot Salary",sub=paste("Outlier rows: ", boxplot.stats(datagaji$Salary)$out), col="darksalmon") #box plot untuk Salary
Dari diagram boxplot di atas, diketahui bahwa secara visual dalam data variabel prediktor “Years Experience” dan variabel respons “Salary” tidak setangkup, karena panjang garis whisker tidak sama dan median tidak berada tepat di tengah-tengah kotak. Selain itu, juga dapat diketahui bahwa dari kedua variabel data tidak terdeteksi adanya pencilan atau outlier.
3.1.3 Density Plot
Density plot digunakan untuk melihat distribusi variabel prediktor (memeriksa apakah variabel respons mendekati normalitas). Idealnya, distribusi yang mendekati normal (kurva berbentuk lonceng), tanpa miring ke kiri atau kanan.
> par(mfrow=c(1,2)) #Membagi area grafik menjadi 2 kolom
> plot(density(datagaji$YearsExperience), main="Gambar 3.1. Density Plot : Year Experience", ylab="Frequency", sub=paste("Skewness: ", round(e1071::skewness(datagaji$YearsExperience),2))) #desity plot untuk YearsExperience
> polygon(density(datagaji$YearsExperience), col="darkolivegreen3")
>
> plot(density(datagaji$Salary), main="Gambar 3.2. Density Plot : Salary", ylab="Frequency", sub=paste("Skewness: ", round(e1071::skewness(datagaji$Salary),2))) #desity plot untuk Salary
> polygon(density(datagaji$Salary), col="deepskyblue3")
Dari grafik diatas, secara visualisasi data variabel numerik bentuk distribusinya 4 cilinder.
3.2 Analisis Korelasi
Analisis korelasi pada kasus ini untuk mengukur kekuatan hubungan antara dua variabel yaitu variabel respons “Salary” dan variabel prediktor “Years Experience” dengan menggunakan metode pearson.
> cor(datagaji[1:2], method="pearson") #menghitung korelasi antara YearsExperience dengan banyaknya gaji
YearsExperience Salary1.0000000 0.9782416
YearsExperience 0.9782416 1.0000000 Salary
kuat lemah hubungan diukur diantara jarak (range) dari 0 sampai dengan 1. Dari hasil analisis di atas diketahui bahwa nilai korelasinya 0.9782416, hal ini berarti variabel “YearsExperience” dan variabel “Salary” memiliki hubungan yang sangat kuat. Selain, itu karena koefisien korelasi ditemukan positif (+) maka hubungan tersebut disebut sebagai korelasi sempurna atau hubungan linier sempurna dengan kemiringan (slope) positif.
3.3 Analisis Regresi
3.3.1 Analisis Koefisien Model
-hasil cara manual
-hasil cara built in
> X<-datagaji$YearsExperience
> Y<-datagaji$Salary
> regresi<-lm(Y~X, data=datagaji) #membentuk analisis regresi sederhana
> print(regresi)
:
Calllm(formula = Y ~ X, data = datagaji)
:
Coefficients
(Intercept) X 25792 9450
- nilai koefisien beta0 sebesar 25792 yang berarti apabila lama pengalaman kerja bernilai 0 maka jumlah gaji akan naik sebesar 25792
- nilai koefisien beta1 sebesar 9450 yang berarti apabila lama pengalaman kerja naik sebesar 1 satuan maka jumlah gaji akan naik sebsar 9450
- Bentuk persamaan regresinya adalah Y = 25792 + 9450X
3.3.2 Analisis Ragam
Analisis ragam atau anova digunakan untuk melihat perbandingan rata-rata dari dua kelompok atau lebih. Hal ini memudahkan analisis beberapa kelompok sampel yang berbeda dengan minimal risiko kesahalan. Pembentuk tabel analisis ragam: -Sumber keragaman regresi : keragaman yang disebabkan atas perbedaan perlakuan/kondisi
Galat : keragaman yang tidak dapat dikontrol(error)
Total
-Derajat bebas -Jumlah Kuadrat -Kuadrat Tengah -Fhitung -Ftabel -Kaidah keputusan Fhitung>= Ftabel-> tolak H0 (antar perlakuan berbeda yata/signifikan) Fhitung< Ftabel-> terima H0 (antar perlakuan tidak berbeda nyata)
Gambar susunan tabel: -Analisis ragam secara manual
-Analisis ragam fungsi built in
> anova(regresi) #memanggil hasil analisis ragam
Analysis of Variance Table
: Y
ResponsePr(>F)
Df Sum Sq Mean Sq F value 1 2.0857e+10 2.0857e+10 622.51 < 2.2e-16 ***
X 28 9.3813e+08 3.3505e+07
Residuals ---
: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Signif. codes
Dari dua cara dalam analisis ragam di atas diketahui bahwa semua komponen keragaman memiliki nilai yang sama. Hal tersebut dibuktikan pada derajat bebas(df) regresi=1 dan df galat(residuals)=28. Sum square atau Jumlah keragaman regresi dan residuals(galat) sama yaitu berturut-turut 2.0857e+10 dan 9.3813e+08. Mean square atau Kuadrat tengah regresi dan residuals(galat) sama yaitu berturut-turut 2.0857e+10 dan 3.3505e+07
3.3.3 Hasil Uji Serempak (uji F)
Hipotesis:
H0 : beta(1)=beta(2)=…=beta(k)=0 H1 : paling tidak terdapat salah satu beta(j) != 0
-hasil cara manual
-hasil cara dengan fungsi built in
> f_hit <- regresi$fhit[1] #menghitung statistik uji f
> f <- summary(regresi)$fstatistic
> f
value numdf dendf 622.5072 1.0000 28.0000
> p_value <- pf(f[1], f[2], f[3], lower=FALSE) #menghitung p value
> p_value
value 1.143068e-20
Tingkat signifikansi : 0.05
Statistik Uji : p-value = 1.143068e-20
Keputusan : Karena p-value(1.143068e-20) < alpha (0.05), maka tolak H0
Kesimpulan : Dengan taraf nyata 5%, dapat disimpulkan bahwa terdapat hubungan diantara dua variabel
3.3.4 Hasil Uji Partial (uji t)
hasil cara manual
hasil cara built in
> regresi
:
Calllm(formula = Y ~ X, data = datagaji)
:
Coefficients
(Intercept) X 25792 9450
> model_sum <- summary(regresi) #membuat model_sum sebagai sebuah objek
> model_coef <- model_sum $ coefficients #model koefisien
> beta.duga <- model_coef["X", "Estimate"] #mencari beta duga untuk kecepatan
> std.error <- model_coef["X", "Std. Error"] #mencari standar error untuk kecepatan
> t_hit <- beta.duga/std.error #menghitung statistik uji t
> t_hit
1] 24.95009
[> p_value <- 2*pt(-abs(t_hit) ,df=nrow(datagaji)-ncol(datagaji)) #menghitung p value
> p_value
1] 1.143068e-20 [
Tingkat signifikansi : 0.05
Statistik Uji : p-value = 1.143068e-20
Keputusan : Karena p-value(1.143068e-20) < alpha (0.05), maka tolak H0
Kesimpulan : Dengan taraf nyata 5%, dapat disimpulkan bahwa terdapat hubungan antara kedua variabel
3.3.5 Selang Kepercayaan
Selang kepercayaan tidak melewati 0 maka dapat dinyatakan bahwa tolak H0 (terdapat hubungan antara kedua variabel)
3.3.6 Koefisien Determinasi dan Adjusted Koefisien Determinasi
> summary(regresi) #memanggil koefisien model menggunakan syntax sebagai berikut.
:
Calllm(formula = Y ~ X, data = datagaji)
:
Residuals
Min 1Q Median 3Q Max -7958.0 -4088.5 -459.9 3372.6 11448.0
:
CoefficientsPr(>|t|)
Estimate Std. Error t value 25792.2 2273.1 11.35 5.51e-12 ***
(Intercept) 9450.0 378.8 24.95 < 2e-16 ***
X ---
: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Signif. codes
: 5788 on 28 degrees of freedom
Residual standard error-squared: 0.957, Adjusted R-squared: 0.9554
Multiple R-statistic: 622.5 on 1 and 28 DF, p-value: < 2.2e-16 F
\[ R^2=\frac{JK~Regresi}{JK~Total}=0.957 \] Interpretasi: Koefisien determinasi bernilai 0.957 yang berarti kemampuan variabel bebas dalam menjelaskan varians dari variabel terikatnya sebesar 95.7%
Adjusted koefisien determinasi: \[ adjusted~R^2=1-\frac{JK~Galat/(n-k)}{JK~Total/(n-1)}=0.9554 \]
Interpretasi: Adjusted koefisien determinasi bernilai 0.9554 yang berarti kemampuan variabel prediktor dalam menjelaskan variabel respon sebesar 95.54%
##Asumsi Klasik ### Uji Jarque Berra
H0 : Pengamatan menyebar normal H1 : Pengamatan tidak menyebar normal
> library(tseries)
> sisa<-residuals(regresi)
> jarque.bera.test(sisa)
Jarque Bera Test
: sisa
data-squared = 1.5691, df = 2, p-value = 0.4563 X
Tingkat signifikansi : 0.05
Statistik Uji : p-value = 0.4563
Keputusan : Karena p-value(0.4563) < alpha(0.05), maka tolak H0
Kesimpulan : Dengan taraf signifikansi 5%, dapat disimpulkan bahwa residual tidak berdistribusi/tidak menyebar normal
3.3.7 Uji Saphiro Wilk
H0 : Pengamatan menyebar normal H1 : Pengamatan tidak menyebar normal
> shapiro.test(sisa)
-Wilk normality test
Shapiro
: sisa
data= 0.95234, p-value = 0.1952 W
Tingkat signifikansi : 0.05
Statistik Uji : p-value = 0.1952 Keputusan : Karena p-value(0.1952) < alpha(0.05), maka tolak H0
Kesimpulan : Dengan taraf signifikansi 5%, dapat disimpulkan bahwa residual tidak berdistribusi/tidak menyebar normal
3.3.8 Uji Breusch Pagan
Hipotesis: H0 : asumsi homogenitas ragam galat terpenuhi H1 : asumsi homogenitas ragam galat tidak terpenuhi
> library(lmtest)
> bptest(regresi)
-Pagan test
studentized Breusch
: regresi
data= 0.39905, df = 1, p-value = 0.5276 BP
Tingkat Signifikansi: 0.05 Statistik Uji: p-value: 0.5276 Keputusan: Karena p-value(0.5276) > alpha(0.05) maka terima H0 Kesimpulan: Dengan taraf nyata 5%, dapat disimpulkan bahwa asumsi homogenitas ragam galat terpenuhi
3.3.9 Uji Durbin-Watson
Hipotesis: H0 : tidak terdapat masalah autokorelasi H1 : terdapat masalah autokorelasi
> library(lmtest)
> dwtest(regresi)
-Watson test
Durbin
: regresi
data= 1.648, p-value = 0.1178
DW : true autocorrelation is greater than 0 alternative hypothesis
Tingkat Signifikansi: 0.05 Statistik Uji: p-value: 0.1178 Keputusan: Karena p-value(0.1178) < alpha(0.05) maka tolak H0 Kesimpulan: Dengan taraf nyata 5%, dapat disimpulkan bahwa terdapat masalah autokorelasi
4 DAFTAR PUSTAKA
Dataset : https://www.kaggle.com/datasets/karthickveerakumar/salary-data-simple-linear-regression Prrabhankaran, Selva.2016.Linear Regression. Diakses pada r-statistic.co Subandriyo, Budi.2020.Bahan Ajar:Analisis Korelasi dan Regresi. Diakses pada pusdiklat.bps.go.id
Mulyono.2019.Analisis Regresi Sederhana. diakses pada bbs.binus,ac,id
Santiyasa, I Wayan.2016.Modul Kuliah:Analisis Ragam.Universitas Udayana