1 Apa perbedaan regressi Linear Sederhana dan Berganda?

  • Regresi Linear Sederhana adalah hubungan secara linear antara satu variabel independen (X) dengan variabel dependen (Y). Analisis ini digunakan untuk mengetahui hubungan antara variabel independen (X) dengan variabel dependen (Y). Selain itu juga untuk memprediksi nilai dari variabel dependen (Y) apabila nilai variabel independen (X) mengalami kenaikan atau penurunan. Rumus dari analisis regresi linear sederhana adalah sebagai berikut.

\[ \begin{align} Y'=a+bX \end{align} \] dengan

  • \(Y\) = subyek variabel yang diprediksi, atau variabel dependen, atau variabel prediktor

  • \(a\) = konstanta

  • \(b\) = koefisien atau angka arah, yang menunjukkan angka peningkatan ataupun penurunan variabel dependen yang didasarkan pada perubahan variabel independen. Jika (+) maka arah garis naik, jika (-) maka arah garis turun.

  • \(X\) = subyek pada variabel independen yang mempunyai nilai tertentu

  • Regresi Linear Berganda merupakan analisis regresi yang menjelaskan hubungan antara peubah respon (variabel dependen) dengan faktor-faktor yang memengaruhi lebih dari satu prediktor (variabel independen). Regresi linier berganda hampir sama dengan regresi linier sederhana, hanya saja pada regresi linier berganda variabel bebasnya lebih dari satu variabel penduga. Tujuan analisis regresi linier berganda adalah untuk mengukur intensitas hubungan antara dua variabel atau lebih dan membuat prediksi perkiraan nilai Y atas X. Secara umum, model dari analisis regresi linear berganda adalah sebagai berikut.

\[ \begin{align} Y&=\beta_{0}+\beta_{1}X_{1}+\beta_{2}X_{2}+\beta_{3}X_{3}+...+\beta_{n}X_{n}+ \varepsilon \\ \end{align} \] Dengan \(\beta_{0},\beta_{1},\beta_{2}, ..., \beta_{n}\) adalah koefisien atau parameter model.

Model regresi linier berganda untuk populasi di atas, dapat ditaksir berdasarkan sebuah sampel acak yang berukuran n dengan model regresi linier berganda untuk sampel adalah sebagai berikut.

\[ \begin{align} \hat{Y}&=a_{0}+a_{1}X_{1}+a_{2}X_{2}+a_{3}X_{3}+...+a_{n}X_{n} \\ \end{align} \] Dengan * \(\hat{Y}\) = Nilai taksiran untuk variabel Y * \(a_{0}\) = Taksiran bagi parameter konstanta \(a_{0}\) * \(a_{1},a_{2},a_{3}\) = Taksiran bagi parameter koefisien regersi \(a_{1},a_{2},a_{3}\)

Contoh Soal Data disajikan dalam bentuk tabel dengan X adalah umur mobil sedangkan Y adalah harga mobil tersebut, terlihat dibawah ini:

Hasil estimasinya adalah sebagai berikut:

\[ \begin{align} \Sigma X=58 \\ \end{align} \] \[ \begin{align} \Sigma Y=975 \\ \end{align} \] \[ \begin{align} \Sigma XY=4732 \\ \end{align} \] \[ \begin{align} \Sigma X^2=326 \\ \end{align} \] \[ \begin{align} S_{XX}=\Sigma X^2-{(\Sigma X)^2\over n} = 326-{(58)^2\over 10}=20.182 \\ \end{align} \] \[ \begin{align} S_{XY}=\Sigma XY-{(\Sigma X)(\Sigma Y)\over n} = 4732-{(58)(975)\over 10}=-408.909 \\ \end{align} \] \[ \begin{align} b_{1}={S_{XY}\over S_{XX}}={-408.909\over 20.182}=-20,26\\ \end{align} \] \[ \begin{align} b_{0}={1\over n}(\Sigma Y-b_{1}\Sigma X)={1\over 10}(975 -(-20,26)(58))=195.47\\ \end{align} \] Sehingga persamaan regresinya menjadi \[ \begin{align} \tag{2} \hat{Y}&=195,47-20,26X \\ \end{align} \] Kemudian, dari hasil estimasi yang diperoleh, maka dapat disimpulkan bahwa setiap umur mobil bertambah satu tahun, dan harga mobil tersebut akan turun sebesar $2,026.

2 Lakukan analisis regresi linear berganda dalam ilmu ekonometrik!

Diberikan soal sebagai berikut:

marketing <- readRDS("marketing.rds")
head(marketing,10)
##    youtube facebook newspaper sales
## 1   276.12    45.36     83.04 26.52
## 2    53.40    47.16     54.12 12.48
## 3    20.64    55.08     83.16 11.16
## 4   181.80    49.56     70.20 22.20
## 5   216.96    12.96     70.08 15.48
## 6    10.44    58.68     90.00  8.64
## 7    69.00    39.36     28.20 14.16
## 8   144.24    23.52     13.92 15.84
## 9    10.32     2.52      1.20  5.76
## 10  239.76     3.12     25.44 12.72

Kemudian carilah:

  • Apakah ada hubungan antara Youtube, Facebook, Newspaper, dengan Sales?
  • Seberapa kuat hubungannya?
  • Bagian mana yang berkontribusi pada Sales?
  • Seberapa akuratkah kita dapat memperkirakan efek dari setiap media pada Sales?
  • Seberapa akuratkah kita dapat memprediksi Sales di masa depan?
  • Apakah ada sinergi atau interaksi di antara media advertising (Youtube, Facebook, Newspaper)?

2.1 Apakah ada hubungan antara Youtube, Facebook, Newspaper, dengan Sales?

Pertama, kita menentukan hipotesisnya. Hipotesisnya adalah sebagai berikut: \[ \begin{align} H_{0}&:\beta_{youtube}=\beta_{facebook}= \beta_{newspaper}=0 \\ H_{a}&:\beta_{youtube}≠\beta_{facebook}≠\beta_{newspaper}≠0 \end{align} \]

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
linmod <- lm(sales~. , data=marketing)
slinmod <- linmod %>% summary()
summary(linmod)
## 
## Call:
## lm(formula = sales ~ ., data = marketing)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.5932  -1.0690   0.2902   1.4272   3.3951 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  3.526667   0.374290   9.422   <2e-16 ***
## youtube      0.045765   0.001395  32.809   <2e-16 ***
## facebook     0.188530   0.008611  21.893   <2e-16 ***
## newspaper   -0.001037   0.005871  -0.177     0.86    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.023 on 196 degrees of freedom
## Multiple R-squared:  0.8972, Adjusted R-squared:  0.8956 
## F-statistic: 570.3 on 3 and 196 DF,  p-value: < 2.2e-16
anova(linmod)$'Pr(>F)'[1]
## [1] 1.809337e-84

Jika dilihat, maka \(p-valuenya = 1.809337e^{-84}\). Hasil tersebut lebih kecil dari tingkat signifikansi, yaitu 0.05. Hal itu menunjukan bahwa kita tolak H0, sehingga terdapat hubungan antara Youtube, Facebook, Newspaper, dan Sales.

2.2 Seberapa kuat hubungannya?

Untuk menghitung seberapa kuat hubungan antara Youtube, Facebook, Newspaper, dengan Sales adalah dengan menggunakan rumus \(R^2\) sebagai berikut:

\[ \begin{align} \tag{2} R^2= {SSR\over SST}=1-{{SSE\over SST}} \end{align} \]

residual.se <- summary(linmod)$sigma
residual.se
## [1] 2.022612
mean1 <- mean(marketing$sales)
residual.se/mean1
## [1] 0.1202004
r_kuadrat <- summary(linmod)$r.sq
r_kuadrat
## [1] 0.8972106

Nilai dari \(R^2\) adalah 0 atau 1. Jika nilai \(R^2\) semakin mendekati 1, maka hubungan antarvariabelnya semakin kuat.

Dari perhitungan kita di atas, hasil dari \(R^2\) adalah 0.8972106, yang berarti mendekati 1, maka tingkat kekuatan hubungan antara Youtube, Facebook, Newspaper, dengan Sales masuk ke dalam kategori sangat kuat.

2.3 Bagian mana yang berkontribusi pada Sales?

Untuk mengetahui yang berkontribusi pada Sales di antara Youtube, Facebook, dan Newspaper, dapat dicari menggunakan p-value dari setiap variabel responnya. Caranya adalah sebagai berikut:

coef1 <- summary(linmod)$coefficients 
coef1
##                 Estimate  Std. Error    t value     Pr(>|t|)
## (Intercept)  3.526667243 0.374289884  9.4222884 1.267295e-17
## youtube      0.045764645 0.001394897 32.8086244 1.509960e-81
## facebook     0.188530017 0.008611234 21.8934961 1.505339e-54
## newspaper   -0.001037493 0.005871010 -0.1767146 8.599151e-01

Berdasarkan hasil di atas, didapatkan bahwa hasil p-value youtube dan facebook adalah lebih rendah dari 0.05, sedangkan p-value dari newspaper tinggi. Oleh karena itu, media yang berkontribusi dengan sales adalah Youtube dan Facebook

2.4 Seberapa akuratkah kita dapat memperkirakan efek dari setiap media pada Sales?

Untuk mengetahui keakuratan media dalam mengestimasi sales, kita dapat melihat dari koefisien determination atau \(R^2\)

slinmod$adj.r.squared 
## [1] 0.8956373

Hasilnya menunjukkan bahwa koefisien determinationnya adalah \(R^2 = 0.9242541\), yang berarti efek dari setiap media dapat mengestimasi Sales hingga 92.42%.

2.5 Seberapa akuratkah kita dapat memprediksi Sales di masa depan?

Untuk memeriksa keakuratan kita harus menemukan nilai Mean Absolute Percentage Error (MAPE)

library(dplyr)
library(magrittr)
b0 <- coef(linmod)[[1]]
b1 <- coef(linmod)[[2]]
x1 <- marketing$youtube
b2 <- coef(linmod)[[3]]
x2 <- marketing$facebook
b3 <- coef(linmod)[[4]]
x3 <- marketing$newspaper
marketing$sales_pred <- (b0 +b1*x1 +b2*x2 +b3*x3) %>% round(2)
marketing$error <- abs(marketing$sales-marketing$sales_pred) %>% round(2)
marketing$'%error' <- round(marketing$error/marketing$sales*100,2)
total_percentage_error <- sum(marketing$`%error`)
MAPE <-  total_percentage_error/nrow(marketing)
paste(total_percentage_error/nrow(marketing),"%")
## [1] "13.87845 %"

Jadi, kita mendapatkan persentase kesalahannya adalah 13,87845%. Selanjutnya akurasi untuk prediksi adalah 1−MAPE

paste("The accuracy is ", 100-MAPE,"%")
## [1] "The accuracy is  86.12155 %"

Jadi, tingkat akurasi untuk memprediksi Sales di masa depan adalah 86.12%

2.6 Apakah ada sinergi atau interaksi di antara media advertising (Youtube, Facebook, Newspaper)?

Interaksi di antara media advertising menunjukkan salah satu masalah regresi linier yang disebut \(Multikolinearitas\) . Untuk mendeteksi apakah ada masalah atau tidak, kita harus memeriksa nilai VIF. Kita dapat memeriksa nilai VIF dari model linear menggunakan fungsi \(vif()\) yang disediakan oleh \(car\) package

library(car)
## Loading required package: carData
## 
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
## 
##     recode
vif(linmod)
##   youtube  facebook newspaper 
##  1.004611  1.144952  1.145187

Hasil di atas menunjukkan bahwa semua nilai VIF nya adalah kurang dari 5, yang berarti tidak ada sinergi atau interaksi di antara advertising media.

3 Carilah contoh penerapan analisis regresi linear sederhana dalam ilmu ekonometrik!

library(devtools)
## Warning: package 'devtools' was built under R version 4.0.4
library(PoEdata)                                     
library(DT)                                          
data("food", package="PoEdata")
datatable(food)

Gambar di bawah adalah diagram sebar dari pengeluaran makanan terhadap pendapatan, menunjukkan bahwa ada hubungan positif antara pendapatan dan pengeluaran makanan.

plot(food$income, food$food_exp, 
     ylim=c(0, max(food$food_exp)),
     xlim=c(0, max(food$income)),
     xlab="weekly income in $100", 
     ylab="weekly food expenditure in $", 
     type = "p")

Untuk data pengeluaran makanan, model regresi akan menjadi:

\[ \begin{align} Y&=\beta_1+\beta_2 *X+e \\ food_{exp}&=\beta_1+\beta_2*income+e \end{align} \]

Selanjutnya kita akan menampilkan linear modelnya:

mod1 <- lm(food_exp ~ income, data = food)           
smod1<- summary(mod1)                                 
smod1
## 
## Call:
## lm(formula = food_exp ~ income, data = food)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -223.025  -50.816   -6.324   67.879  212.044 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   83.416     43.410   1.922   0.0622 .  
## income        10.210      2.093   4.877 1.95e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 89.52 on 38 degrees of freedom
## Multiple R-squared:  0.385,  Adjusted R-squared:  0.3688 
## F-statistic: 23.79 on 1 and 38 DF,  p-value: 1.946e-05
b1 <- coef(mod1)[[1]]                                # the estimated value of  β1
b2 <- coef(mod1)[[2]]                                # the estimated value of  β2
b1
## [1] 83.416
b2
## [1] 10.20964

Dari hasil di atas, kita dapat \(b_1\) nya adalah 83.416 dan \(b_2\) nya adalah 10.20964. Oleh karena itu, kita sudah bisa memasukan ke dalam rumusnya dan kita dapat menulis regresi linier yang memperkirakan sebagai berikut:

\[ \begin{align} \hat{Y}&=b_1+b_2*X \\ \hat{food_{exp}}&=83.416+10.20964*income \end{align} \]

Nilai perkiraan dari \(\beta_2\) menunjukkan bahwa pengeluaran makanan untuk keluarga rata-rata meningkat sebesar 10.209643 ketika pendapatan keluarga meningkat sebesar 1 unit. Fungsi R abline() menambahkan garis regfression ke diagram sebar yang diplot sebagai berikut:

plot(food$income, food$food_exp, 
     xlab="weekly income in $100", 
     ylab="weekly food expenditure in $", 
     type = "p")
abline(b1,b2)

3.1 Menilai Koefisien Regresi

Koefisien regresi \(b_1\) dan \(b_2\) adalah variabel acak, karena tergantung pada sampel. Dalam hal ini, kita mengulangi sampel untuk menilai koefisien regresi. Selajutnya kita membangun sejumlah subsample acak dari data makanan dan menghitung ulang \(b_1\) dan \(b_2\) . Subsample acak dapat dibuat menggunakan fungsi sample(), sebagai contoh berikut untuk mengilustrasikan \(b_2\).

N <- nrow(food)   # returns the number of observations in the dataset
C <- 50           # desired number of subsamples
S <- 38           # desired sample size

sumb2 <- 0
for (i in 1:C){   # a loop over the number of subsamples
  set.seed(3*i)   # a different seed for each subsample  
  subsample <- food[sample(1:N, size=S, replace=TRUE), ]
  mod2 <- lm(food_exp~income, data=subsample)
  #sum b2 for all subsamples:
  sumb2 <- sumb2 + coef(mod2)[[2]]
}
print(sumb2/C, digits = 3)
## [1] 9.89

Hasilnya, \(b_2=9.89\), yang adalah rata-rata dari 50 estimasi \(b_2\).

3.2 Perkiraan Variansi dan Kovariansi

(varb1 <- vcov(mod1)[1, 1])
## [1] 1884.442
(varb2 <- vcov(mod1)[2, 2])
## [1] 4.381752
(covb1b2 <- vcov(mod1)[1,2])
## [1] -85.90316

Dari hasil di atas, berarti: * Untuk hasil variansi dari \(b_1\), terlihat bahwa hasilnya sangat besar, yaitu 1884.442. Hal itu berarti terjadi penyimpangan yang sangat jauh dari rata-ratanya. Semakin besar nilai varians, semakin jauh data yang kita gunakan tersebar dari nilai rata-ratanya.

  • Untuk hasil variansi dari \(b_2\), terlihat bahwa hasilnya kecil, yaitu 4.381752. Hal itu berarti penyimpangan yang terjadi hanya sedikit dari rata-ratanya. Semakin kecil nilai varians, semakin dekat data yang kita gunakan tersebar dari nilai rata-ratanya.

  • Untuk hasil kovariansi dari \(b_1\) dan \(b_2\), terlihat bahwa hasilnya adalah negatif, yaitu -85.90316. Hal itu berarti hubungan antarvariabelnya berlawanan, jika variabel yang satu naik, maka yang satu lagi turun, atau sebaliknya.

3.3 Melihat Hubungan Non-Linear

Hubungan non-linear yang paling populer melibatkan logaritma dari variabel dependen atau independen dan fungsi polinomial. Model kuadrat membutuhkan kuadrat dari variabel independen.

\[ \begin{align} Y=\beta_1+\beta_2*X^2+e\\ \end{align} \]

Dalam R, variabel independen yang melibatkan operator matematika dapat dimasukkan dalam persamaan regresi dengan fungsi I(). Contoh berikut menggunakan dataset br dari paket PoEdata, yang mencakup harga jual dan atribut 1080 rumah di Baton Rouge, LA. Harga adalah harga jual dalam dolar, dan sqft adalah area permukaan di kaki persegi.

data(br)
mod2 <- lm(price~I(sqft^2), data=br)
b1 <- coef(mod2)[[1]]
b2 <- coef(mod2)[[2]]
sqftx=c(2000, 4000, 6000)            # given values for sqft
pricex=b1+b2*sqftx^2                 # prices corresponding to given sqft 
DpriceDsqft <- 2*b2*sqftx            # marginal effect of sqft on price
elasticity=DpriceDsqft*sqftx/pricex 
b1; b2; DpriceDsqft; elasticity      # prints results
## [1] 55776.57
## [1] 0.0154213
## [1]  61.68521 123.37041 185.05562
## [1] 1.050303 1.631251 1.817408

Maka, didapatkan bahwa \(b_1=0.0154213\) dan \(b_2=61.68521\)

Selanjutnya kita ingin menggambar diagram sebar dan melihat bagaimana fungsi kuadrat sesuai dengan data yang diberikan sebelumnya

plot(br$sqft, br$price, xlab="Total square feet", 
     ylab="Sale price, $", col="grey")
#add the quadratic curve to the scatter plot:
curve(b1+b2*x^2, col="red", add=TRUE) 

4 Sehubungan dengan soal sebelumnya, buatlah model regresi linear yang terbaik dari semua kemungkinan variable!

4.1 Model Kuadrat

kuadrat  <- lm(sales~(youtube+facebook+newspaper)^2, data=marketing)
(skuadrat <- summary(kuadrat))
## 
## Call:
## lm(formula = sales ~ (youtube + facebook + newspaper)^2, data = marketing)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -7.1087 -0.4745  0.2248  0.7172  1.8320 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         7.752e+00  3.811e-01  20.342   <2e-16 ***
## youtube             2.033e-02  1.609e-03  12.633   <2e-16 ***
## facebook            2.293e-02  1.141e-02   2.009   0.0460 *  
## newspaper           1.703e-02  1.007e-02   1.691   0.0924 .  
## youtube:facebook    9.494e-04  4.764e-05  19.930   <2e-16 ***
## youtube:newspaper  -6.643e-05  2.983e-05  -2.227   0.0271 *  
## facebook:newspaper -9.133e-05  1.969e-04  -0.464   0.6433    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.126 on 193 degrees of freedom
## Multiple R-squared:  0.9686, Adjusted R-squared:  0.9677 
## F-statistic: 993.3 on 6 and 193 DF,  p-value: < 2.2e-16

4.2 Model Polinomial

polymod  <- lm(sales~poly(youtube)+facebook+newspaper, data=marketing)
(spolymod <- summary(polymod))
## 
## Call:
## lm(formula = sales ~ poly(youtube) + facebook + newspaper, data = marketing)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.5932  -1.0690   0.2902   1.4272   3.3951 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   11.601885   0.296888  39.078   <2e-16 ***
## poly(youtube) 66.511940   2.027270  32.809   <2e-16 ***
## facebook       0.188530   0.008611  21.893   <2e-16 ***
## newspaper     -0.001037   0.005871  -0.177     0.86    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.023 on 196 degrees of freedom
## Multiple R-squared:  0.8972, Adjusted R-squared:  0.8956 
## F-statistic: 570.3 on 3 and 196 DF,  p-value: < 2.2e-16

4.3 Model Linear Log

linlog   <- lm(income~log(food_exp), data=food)
(slinlog <- summary(linlog))
## 
## Call:
## lm(formula = income ~ log(food_exp), data = food)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -8.4039 -4.0237 -0.4234  2.7475 13.8668 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    -38.483     11.154  -3.450  0.00139 ** 
## log(food_exp)   10.438      1.999   5.222 6.62e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 5.293 on 38 degrees of freedom
## Multiple R-squared:  0.4178, Adjusted R-squared:  0.4025 
## F-statistic: 27.27 on 1 and 38 DF,  p-value: 6.616e-06

4.4 Model Log Linear

loglin   <- lm(log(sales)~youtube+facebook+newspaper, data=marketing)
(sloglog <- summary(loglin))
## 
## Call:
## lm(formula = log(sales) ~ youtube + facebook + newspaper, data = marketing)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.74201 -0.05892  0.04715  0.10553  0.20666 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 1.9213236  0.0345727  55.574   <2e-16 ***
## youtube     0.0030581  0.0001288  23.735   <2e-16 ***
## facebook    0.0098349  0.0007954  12.365   <2e-16 ***
## newspaper   0.0002953  0.0005423   0.545    0.587    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1868 on 196 degrees of freedom
## Multiple R-squared:  0.7998, Adjusted R-squared:  0.7967 
## F-statistic: 260.9 on 3 and 196 DF,  p-value: < 2.2e-16

Dari keempat model yang saya buat, kita melihat pada setiap \(R^2\) nya.

  • Model Kuadrat = 0.9686
  • Model Polinomial = 0.8972
  • Model Linear Log = 0.4178
  • Model Log Linear = 0.7998

Maka, model terbaiknya adalah yang model Kuadrat.

5 References

[link] (http://repository.usu.ac.id/bitstream/handle/123456789/26987/Chapter%20II.pdf?sequence=4&isAllowed=y#:~:text=Regresi%20linier%20berganda%20adalah%20analisis,satu%20prediktor%20(variabel%20independen)

[link] (https://statmat.id/regresi-linier-sederhana/)