Diketahui data hubungan antara Stres Kerja dan Kinerja Pegawai di suatu perusahaan seperti berikut:
| No | Stress Kerja (X) | Kinerja Pegawai (y) |
|---|---|---|
| 1 | 28 | 21 |
| 2 | 20 | 24 |
| 3 | 21 | 27 |
| 4 | 23 | 22 |
| 5 | 17 | 26 |
| 6 | 25 | 24 |
| 7 | 22 | 23 |
| 8 | 19 | 25 |
| 9 | 27 | 21 |
| 10 | 25 | 22 |
| 11 | 24 | 25 |
| 12 | 17 | 28 |
Library yang dibutuhkan adalah:
lmtest
car
library("lmtest") # Digunakan untuk melakukan uji bp dan uji dw
library("car") # Digunakan untuk menghitung nilai VIF
library("readxl")
print("Library sukses di load")
## [1] "Library sukses di load"
Karena secara bawaan R tidak menyediakan fungsi untuk mengimport data berformat excel, maka kita memerlukan package tambahan, yaitu read excel.
df <- read_excel(path = "Dataframe.xlsx")
print("Data berhasil di import")
## [1] "Data berhasil di import"
df # Menampilkan data hasil import
## # A tibble: 12 × 2
## X Y
## <dbl> <dbl>
## 1 28 21
## 2 20 24
## 3 21 27
## 4 23 22
## 5 17 26
## 6 25 24
## 7 22 23
## 8 19 25
## 9 27 21
## 10 25 22
## 11 24 25
## 12 17 28
X <- c(28, 20, 21, 23, 17, 25, 22, 19, 27, 25, 24, 17) # Membuat vector untuk data X
Y <- c(21, 24, 27, 22, 26, 24, 23, 25, 21, 22, 25, 28) # Membuat vector untuk data Y
df <- data.frame(X, Y) # Menggabungkan vector X dan Y agar menjadi dataframe
print("Data berhasil di import")
## [1] "Data berhasil di import"
df # Menampilkan data hasil import
## X Y
## 1 28 21
## 2 20 24
## 3 21 27
## 4 23 22
## 5 17 26
## 6 25 24
## 7 22 23
## 8 19 25
## 9 27 21
## 10 25 22
## 11 24 25
## 12 17 28
Dapat dilihat bahwa kedua metode akan menghasilkan hasil yang sama
model = lm(formula=Y~X, data=df) # Membuat model regresi linier dengan metode OLS
model # Menampilkan koefisien regresi dari model yang sudah didapatkan
##
## Call:
## lm(formula = Y ~ X, data = df)
##
## Coefficients:
## (Intercept) X
## 35.4205 -0.5114
Setelah dilakukan pemodelan, didapatkan persamaan model regresi seperti berikut:
\[
\hat{y} = 35.4205 - 0.5114X
\\ \hat{\beta_{0}} = 35.4205
\\ \hat{\beta_{1}} = 0.5114
\]
Model ini bisa kita interpretasikan bahwa:
Asumsi linearitas dapat kita uji dengan menggunakan scatter plot X vs Y, didapatkan hasil seperti berikut:
plot(x = df$X, y = df$Y, xlab = "X", ylab = "y")
Setelah dilakukan plot, dapat terlihat bahwa data memiliki pola linier menurun, sehingga asumsi linearitas dapat dipenuhi
Untuk mengecek Asumsi Normalitas, dapat dilakukan dengan 2 metode, yaitu:
Salah satu cara mengecek asumsi normalitas pada model adalah dengan menggunakan QQ Plot normal pada residu. Dapat dilakukan dengan cara seperti berikut:
qqPlot(model$residuals)
## [1] 3 11
Setelah dilakukan Plot, hasil yang didapatkan masih kurang jelas untuk diambil kesimpulan. Oleh karena itu kita bisa melakukan Metode 2 (yaitu melakukan Uji Normalitas)
Uji yang dilakukan adalah uji shapiro-wilk dengan hipotesis seperti berikut: \[ H_0: \text{Data residu berdistribusi normal} \\ H_1: \text{Data residu tidak berdistribusi normal} \]
shapiro.test(model$residuals)
##
## Shapiro-Wilk normality test
##
## data: model$residuals
## W = 0.88018, p-value = 0.08812
Didapatkan bahwa: \[p-value=0.08812=8.812\%\ge\alpha=5\%\], maka gagal tolak H0 artinya Data residu berdistribusi normal dan asumsi normalitas terpenuhi
Untuk menganalisis Asumsi Homoskedastisitas juga dapat dilakukan 2 metode, yaitu:
plot(model)
Berdasarkan scatterplot residu vs fitted value terlihat bahwa data menyebar secara acak, sehingga asumsi Homoskedastisitas dapat terpenuhi. Namun, apabila ingin mendapatkan hasil yang lebih meyakinkan, kita dapat melakukan uji Heteroskedastisitas dengan Breusch-Pagan test (Metode 2).
Uji Breusch-Pagan memiliki hipotesis sebagai berikut:
\[ \text{H}_0:\sigma^2_\mu=0 \text{ (Variansi residual model = 0, tidak terjadi Heteroskedastisitas)} \\\text{H}_1:\sigma^2_\mu\ne0 \text{ (Variansi residual model != 0, terjadi Heteroskedastisitas)} \]
bptest(model)
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 0.2278, df = 1, p-value = 0.6332
Karena di dapatkan bahwa:
\[p-value=63.32\%\ge\alpha=5\%\]
Maka didapatkan keputusan untuk gagal menolak H0, sehingga tidak terjadi Heteroskedastisitas dan asumsi Homoskedastisitas terpenuhi
Terakhir, Asumsi Independensi dapat diuji menggunakan uji Durbin-Watson untuk mengetahui apakah ada autokorelasi pada data. Hipotesis uji Durbin-Watson sendiri seperti berikut:
\[ H_0:\rho=0\text{ (Tidak terjadi autokorelasi, Data Independen)} \\H_1:\rho\ne0\text{ (Terjadi autokorelasi, Data tidak Independen)} \]
dwtest(model)
##
## Durbin-Watson test
##
## data: model
## DW = 2.4306, p-value = 0.7848
## alternative hypothesis: true autocorrelation is greater than 0
Karena didapatkan bahwa:
\[ p-value=78.48\%\ge\alpha=5\% \]
Maka, didapatkan keputusan untuk gagal menolak H0, mengartikan bahwa tidak terjadi autokorelasi. Sehingga Asumsi Independensi Terpenuhi.
| Asumsi | Hasil |
|---|---|
| Asumsi Linearitas | Terpenuhi |
| Asumsi Normalitas | Terpenuhi |
| Asumsi Homoskedastisitas | Terpenuhi |
| Asumsi Independensi | Terpenuhi |
Karena semua asumsi terpenuhi, dapat diartikan bahwa model yang telah dibuat merupakan model yang baik.
Uji F dilakukan untuk melihat pengaruh dari seluruh variabel bebas secara bersama-sama terhadap variabel terikat. Hipotesis Uji F adalah sebagai berikut:
\[ H_0:\beta_1=0 \\H_1:\beta_1\ne0 \]
summary(model)
##
## Call:
## lm(formula = Y ~ X, data = df)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.6591 -0.8381 -0.6250 1.2954 2.3182
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 35.4205 2.6164 13.538 9.33e-08 ***
## X -0.5114 0.1157 -4.418 0.0013 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.402 on 10 degrees of freedom
## Multiple R-squared: 0.6612, Adjusted R-squared: 0.6274
## F-statistic: 19.52 on 1 and 10 DF, p-value: 0.001298
Didapatkan bahwa:
\[ p-value=0.1298\%\le\alpha=5% \]
maka diambil keputusan untuk menolak H0, artinya\[ \beta_1\ne0 \]
Untuk melakukan prediksi tingkat kinerja pegawai pada saat stress kerja berada di nilai tertentu, kita dapat melakukan cara berikut:
# 1. Melakukan cek nilai koefisien pada model
model$coefficients
## (Intercept) X
## 35.4204545 -0.5113636
Setelah di dapatkan koefisienya, kita dapat membuat suatu fungsi linier di R lalu memasukan suatu nilai tersebut ke fungsi yang telah dibuat.
# 2. Membuat persamaan model
persamaan_model <- function(X){
return (35.4204545 - 0.5113636 * X)
}
# 3. Memasukan nilai stress kerja = 20
persamaan_model(20)
## [1] 25.19318
Sehingga didapatkan bahwa, ketika stress kerja bernilai 20, tingkat kinerja pegawai diprediksikan akan bernilai 25.19318.
Didapatkan persamaan regresi seperti berikut:
\[ \hat{y} = 35.4205 - 0.5114 {X} \]
Ringkasan untuk uji asumsi:
| Asumsi | Hasil |
|---|---|
| Asumsi Linearitas | Terpenuhi |
| Asumsi Normalitas | Terpenuhi |
| Asumsi Homoskedastisitas | Terpenuhi |
| Asumsi Independensi | Terpenuhi |
Kesimpulan Uji Signifikansi Model:
Uji F terpenuhi: Variabel Independen secara bersama-sama berpengaruh signifikan terhadap Variabel Dependen.
Kinerja pegawai saat stress kerja bernilai 20 adalah 25.19318
Diketahui data hubungan antara Tingkat Kehadiran, IQ, dan Nilai UAS di suatu kelas seperti berikut:
| Siswa | Tingkat Kehadiran (%) (X1) | IQ (X2) | Nilai UAS (Y) |
|---|---|---|---|
| 1 | 60 | 110 | 65 |
| 2 | 70 | 120 | 70 |
| 3 | 75 | 115 | 75 |
| 4 | 80 | 130 | 75 |
| 5 | 80 | 110 | 80 |
| 6 | 90 | 120 | 80 |
| 7 | 95 | 120 | 85 |
| 8 | 95 | 125 | 95 |
| 9 | 100 | 110 | 90 |
| 10 | 100 | 120 | 98 |
Temukan persamaan regresi dan interpretasikan hasilnya!
Lakukan Uji asumsi
Lakukan Uji F maupun uji T
Lakukan prediksi ketika nilai variabel bebas seperti berikut:
Tingkat Kehadiran = 50%
IQ = 40
Packages yang dibutuhkan yaitu:
lmtest (Digunakan untuk melakukan uji durbin-watson dan breusch-pagan)
car (Digunakan untuk melakukan perhitungan nilai VIF)
ggplot
GGally (digunakan untuk membuat pairplot)
library("car")
library("lmtest")
library("ggplot2")
library("GGally")
print("Packages sudah berhasil di-load")
## [1] "Packages sudah berhasil di-load"
Sama seperti Analisis Regresi Sederhana, kita dapat melakukan import data dengan 2 metode (metode excel dan membuat data frame). Tetapi, agar mempersingkat waktu, kita melakukannya melalui metode membuat data frame saja.
X1 <- c(110, 120, 115, 130, 110, 120, 120, 125, 110, 120)
X2 <- c(60, 70, 75, 80, 80, 90, 95, 95, 100, 100)
Y <- c(65, 70, 75, 75, 80, 80, 85, 95, 90, 98)
df <- data.frame(X1, X2, Y)
df
## X1 X2 Y
## 1 110 60 65
## 2 120 70 70
## 3 115 75 75
## 4 130 80 75
## 5 110 80 80
## 6 120 90 80
## 7 120 95 85
## 8 125 95 95
## 9 110 100 90
## 10 120 100 98
model = lm(formula=Y~., data=df) # Melakukan regresi dengan formula variabel Y dipengaruhi oleh semua variabel selain Y.
model
##
## Call:
## lm(formula = Y ~ ., data = df)
##
## Coefficients:
## (Intercept) X1 X2
## 23.05445 -0.03433 0.73723
Setelah dilakukan pemodelan regresi menggunakan metode ols, didapatkan hasil/persamaan seperti berikut:
\[ \hat{y}=23.05445-0.03433X1+0.73723X2 \\\text{dimana :} \\\hat{\beta}_0=23.05445 \\\hat{\beta}_1=-0.03433 \\\hat{\beta}_2=0.73723 \]
Model ini bisa kita interpretasikan bahwa:
Untuk melakukan pengecekan terhadap asumsi linearitas, kita dapat menggunakan scatter plot variabel y terhadap semua variabel X.
ggpairs(df)
Berdasarkan hasil pairplot, dapat disimpulkan bahwa:
Karena hubungan variabel X1 dengan y yang sedikit acak, maka asumsi linearitas masih belum terpenuhi.
Untuk melakukan pengecekan terhadap asumsi normalitas, dapat dilakukan 2 metode, yaitu dengan melakan QQ Plot pada data residu maupun melakukan uji normalitas pada data residu.
qqPlot(model$residuals)
## [1] 8 10
Berdasarkan hasil QQ plot, dapat terlihat bahwa data residu hampir berada di garis distribusi normal. Namun, untuk menarik kesimpulan yang lebih meyakinkan lagi, kita dapat melakukan Uji Normalitas Statistik.
Hipotesis dari Uji Normalitas Shapiro Wilk adalah sebagai berikut:
\[ H_0: \text{Data residu berdistribusi normal} \\H_1: \text{Data residu tidak berdistribusi normal} \]
shapiro.test(model$residuals)
##
## Shapiro-Wilk normality test
##
## data: model$residuals
## W = 0.95125, p-value = 0.6833
Karena didapatkan bahwa:
\[ p-value=68.33\%\ge\alpha=5\% \]
maka didapatkan kesimpulan untuk gagal menolak H0, artinya data residu berdistribusi normal dan Asumsi Normalitas Terpenuhi.
Untuk melakukan pengecekan terhadap asumsi Homoskedastisitas, dapat dilakuan 2 metode, yaitu metode scatterplot residuals vs fitted values, maupun dengan uji statistik breusch-pagan.
plot(model)
Setelah dilakukan Scatterplot Residuals vs Fitted Values, masih belum terlihat jelas pola datanya, sehinga dapat dilakukan Uji Statistik Breusch-Pagan agar mendapat kesimpulan yang lebih jelas.
Uji Breusch-Pagan memiliki hipotesis sebagai berikut:
\[ \text{H}_0:\sigma^2_\mu=0 \text{ (Variansi residual model = 0, tidak terjadi Heteroskedastisitas)} \\\text{H}_1:\sigma^2_\mu\ne0 \text{ (Variansi residual model != 0, terjadi Heteroskedastisitas)} \]
bptest(model)
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 5.905, df = 2, p-value = 0.05221
Karena didapatkan bahwa:
\[ p-value=5.221\%\ge\alpha=5\% \]
maka didapatkan kesimpulan untuk gagal menolak H0, tidak terjadi Heteroskedastisitas dan Asumsi Homoskedastisitas Terpenuhi
Terakhir, Asumsi Independensi dapat diuji menggunakan uji Durbin-Watson untuk mengetahui apakah ada autokorelasi pada data. Hipotesis uji Durbin-Watson sendiri seperti berikut:
\[ H_0:\rho=0\text{ (Tidak terjadi autokorelasi, Data Independen)} \\H_1:\rho\ne0\text{ (Terjadi autokorelasi, Data tidak Independen)} \]
dwtest(model)
##
## Durbin-Watson test
##
## data: model
## DW = 2.594, p-value = 0.8013
## alternative hypothesis: true autocorrelation is greater than 0
Karena didapatkan bahwa:
\[ p-value=80.13\%\ge\alpha=5\% \]
Maka, didapatkan keputusan untuk gagal menolak H0, mengartikan bahwa tidak terjadi autokorelasi. Sehingga Asumsi Independensi Terpenuhi.
Untuk melakukan pengecekan asumsi non-multikolinearitas, dapat dilakukan penghitungan VIF. Apabila nilai VIF suatu variabel bebas > 10, maka dapat diartikan bahwa terjadi gejala multikolinearitas.
vif(model)
## X1 X2
## 1.055571 1.055571
Karena semua nilai VIF kurang dari 10, maka tidak terjadi multikolinearitas dan Asumsi Non-Multikolinearitas terpenuhi.
| Asumsi | Hasil |
|---|---|
| Asumsi Linearitas | Terpenuhi |
| Asumsi Normalitas | Terpenuhi |
| Asumsi Homoskedastisitas | Terpenuhi |
| Asumsi Independensi | Terpenuhi |
| Asumsi Non-Multikolinearitas | Terpenuhi |
Untuk melakukan Uji Signifikansi model, dapat dilakukan dengan 1 syntax yang dapat langsung menampilkan kedua hasilnya. Syntax yang digunakan adalah:
summary(model)
##
## Call:
## lm(formula = Y ~ ., data = df)
##
## 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
## X1 -0.03433 0.22051 -0.156 0.880686
## X2 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
Uji F dilakukan untuk melihat pengaruh dari seluruh variabel bebas secara bersama-sama terhadap variabel terikat. Hipotesis Uji F adalah sebagai berikut:
\[ H_0:\beta_1=\beta_2=0 \\H_1:\beta_i\ne0;i=1,2 \]
Didapatkan bahwa:
\[ p-value=0.07\%\le\alpha=5\% \]
maka diambil keputusan untuk menolak H0, artinya\[ H_1:\beta_i\ne0;i=1,2 \]
Karena didapatkan bahwa setidaknya ada 1 variabel independen yang berpengaruh signifikan terhadap model, maka kita dapat melanjutkan ke Uji Secara Parsial untuk mengetahui variabel mana saja yang berpengaruh signifikan.
Uji T sendiri memiliki hipotesis seperti berikut:
\[ H_0:\beta_i=0;i=1,2 \\H_1:\beta_i\ne0;i=1,2 \]
Didapatkan bahwa:
\[ p-value=88\%\ge\alpha=5\% \]
maka diambil kesimpulan untuk gagal menolak H0, mengartikan bahwa variabel X1 tidak berpengaruh secara signifikan kepada variabel y.
Didapatkan bahwa:
\[ p-value=0.0264\%\le\alpha=5\% \]
maka diambil kesimpulan untuk menolak H0, mengartikan bahwa variabel X2 berpengaruh secara signifikan kepada variabel y.
Untuk mengetahui nilai UAS pada variabel bebas berada di nilai:
Tingkat Kehadiran = 50%
IQ = 40
Dapat dilakukan dengan cara:
model$coefficients
## (Intercept) X1 X2
## 23.0544545 -0.0343275 0.7372330
Setelah di dapatkan koefisienya, kita dapat membuat suatu fungsi linier di R lalu memasukan suatu nilai tersebut ke fungsi yang telah dibuat.
persamaan_model <- function(X1, X2){
return (23.0544545 - 0.0343275 * X1 + 0.7372330 * X2)
}
persamaan_model(X1 = 50, X2 = 40)
## [1] 50.8274
Sehingga didapatkan bahwa, ketika siswa memiliki tingkat kehadiran 50% dan memiliki IQ 40, nilai UAS yang didapatkan adalah 50.8274.
Didapatkan persamaan regresi seperti berikut:
\[ \hat{y}=23.05445-0.03433X1+0.73723X2 \]
Ringkasan untuk uji asumsi:
| Asumsi | Hasil |
|---|---|
| Asumsi Linearitas | Terpenuhi |
| Asumsi Normalitas | Terpenuhi |
| Asumsi Homoskedastisitas | Terpenuhi |
| Asumsi Independensi | Terpenuhi |
| Asumsi Non-Multikolinearitas | Terpenuhi |
Hasil Uji Signifikansi Model:
Uji F Terpenuhi: Variabel Independen secara bersama-sama berengaruh signifikan terhadap variabel dependen
Uji T:
Nilai UAS siswa dengan tingkat kehadiran 50% dan memiliki 40 IQ adalah 50.8274