Analisis Regresi Linear Berganda Menggunakan Software R

Ronauli Nova Angelina Pakpahan

14 Mei 2022

1 PENDAHULUAN

1.1 Latar Belakang Kasus

Pengembangan budidaya usahatani kedelai memiliki potensi yang menjanjikan. Hanya saja ketersediaan air menjadi faktor penghambat pada budidaya pada lahan kering, mengingat curah hujan yang sangat rendah. Penjelasan tersebut mendorong penulis untuk mengkaji lebih dalam terkait upaya peningkatan produksi usahatani kedelai pada lahan kering seperti di Kabupaten Lombok tengah dengan mempertimbangkan faktor-faktor input produksi yang mempengaruhinya. Penelitian ini bertujuan untuk menyeldiki faktor-faktor yang diduga berpengaruh pada produksi kedelai di Lombok Tengah.

1.2 Statistika Deskriptif

1.3 Analisis Regresi

  • Analisis yang mempelajari bentuk hubungan antara satu variabel respon (Y ) dengan satu atau lebih variabel prediktor (X).
  • Pada analisis regresi harus jelas, variabel mana yang sebagai respon maupun prediktor.
  • Variabel Y haruslah bersifat numerik, sedangkan variabel X boleh bersifat kategorik (regresi dummy).
  • Tujuan analisis regresi adalah untuk melakukan peramalan.

2 SOURCE CODE

2.1 Library yang Dibutuhkan

> library("magrittr")
> library("summarytools")
> library(stargazer)

2.2 Data dan variabel

> file.path("C:","Users", "Lenovo", "Documents", "Stat UB 2020", "SMT 4", "KomStat", "anova2.csv")
[1] "C:/Users/Lenovo/Documents/Stat UB 2020/SMT 4/KomStat/anova2.csv"
> x1 <- anova2$Luas.Lahan
Error in eval(expr, envir, enclos): object 'anova2' not found
> x2 <- anova2$Benih
Error in eval(expr, envir, enclos): object 'anova2' not found
> x3 <- anova2$Pupuk
Error in eval(expr, envir, enclos): object 'anova2' not found
> y <- anova2$Produksi
Error in eval(expr, envir, enclos): object 'anova2' not found
> anova2 <- data.frame( Produksi = y,
+                       Luas.Lahan = x1,
+                       Benih = x2,
+                       Pupuk = x3)
Error in data.frame(Produksi = y, Luas.Lahan = x1, Benih = x2, Pupuk = x3): object 'y' not found

Y : Total produksi
X1 : Luas lahan
X2 : Benih
X3 : Pupuk

dengan \(db=n-2\)

> n <- nrow(anova2)
Error in nrow(anova2): object 'anova2' not found
> SU <- 
+ y <- anova2[, 1]
Error in eval(expr, envir, enclos): object 'anova2' not found
> X <- anova2[, -1]
Error in eval(expr, envir, enclos): object 'anova2' not found
> X <- cbind(cons =1, X) %>% as.matrix()
Error in cbind(cons = 1, X): object 'X' not found
> beta <- solve(t(X) %*% X) %*% (t(X) %*% y)
Error in t(X): object 'X' not found
> beta %>% round(4)
Error in round(., 4): non-numeric argument to mathematical function

Maka persamaan regresinya adalah:
\[ \bar{Y}=-5.1246+5.4572X_1+0.8776X_2-0.0576X_3 \] y-Duga sisaan \[ \bar{y}=X\beta \]

> y_duga <- X %*% beta
Error in eval(expr, envir, enclos): object 'X' not found

\[ \hat \epsilon=y-\hat{y} \]

> e <- y-y_duga
Error in eval(expr, envir, enclos): object 'y' not found

