Email : naufal3433@gmail.com
RPubs : https://www.rpubs.com/muhammad_naufal/
Jurusan : Statistika Bisnis
Address : Jalan Gunung Galunggung 5 Blok E9, No.21
Analisis Regresi merupakan teknik analisis yang digunakan untuk pengujian pengaruh variable independent terhadap variable dependen. Regresi linier sederhana digunakan apabila variable dependen dipengaruhi hanya oleh satu variable independent. hubungan antara variabel bersifat linier, dimana perubahan pada variabel X akan diikuti oleh perubahan pada variabel Y secara tetap. Selain itu, analisis regresi linear sederhana bertujuan untuk forecast atau memprediksi nilai Y. Model regresi linear sederhana yang baik harus memenuhi asumsi eksogenitas, linearitas, autokorelasi, dan varians error.
Rumus dari analisis regresi linear sederhana adalah:
dimana:
Y’ = subyek dalam variabel dependen yang dipresiksi
a = harga Y ketika harga X = 0
b = angka koefisien regresi
X = subyek pada variabel independen yang memiliki nilai tertentu.
b adalah tangent dari perbandingan antara panjang garis variabel dependen dimana:
dimana:
R = koefisien korelasi antara variabel X dan Y
sy = simpangan baku variabel Y
sx = simpangan baku variabel X
Contoh :
Seorang manajer di suatu perusahaan ingin mengetahui apakah kopetensi pegawai (X) memengaruhi kinerja pegawai (Y) di perusahaannya
#input data
<- c(40, 55, 34, 55, 50, 52, 61, 44, 30, 22,
kopetensi 40, 64, 58, 48, 44)
<- c(4, 16, 12, 28, 15, 24, 22, 17, 4,
kinerja 14, 24, 26, 20, 9, 14)
<-(lm(kinerja~kopetensi))
KPKPsummary(KPKP)
##
## Call:
## lm(formula = kinerja ~ kopetensi)
##
## Residuals:
## Min 1Q Median 3Q Max
## -10.0782 -3.4528 -0.2676 3.9023 9.9218
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.5207 6.5821 -0.231 0.821
## kopetensi 0.3900 0.1375 2.835 0.014 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6.095 on 13 degrees of freedom
## Multiple R-squared: 0.3821, Adjusted R-squared: 0.3346
## F-statistic: 8.039 on 1 and 13 DF, p-value: 0.01405
Sedangkan regresi linier berganda atau multiple regression digunakan untuk menguji pengaruh lebih dari satu variable independent terhadap variable dependen. Model ini disebut linear berganda, karena beberapa variabel independen ini akan berpengaruh pada variabel dependen. Analisis regresi linear berganda bertujuan untuk mengetahui manakah variabel independen yang paling berpengaruh atau memiliki hubungan paling kuat terhadap variabel dependen. Selain itu, metode ini juga digunakan untuk menguji hipotesis karakteristik dependensi
Model regresi linear berganda dilukiskan dengan persamaan:
dimana:
Y = nilai prediksi dari variabel dependen
β0 = perpotongan y (nilai y ketika semua parameter lainnya disetel ke 0)
βiXi = koefisien regresi (βi) dari variabel independen (Xi) (atau pengaruh peningkatan nilai variabel independen terhadap nilai y yang diprediksi)
ϵ = kesalahan model
Contoh :
<-read.csv("C:/logaritma/datakinerja.csv") data_kinerja
library('readxl')
<-read_excel("C:/logaritma/datakinerja.xlsx",sheet=1) data_kinerja
<-lm(kinerja ~ pengalaman + semangat, data = data_kinerja)
modelregsummary(modelreg)
##
## Call:
## lm(formula = kinerja ~ pengalaman + semangat, data = data_kinerja)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.0081 -0.8552 0.0141 0.5839 1.5845
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.5704 1.9242 2.375 0.049223 *
## pengalaman 1.1013 0.1757 6.267 0.000417 ***
## semangat 0.5087 0.1759 2.893 0.023233 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.001 on 7 degrees of freedom
## Multiple R-squared: 0.8621, Adjusted R-squared: 0.8228
## F-statistic: 21.89 on 2 and 7 DF, p-value: 0.0009728
Seorang manajer di suatu perusahaan ingin mengetahui apakah kopetensi pegawai (X) memengaruhi kinerja pegawai (Y) di perusahaannya
=data.frame(kinerja,kopetensi)
df df
## kinerja kopetensi
## 1 4 40
## 2 16 55
## 3 12 34
## 4 28 55
## 5 15 50
## 6 24 52
## 7 22 61
## 8 17 44
## 9 4 30
## 10 14 22
## 11 24 40
## 12 26 64
## 13 20 58
## 14 9 48
## 15 14 44
plot(kopetensi, kinerja,
ylim=c(0,max(kinerja)),
xlim=c(0,max(kopetensi)),
xlab="kopetensi pegawai",
ylab="kinerja pegawai",
type="p")
Dari output diatas menunjukan scatter plot kinerja terhadap kopetensi pegawai yang menunjukkan bahwa terdapat hubungan positif antara kinerja pegawai dan kopetensi pegawai.
Untuk menganalisa suatu program linear, ada beberapa asumsi yang harus dipenuhi, yaitu :
Karena kita hanya memiliki satu variabel independen dan satu variabel dependen, kami tidak perlu menguji hubungan tersembunyi di antara variabel. Jika Anda mengetahui bahwa Anda memiliki autokorelasi dalam variabel (yaitu beberapa observasi dari subjek uji yang sama), jangan lanjutkan dengan regresi linier sederhana! Gunakan model yang lebih terstruktur seperti model mixed-effect.
Untuk mengecek normalitasnya dengan menggunakan fungsi hist() seperti berikut.
<- mean(kopetensi)
avg <- sd(kopetensi)
stdev hist(kopetensi, xlab = "kopetensi pegawai", main="Histogram dari Kopetensi Pegawai", freq = FALSE)
curve(dnorm(x, avg, stdev), add = TRUE, col=2)
Pada hubungan antar variabel bebas dan terikat ini harus linear sehingga dapat dilakukan dilakukan pengujian dengan plot untuk melihat pada distribusi titik datanya apakah dapat di gambarkan dengan linear.
library("gridExtra")
library("ggplot2")
<- ggplot(KPKP)+
glinear geom_point(aes(x = kinerja,
y = kopetensi),
shape = 1)+
geom_smooth(aes(x = kinerja,
y = kopetensi),
method = "lm",
formula = "y~x",
color = "red")
glinear
Pada plot diatas dapat diamati bahwa dapat disebut linear.
Hipotesis dan tingkat signifikansinya adalah:
Untuk melihat summatry dari model linier regresi sederhana kita dapat menggunakan lm() dan summary() seperti pada contoh nomor 1
summary(KPKP)
##
## Call:
## lm(formula = kinerja ~ kopetensi)
##
## Residuals:
## Min 1Q Median 3Q Max
## -10.0782 -3.4528 -0.2676 3.9023 9.9218
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.5207 6.5821 -0.231 0.821
## kopetensi 0.3900 0.1375 2.835 0.014 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6.095 on 13 degrees of freedom
## Multiple R-squared: 0.3821, Adjusted R-squared: 0.3346
## F-statistic: 8.039 on 1 and 13 DF, p-value: 0.01405
dapat dilihat dari hasil, bahwa β1=−1.52074 dan β2=0.3900. Sehingga estimasi dari y adalah:
y=β1+β2X
y=−1.5207+0.3900X
Kemudian kita cari p-value menggunakan fungsi anova()
<-anova(KPKP)
anovaKPKP$`Pr(>F)`[1] anovaKPKP
## [1] 0.01404875
Interpretasi : Pada kopetensi pegawai terhadap kinerja pegawai ini memiliki hubungan yang signifikan yang dapat dilihat dari tabel output pada p-value sebesar 0.0141 ( ’*’ ini menandakan sudah signifikan). Model ini dapat dilihat kuat atau tidaknya dapat dilihat pada R-squared: 0.3346 / 33% ini dapat diartikan bahwa datanya belum cukup kuat (mendekati 99% / 80%).Maka dapat dijelaskan, jika kopetensi pegawai naik sebesai 1 unit maka kinerja pegawai akan naik sebesar 0.3670.
library(data.table)
<-as.data.table(data_kinerja)
HDD HDD
## karyawan pengalaman semangat kinerja
## 1: A 6 10 17
## 2: B 5 6 13
## 3: C 4 7 12
## 4: D 8 4 17
## 5: E 9 3 15
## 6: F 3 5 11
## 7: G 2 8 11
## 8: H 8 4 16
## 9: I 3 10 12
## 10: J 9 3 15
Untuk menganalisa suatu program linear, ada beberapa asumsi yang harus dipenuhi, yaitu :
Pada pengujian hubungan antara variabel Independensi menggunakan fungsi cor yaang dapat memastikan korelasinya tidak terlalu tinggi. Pada kasus ini variabel bebasnya lebih dari 1, maka harus diperiksa apakah ada korelasi antar variabel. Jika korelasi mendekati 1 maka terdapat hubungan timpal balik positif. Jika mendekati 0, maka tidak ada korelasi. Dan jika mendekati -1 maka terdapat hubungan timpal balik negatif.
cor(data_kinerja$pengalaman, data_kinerja$semangat)
## [1] -0.7025763
Dari output korelasi ini berjumlah -0.7025763 yang artinya terdapat hubungan timpal balik negatif.
<- mean(HDD$kinerja)
avg2 <- sd(HDD$kinerja)
stdev2 hist(HDD$kinerja, xlab = "kinerja", main="", freq=FALSE)
curve(dnorm(x, avg2, stdev2), add = TRUE, col="blue")
### Linearitas Pada linearitas ini dapat melihat hubungan antara variabel bebas dan variabel terikat sehingga harus linear. Maka dalam linearitas menggunakan plot pencar sebagai visualisasinya yang berguna untuk melihat apakah distribusi titik data dapat dijelaskan dengan garis lurus.
<- ggplot(HDD)+
glinear2 geom_point(aes(x = semangat,
y = kinerja),
shape = 1)+
geom_smooth(aes(x = semangat ,
y = kinerja),
method = "lm",
formula = "y~x",
color = "yellow")
<- ggplot(HDD)+
glinear3 geom_point(aes(x = pengalaman,
y = kinerja),
shape = 1)+
geom_smooth(aes(x = pengalaman,
y = kinerja),
method = "lm",
formula = "y~x",
color = "yellow")
grid.arrange(glinear2, glinear3, nrow = 1, ncol =2)
Dari kedua plot diatas, pada hubungan antara pengalaman dan kinerja dapat diperkirakan bentuknya garis linear. Sedangkan hubungan antara semangat dan kinerja sedikit kurang jelas namun hubungan tersebut masih terlihat linier. Dengan demikian akan dilanjutkan dengan regresi linier.
Hipotesis dan tingkat signifikansinya adalah:
summary(modelreg)
##
## Call:
## lm(formula = kinerja ~ pengalaman + semangat, data = data_kinerja)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.0081 -0.8552 0.0141 0.5839 1.5845
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.5704 1.9242 2.375 0.049223 *
## pengalaman 1.1013 0.1757 6.267 0.000417 ***
## semangat 0.5087 0.1759 2.893 0.023233 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.001 on 7 degrees of freedom
## Multiple R-squared: 0.8621, Adjusted R-squared: 0.8228
## F-statistic: 21.89 on 2 and 7 DF, p-value: 0.0009728
dapat dilihat dari hasil, bahwa β0=4.5704, β1=1.1013, dan β2=0.5087. Sehingga estimasi dari y adalah:
Kemudian cari p-value menggunakan fungsi anova().
<- anova(modelreg)
anovaHD $`Pr(>F)`[1] anovaHD
## [1] 0.0005697183
Pada pengalaman terhadap kinerjae ini memiliki hubungan yang signifikan yang dapat dilihat dari tabel output pada p-value sebesar 0.0005 ( ’*’ ini menandakan sudah signifikan). Model ini dapat dilihat kuat atau tidaknya dapat dilihat pada R-squared: 0.8228 / 82% ini dapat diartikan bahwa datanya sudah cukup kuat.Maka dapat dijelaskan, jika pengalaman turun sebesai 1 unit maka kinerja ini akan turun sebesar 1.1013.
Pada semangat terhadap kinerja ini memiliki hubungan yang signifikan yang dapat dilihat dari tabel output pada p-value sebesar 0.0005 ( ’*’ ini menandakan sudah signifikan). Model ini dapat dilihat kuat atau tidaknya dapat dilihat pada R-squared: 0.8228 / 82% ini dapat diartikan bahwa datanya sudah cukup kuat. Maka dapat dijelaskan, jika pengalamang naik sebesai 1 unit kinerja disease ini akan naik sebesar 0.5087.
Dari hasil didapatkan bahwa p−value≤α dimana α=0.01 pada kasus karyawan. Berarti pada data karyawan, terdapat hubungan yang signifikan antara variabel semangat dan variabel pengalaman terhadap variabel kinerja dengan tingkat kepercayaan 82%.
<- summary(modelreg)
Modellinear Modellinear
##
## Call:
## lm(formula = kinerja ~ pengalaman + semangat, data = data_kinerja)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.0081 -0.8552 0.0141 0.5839 1.5845
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.5704 1.9242 2.375 0.049223 *
## pengalaman 1.1013 0.1757 6.267 0.000417 ***
## semangat 0.5087 0.1759 2.893 0.023233 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.001 on 7 degrees of freedom
## Multiple R-squared: 0.8621, Adjusted R-squared: 0.8228
## F-statistic: 21.89 on 2 and 7 DF, p-value: 0.0009728
summary(modelreg)$r.squared
## [1] 0.8621407
<- lm(kinerja~(pengalaman+semangat)^2, data=data_kinerja)
kuadrat <- summary(kuadrat)
Modelkuadrat Modelkuadrat
##
## Call:
## lm(formula = kinerja ~ (pengalaman + semangat)^2, data = data_kinerja)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.74783 -0.58824 -0.07398 0.35279 1.46328
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.46035 2.68270 3.154 0.0197 *
## pengalaman 0.49432 0.36211 1.365 0.2212
## semangat -0.12040 0.37309 -0.323 0.7579
## pengalaman:semangat 0.11261 0.06101 1.846 0.1145
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.8637 on 6 degrees of freedom
## Multiple R-squared: 0.9121, Adjusted R-squared: 0.8681
## F-statistic: 20.74 on 3 and 6 DF, p-value: 0.001437
summary(kuadrat)$r.squared
## [1] 0.9120671
<- lm(kinerja~poly(pengalaman,3)+semangat, data=data_kinerja)
polinomial <- summary(polinomial)
Modelpolin Modelpolin
##
## Call:
## lm(formula = kinerja ~ poly(pengalaman, 3) + semangat, data = data_kinerja)
##
## Residuals:
## 1 2 3 4 5 6 7 8
## 0.327005 -0.568019 -0.169082 0.559185 -0.044391 0.644098 -0.264952 -0.440815
## 9 10
## 0.001363 -0.044391
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 11.9287 0.6680 17.857 1.01e-05 ***
## poly(pengalaman, 3)1 7.8045 0.8105 9.629 0.000205 ***
## poly(pengalaman, 3)2 -1.3725 0.6005 -2.286 0.071037 .
## poly(pengalaman, 3)3 -2.1751 0.5530 -3.933 0.011033 *
## semangat 0.3285 0.1076 3.052 0.028355 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5393 on 5 degrees of freedom
## Multiple R-squared: 0.9714, Adjusted R-squared: 0.9486
## F-statistic: 42.5 on 4 and 5 DF, p-value: 0.000473
summary(polinomial)$r.squared
## [1] 0.9714307
<- lm(log(kinerja)~pengalaman+semangat, data=data_kinerja)
loglin <- summary(loglin)
ModelLogLinear ModelLogLinear
##
## Call:
## lm(formula = log(kinerja) ~ pengalaman + semangat, data = data_kinerja)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.067904 -0.054086 0.004226 0.039262 0.101639
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.93919 0.12420 15.613 1.07e-06 ***
## pengalaman 0.08083 0.01134 7.125 0.000189 ***
## semangat 0.03645 0.01135 3.210 0.014850 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.06463 on 7 degrees of freedom
## Multiple R-squared: 0.8909, Adjusted R-squared: 0.8597
## F-statistic: 28.57 on 2 and 7 DF, p-value: 0.0004295
summary(loglin)$r.squared
## [1] 0.8908584
<- lm(kinerja~log(pengalaman)+log(semangat), data=data_kinerja)
linlog <- summary(linlog)
Modellinearlog Modellinearlog
##
## Call:
## lm(formula = kinerja ~ log(pengalaman) + log(semangat), data = data_kinerja)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.2529 -0.5730 -0.1647 0.6312 1.4529
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.9817 3.0862 0.318 0.759687
## log(pengalaman) 5.3335 0.9162 5.822 0.000649 ***
## log(semangat) 2.5065 1.0759 2.330 0.052640 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.036 on 7 degrees of freedom
## Multiple R-squared: 0.8524, Adjusted R-squared: 0.8102
## F-statistic: 20.21 on 2 and 7 DF, p-value: 0.001236
summary(linlog)$r.squared
## [1] 0.8523946
<- lm(log(kinerja)~log(pengalaman)+log(semangat), data=data_kinerja)
loglog <- summary(loglog)
Modelloglog Modelloglog
##
## Call:
## lm(formula = log(kinerja) ~ log(pengalaman) + log(semangat),
## data = data_kinerja)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.08479 -0.03384 -0.01354 0.03869 0.09200
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.67974 0.19851 8.462 6.36e-05 ***
## log(pengalaman) 0.39151 0.05893 6.644 0.000292 ***
## log(semangat) 0.17843 0.06920 2.578 0.036560 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.06664 on 7 degrees of freedom
## Multiple R-squared: 0.884, Adjusted R-squared: 0.8508
## F-statistic: 26.66 on 2 and 7 DF, p-value: 0.0005322
summary(loglog)$r.squared
## [1] 0.8839609
Model terbaik adalah model yang memiliki R^2 tertinggi. Pada kasus ini R^2 tertinggi berada pada model polinomial yaitu sebesar 0.9714307. Maka dapat disimpulkan model terbaik adalah Model Polinomial dimana variabel pengalaman di polinomialkan.