Latihan Soal Analisis Regresi Sederhana

Soal

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
  1. Temukan persamaan regresi dan interpretasikan hasilnya!.
  2. Lakukan Uji asumsi
  3. Lakukan Uji F
  4. Apabila stress kerja berada di nilai 40, berapa tingkat kinerja pegawai?

Pembahasan

1. Install dan Import packages yang di Butuhkan

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"

2. Mengimport / Memasukan Data

2.1 Metode 1: Menggunakan excel/csv file

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
2.2 Metode 2: Membuat dataframe langsung di Rstudio
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

3.1 Mencari Persamaan Regresi Serta Interpretasinya

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:

  1. kenaikan 1 satuan stress kerja akan mengakibatkan penurunan kinerja pegawai sebanyak 0.5114
  2. Nilai kinerja pegawai saat stress kerja 0 adalah 35.4205

3.2 Melakukan Uji Asumsi Regresi

3.2.1 Asumsi Linearitas

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

3.2.2 Asumsi Normalitas

Untuk mengecek Asumsi Normalitas, dapat dilakukan dengan 2 metode, yaitu:

Metode 1: Melakukan normal QQ-Plot

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)

Metode 2: Melakukan Uji Normalitas (KS maupun Shapiro-wilk)

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

3.2.3 Asumsi Homoskedastisitas

Untuk menganalisis Asumsi Homoskedastisitas juga dapat dilakukan 2 metode, yaitu:

Metode 1: Melakukan Scatterplot Fitted Values vs Residuals
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).

Metode 2: Melakukan Uji Heteroskedastisitas

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

3.2.4 Asumsi Independensi

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.

3.2.5 Ringkasan Uji Asumsi
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.

3.3 Melakukan Uji F

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 \]

3.4 Memprediksi tingkat kinerja pegawai saat nilai stress kerja = 20

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.

4. Kesimpulan keseluruhan

  1. Didapatkan persamaan regresi seperti berikut:

    \[ \hat{y} = 35.4205 - 0.5114 {X} \]

  2. Ringkasan untuk uji asumsi:

    Asumsi Hasil
    Asumsi Linearitas Terpenuhi
    Asumsi Normalitas Terpenuhi
    Asumsi Homoskedastisitas Terpenuhi
    Asumsi Independensi Terpenuhi
  3. Kesimpulan Uji Signifikansi Model:

    Uji F terpenuhi: Variabel Independen secara bersama-sama berpengaruh signifikan terhadap Variabel Dependen.

  4. Kinerja pegawai saat stress kerja bernilai 20 adalah 25.19318

Latihan Soal Analisis Regresi Berganda

Soal

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
  1. Temukan persamaan regresi dan interpretasikan hasilnya!

  2. Lakukan Uji asumsi

  3. Lakukan Uji F maupun uji T

  4. Lakukan prediksi ketika nilai variabel bebas seperti berikut:

    Tingkat Kehadiran = 50%

    IQ = 40

Pembahasan

1. Install dan import library yang dibutuhkan

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"

2. Mengimport / Memasukan Data

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

3.1 Mencari Persamaan Regresi dan Menginterprtasikan hasilnya

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:

  1. Kenaikan 1% tingkat kehadiran akan mengakibatkan penurunan nilai UAS sebanyak 0.03433
  2. Kenaikan 1 poin IQ akan menyebabkan kenaikan nilai UAS sebanyak 0.73723
  3. Nilai UAS ketika tingkah kehadiran 0% dan IQ 0 adalah 23.05445

3.2 Melakukan Uji Asumsi Regresi Berganda

3.2.1 Asumsi Linearitas

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:

  1. Hubungan antara varibel X1 dengan variabel y terlihat sedikit acak, sehingga dapat menjawab keanehan model yang sudah dibuat tadi.
  2. Hubungan antara variabel X2 dengan y terlihat linier positif

Karena hubungan variabel X1 dengan y yang sedikit acak, maka asumsi linearitas masih belum terpenuhi.

3.2.2 Asumsi Normalitas

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.

Metode 1: Melakukan QQ Plot 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.

Metode 2; Melakukan Uji Normalitas (Shapiro Wilk)

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.

3.2.3 Asumsi Homoskedastisitas

Untuk melakukan pengecekan terhadap asumsi Homoskedastisitas, dapat dilakuan 2 metode, yaitu metode scatterplot residuals vs fitted values, maupun dengan uji statistik breusch-pagan.

Metode 1: Melakukan Scatterplot Residuals vs Fitted Values
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.

Metode 2: Melakukan Uji Heteroskedastisitas Breusch-Pagan

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

3.2.4 Asumsi Independensi

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.

3.2.5 Asumsi Non-multikolinearitas

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.

3.2.6 Ringkasan Uji Asumsi
Asumsi Hasil
Asumsi Linearitas Terpenuhi
Asumsi Normalitas Terpenuhi
Asumsi Homoskedastisitas Terpenuhi
Asumsi Independensi Terpenuhi
Asumsi Non-Multikolinearitas Terpenuhi

3.3 Melakukan Uji Signifikansi Model

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
3.3.1 Uji Secara Stimultan (Uji F)

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 \]

3.3.2 Uji Secara Parsial (Uji T)

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 \]

3.3.2.1 Uji Parsial Variabel X1

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.

3.3.2.2 Uji Parsial Variabel X2

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.

3.4 Memprediksi Nilai y saat X1 dan X2 Berada di Nilai Tertentu

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.

4. Kesimpulan

  1. Didapatkan persamaan regresi seperti berikut:

    \[ \hat{y}=23.05445-0.03433X1+0.73723X2 \]

  2. Ringkasan untuk uji asumsi:

    Asumsi Hasil
    Asumsi Linearitas Terpenuhi
    Asumsi Normalitas Terpenuhi
    Asumsi Homoskedastisitas Terpenuhi
    Asumsi Independensi Terpenuhi
    Asumsi Non-Multikolinearitas Terpenuhi
  3. Hasil Uji Signifikansi Model:

    Uji F Terpenuhi: Variabel Independen secara bersama-sama berengaruh signifikan terhadap variabel dependen

    Uji T:

    • Variabel X1 tidak berpengaruh signifikan terhadap variabel dependen.
    • Variabel X2 berpengaruh signifikan terhadap variabel dependen.
  4. Nilai UAS siswa dengan tingkat kehadiran 50% dan memiliki 40 IQ adalah 50.8274