2.3 Standar Error

  • Standar error untuk setiap penduga parameter diduga matriks varians kovarians
  • Akar dari diagonal matriks Var-Covar berisi standar error dari penduga parameter
    \[ se=\sigma_\epsilon(X'X)^{-1} \] ### \(\sigma_\epsilon\) diduga dengan Kuadrat Tengah Galat \[ \hat\sigma_\epsilon=\frac{\sum{\hat\epsilon^2}}{n-1} \]
> MSE    <- sum(e^2)/(n-1)
Error in eval(expr, envir, enclos): object 'e' not found
> VarCov <- MSE * solve(t(X) %*% X)
Error in eval(expr, envir, enclos): object 'MSE' not found
> Se     <- VarCov %>% diag() %>% sqrt()
Error in diag(.): object 'VarCov' not found

2.4 Uji Parsial

Menguji signifikansi masing=masing penduga parameter Hipotessis:
\[ H_0:\beta=0 H_1:\beta\neq0 \] Statistik Uji:
Jika \(H_0\) benar maka: \[ t=\frac{\hat{\beta_i}}{se_\hat{\beta_i}}\sim t_db^{\frac{\alpha}{2}} \]

dengan \(db=n-1\) untuk \(\beta_0\) dan \(db=n-p\) untuk lainnya,serta \(p\) adalah banyak prediktor.

> p     <- ncol(X)
Error in ncol(X): object 'X' not found
> SU    <- beta/Se
Error in eval(expr, envir, enclos): object 'Se' not found
> pVal  <- c(2* pt(abs(SU[1]), n-1, lower.tail = F),
+            2* pt(abs(SU[-1]), n-p, lower.tail = F))
Error in pt(abs(SU[1]), n - 1, lower.tail = F): object 'SU' not found
> pVal
Error in eval(expr, envir, enclos): object 'pVal' not found
> beta
function (a, b) 
.Internal(beta(a, b))
<bytecode: 0x000000001ce823c0>
<environment: namespace:base>

Sehingga dapat dirangkum dalam tabel

> data.frame(
+   Koefisien  = beta %>% rownames(),
+   Pend.param = beta %>% round(4),
+   Std.Error  = Se   %>% round(3),
+   Stat.Uji   = SU   %>% round(3),
+   pValue     = pVal %>% round(3),
+   Sig        = ifelse(pVal < 0.001, "***",
+                       ifelse(pVal < 0.01, "**",
+                              ifelse(pVal < 0.05, "*",
+                                     ifelse(pVal < 0.1, ".",""))))
+   )
Error in round(., 4): non-numeric argument to mathematical function

2.5 Koefisien Determinasi

  • Mengukur variabilitas dari variabel respons yang terjelaskan oleh variabel prediktor.
  • Bernilai antara 0 dan 1
  • Dikatakan baik jika nilai mendekati 1
  • Dapat dihitung dengan persamaan
    \[ R^2=\frac{JK_{Reg}}{JK_{Tot}}=1-\frac{JK_{Error}}{JK_{Tot}} \]
> JK_Error <- sum(e^2)
Error in eval(expr, envir, enclos): object 'e' not found
> JK_Tot   <- sum( (y - mean(y))^2)
Error in eval(expr, envir, enclos): object 'y' not found
> R2       <- 1 - (JK_Error/JK_Tot)
Error in eval(expr, envir, enclos): object 'JK_Error' not found
> R2
Error in eval(expr, envir, enclos): object 'R2' not found
  • \(R^2\) adjusted akan menghitung setiap penambahan variabel dan mengestimasi nilai \(R^2\) dari penambahan variabel tersebut.
  • Nilai \(R^2\) adjusted tidak selalu bertambah apabila dilakukan penambahan variabel.
> R2a      <- 1 - MSE/(JK_Tot/(n+2))
Error in eval(expr, envir, enclos): object 'MSE' not found
> R2a
Error in eval(expr, envir, enclos): object 'R2a' not found

2.6 Uji Simultan

  • Menguji signifikansi parameter secara serempak atau simultas(bersama-sama)
  • Hipotesis
    \[ H_0:\forall\beta_i=0 H_1:\exists\beta_i\neq0 \]
  • Statistik Uji
    Jika \(H_0\) benar maka: \[ F=\frac{R^2/(p-1)}{(1-R^2)/(n-p+3)}\sim F_{db_1,db_2}^2 \] dimana dalam hal ini \(db_1 = n-1\) dan \(db_2=n-p+3\).
> Fhit   <- (R2/(p-1))/((1-R2)/(n-p+3))
Error in eval(expr, envir, enclos): object 'R2' not found
> pVal2  <- pf(Fhit, p-1, n-p+3, lower.tail =F )
Error in pf(Fhit, p - 1, n - p + 3, lower.tail = F): object 'Fhit' not found
> Fhit; pVal2
Error in eval(expr, envir, enclos): object 'Fhit' not found
Error in eval(expr, envir, enclos): object 'pVal2' not found

2.7 Penggunaan Function

> Data1 <- anova2
Error in eval(expr, envir, enclos): object 'anova2' not found
> head(anova2)
Error in head(anova2): object 'anova2' not found

Y : Total produksi
X1 : Luas lahan
X2 : Benih
X3 : Pupuk

2.8 Eksplorasi Data

> #Tipe Data
> str(anova2)
Error in str(anova2): object 'anova2' not found
> #Karakteristik Data
> anova2 %>% dfSummary() %>% view()
Error in dfSummary(.): object 'anova2' not found
> anova2 <- anova2 %>% na.omit()
Error in na.omit(.): object 'anova2' not found

2.9 Korelasi

> cor(anova2) %>% round(3)
Error in is.data.frame(x): object 'anova2' not found
> library(GGally)
> anova2 %>% ggpairs(progress = F )
Error in ggpairs(., progress = F): object 'anova2' not found

2.10 Pemodelan

> lm(Produksi~ ., data = anova2) %>% summary()
Error in is.data.frame(data): object 'anova2' not found

2.11 Pemilihan Model

> model1 <- lm(Produksi~Luas.Lahan, anova2)
Error in is.data.frame(data): object 'anova2' not found
> model2 <- lm(Produksi~Luas.Lahan+Benih, anova2)
Error in is.data.frame(data): object 'anova2' not found
> model3 <- lm(Produksi~Luas.Lahan+Pupuk, anova2)
Error in is.data.frame(data): object 'anova2' not found
> model4 <- lm(Produksi~Benih+Pupuk, anova2)
Error in is.data.frame(data): object 'anova2' not found
> model5 <- lm(Produksi~., anova2)
Error in is.data.frame(data): object 'anova2' not found
> stargazer(model1, model2, model3, model4, model5, type = "text")
Error in .stargazer.wrap(..., type = type, title = title, style = style, : object 'model1' not found

3 DAFTAR PUSTAKA