Email             :
Instagram     : https://www.instagram.com/irenegani
RPubs            : https://rpubs.com/irenegani/
Department  : Business Statistics
Address         : ARA Center, Matana University Tower
                         Jl. CBD Barat Kav, RT.1, Curug Sangereng, Kelapa Dua, Tangerang, Banten 15810.



library(ggplot2)
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
library(broom)
## Warning: package 'broom' was built under R version 4.0.4
library(ggpubr)
## Warning: package 'ggpubr' was built under R version 4.0.4
library(DT)

1 Apa perbedaan regressi Linear Sederhana dan Berganda

Analisis regresi linear sederhana adalah analisis regresi yang hanya melibatkan dua variabel, yaitu 1 (satu) variabel dependen atau variabel tergantung dan 1 (satu) variabel independen atau bebas. Pada analisis regresi sederhana, 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.

Analisis regresi linear berganda atau multiple regression adalah analisis regresi yang melibatkan lebih dari dua variabel, yaitu 1 (satu) variabel dependen atau variabel terikat, dan lebih dari 1 (satu) variabel independen atau bebas. 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.

2 Regresi Linear Sederhana

Disini saya menggunakan data income dengan variabel income dan variabel happiness. Variabel income (dalam skala $ 15 ribu hingga $ 75) memiliki satuan $10,000 dan variabel happiness memiliki skala atau interval dari 1-10. Karena kesenangan seseorang itu dipengaruhi oleh seberapa besar pendapatannya maka variabel dependen adalah happiness dan variabel independen adalah income. Data income:

incomedata <- read.csv(file='income.data.csv')
datatable(incomedata)

2.1 Asumsi

Untuk menganalisa suatu program linear, ada beberapa asumsi yang harus dipenuhi, yaitu :

2.1.1 Independensi

Karena ini merupakan data yang hanya memiliki satu variabel independen maka dapat disimpulkan bahwa data ini sudah pasti independent. Jadi tidak perlu mengecek korelasi lagi.

2.1.2 Normalitas

normality digunakan untuk memeriksa apakah variabel dependen nya terdistribusi normal, untuk mengetahuinya dapat menggunakan function hist() seperti dibawah ini;

hist(incomedata$happiness)

2.1.3 Linearity

Linearity digunakan untuk mengetahui apakah data observasi bersifat linear. jika tidak memenuhi maka tidak dapat menggunakan regresi linier lagi, perlu menggunakan metode-metode lainnya.

plot(happiness ~ income, data = incomedata)

2.2 Hipotesis dan tingkat signifikansi

\[ H_0:\beta_1=\beta_2 \]

\[ H_0:\beta_1\ne\beta_2 \] \[ alpha=0.05 \]

2.3 Model linear and Summary

Untuk mencari summary:

income.happiness.lm <- lm(happiness ~ income, data = incomedata)

summary(income.happiness.lm)
## 
## Call:
## lm(formula = happiness ~ income, data = incomedata)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.02479 -0.48526  0.04078  0.45898  2.37805 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.20427    0.08884   2.299   0.0219 *  
## income       0.71383    0.01854  38.505   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7181 on 496 degrees of freedom
## Multiple R-squared:  0.7493, Adjusted R-squared:  0.7488 
## F-statistic:  1483 on 1 and 496 DF,  p-value: < 2.2e-16

Bagian koefisien menunjukkan :

•Estimasi (Estimasi) untuk parameter model - nilai perpotongan y (dalam hal ini 0,204) dan estimasi efek pendapatan pada kebahagiaan (0,713)

•Kesalahan standar dari nilai perkiraan (Std. Error).

•The test statistic (t value, in this case the t-statistic).

•Nilai-p (Pr (> | t |)), alias probabilitas menemukan statistik-t yang diberikan jika hipotesis nol dari tidak ada hubungan itu benar.

Tiga baris terakhir adalah diagnostik model - hal terpenting yang perlu diperhatikan adalah nilai-p (ini adalah 2,2e-16, atau hampir nol), yang akan menunjukkan apakah model cocok dengan data dengan baik.

Dari hasil ini, kita dapat mengatakan bahwa ada hubungan positif yang signifikan antara pendapatan dan kebahagiaan (p-value <0,001), dengan peningkatan kebahagiaan 0,713 unit (+/- 0,01) untuk setiap peningkatan unit pendapatan.

3 Regresi Linear Berganda

Pengaruh smoking and biking (merokok dan bersepeda) terhadap heart disease(penyakit jantung. Pada data ini dapat diketahui bahwa smoking and biking sebagai variabel bebas dan heart disease sebagai variabel terikat.

heartdata <- read.csv(file='heart.data.csv')
datatable(heartdata)

3.1 Asumsi

Untuk menganalisa suatu program linear, ada beberapa asumsi yang harus dipenuhi, yaitu :

3.1.1 Independensi

tidak boleh ada autokorelasi.

Kita gunakan fungsi cor () untuk menguji hubungan antara variabel independen kita dan pastikan tidak terlalu berkorelasi tinggi.

cor(heartdata$biking, heartdata$smoking)
## [1] 0.01513618

3.1.2 Normalitas

Untuk memeriksa apakah variabel dependen mengikuti distribusi normal, gunakan fungsi hist ()

hist(heartdata$heart.disease)

Dapat dilihat bahwa bentuk data happiness dalam income berbentuk bell-curve, jadi kita dapat melanjutkan dengan regresi linier.

3.1.3 Linearitas

Hubungan antara variabel bebas dan variabel terikat harus linier.

plot(heart.disease ~ biking, data=heartdata)

plot(heart.disease ~ smoking, data=heartdata)

Meskipun hubungan antara merokok dan penyakit jantung sedikit kurang jelas, hubungan tersebut masih terlihat linier. Jadi kita bisa melanjutkan dengan regresi linier.

3.2 Hipotesis dan tingkat signifikaansi

\[ H_0:\beta_{biking}=\beta_{smoking}=0 \]

\[ H_o:\beta_{biking}\ne\beta_{smoking}\ne0 \]

\[ alpha=0.01 \]

3.3 Model linear dan Summary

heart.disease.lm<-lm(heart.disease ~ biking + smoking, data = heartdata)

summary(heart.disease.lm)
## 
## Call:
## lm(formula = heart.disease ~ biking + smoking, data = heartdata)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.1789 -0.4463  0.0362  0.4422  1.9331 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 14.984658   0.080137  186.99   <2e-16 ***
## biking      -0.200133   0.001366 -146.53   <2e-16 ***
## smoking      0.178334   0.003539   50.39   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.654 on 495 degrees of freedom
## Multiple R-squared:  0.9796, Adjusted R-squared:  0.9795 
## F-statistic: 1.19e+04 on 2 and 495 DF,  p-value: < 2.2e-16

Estimasi efek bersepeda terhadap penyakit jantung adalah -0,2, sedangkan estimasi efek merokok sebesar 0,178

Ini berarti bahwa untuk setiap kenaikan 1% bersepeda ke tempat kerja, terdapat korelasi penurunan 0,2% dalam kejadian penyakit jantung. Sedangkan untuk setiap kenaikan 1% merokok, terjadi peningkatan angka penyakit jantung sebesar 0,178%.

Kesalahan standar untuk koefisien regresi ini sangat kecil, dan t-statistik sangat besar (masing-masing -147 dan 50,4). Nilai-p mencerminkan kesalahan kecil dan statistik-t yang besar ini. Untuk kedua parameter, hampir tidak ada kemungkinan bahwa efek ini terjadi secara kebetulan.

4 Sehubungan dengan soal No 3, buatlah model regresi linear sederhana yang terbaik dari semua kemungkinan variable (coba terapkan semua kemungkinan model, contohnya, kuardatik, log-log, dll sampai anda menemukan model terbaiknya)

4.1 Model Linear

M1 <- summary(heart.disease.lm)
M1
## 
## Call:
## lm(formula = heart.disease ~ biking + smoking, data = heartdata)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.1789 -0.4463  0.0362  0.4422  1.9331 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 14.984658   0.080137  186.99   <2e-16 ***
## biking      -0.200133   0.001366 -146.53   <2e-16 ***
## smoking      0.178334   0.003539   50.39   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.654 on 495 degrees of freedom
## Multiple R-squared:  0.9796, Adjusted R-squared:  0.9795 
## F-statistic: 1.19e+04 on 2 and 495 DF,  p-value: < 2.2e-16

4.2 Model Kuadrat

kuadrat <- lm(heart.disease ~ (biking+smoking)^2, data= heartdata)
M2 <- summary(kuadrat)
M2
## 
## Call:
## lm(formula = heart.disease ~ (biking + smoking)^2, data = heartdata)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.20619 -0.44862  0.02892  0.44099  1.94142 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    15.0527397  0.1248112 120.604   <2e-16 ***
## biking         -0.2019916  0.0029472 -68.536   <2e-16 ***
## smoking         0.1740065  0.0070359  24.731   <2e-16 ***
## biking:smoking  0.0001177  0.0001653   0.712    0.477    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.6544 on 494 degrees of freedom
## Multiple R-squared:  0.9796, Adjusted R-squared:  0.9795 
## F-statistic:  7922 on 3 and 494 DF,  p-value: < 2.2e-16

4.3 Metode Polinomial

polinomial <- lm(heart.disease ~ poly(biking,3)+smoking, data=heartdata)
M3 <- summary(polinomial)

4.4 Model Log-linear

Loglinear <- lm(log(heart.disease) ~ biking+smoking, data=heartdata)
M4 <- summary(Loglinear)
M4
## 
## Call:
## lm(formula = log(heart.disease) ~ biking + smoking, data = heartdata)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.59285 -0.08401  0.04881  0.14200  0.37256 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2.7338211  0.0296098   92.33   <2e-16 ***
## biking      -0.0244554  0.0005047  -48.46   <2e-16 ***
## smoking      0.0238085  0.0013077   18.21   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2417 on 495 degrees of freedom
## Multiple R-squared:  0.8428, Adjusted R-squared:  0.8421 
## F-statistic:  1327 on 2 and 495 DF,  p-value: < 2.2e-16

4.5 Model Linear_log

linearlog <- lm(heart.disease ~ log(biking)+log(smoking), data=heartdata)
M5 <- summary(linearlog)
M5
## 
## Call:
## lm(formula = heart.disease ~ log(biking) + log(smoking), data = heartdata)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -8.581 -1.249  0.349  1.546  4.275 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   21.6124     0.4631   46.67   <2e-16 ***
## log(biking)   -4.5597     0.1067  -42.73   <2e-16 ***
## log(smoking)   1.5781     0.1109   14.22   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.03 on 495 degrees of freedom
## Multiple R-squared:  0.8037, Adjusted R-squared:  0.8029 
## F-statistic:  1013 on 2 and 495 DF,  p-value: < 2.2e-16

4.6 Model Log-log

loglog <- lm(log(heart.disease) ~ log(biking)+log(smoking), data=heartdata)
M6 <- summary(loglog)
M6
## 
## Call:
## lm(formula = log(heart.disease) ~ log(biking) + log(smoking), 
##     data = heartdata)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.8049 -0.1553  0.1113  0.2413  0.7898 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   3.31670    0.08637   38.40   <2e-16 ***
## log(biking)  -0.51146    0.01990  -25.70   <2e-16 ***
## log(smoking)  0.23441    0.02069   11.33   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3786 on 495 degrees of freedom
## Multiple R-squared:  0.6141, Adjusted R-squared:  0.6125 
## F-statistic: 393.8 on 2 and 495 DF,  p-value: < 2.2e-16

4.7 Summary \(R^2\)

RSummary <- data.frame(
                       "r.linear"      = round(M1$r.squared,4),
                       "r.kuadrat"     = round(M2$r.squared,4),
                       "r.polinomial"  = round(M3$r.squared,4),
                       "r.loglinear"   = round(M4$r.squared,4),
                       "r.linearlog"   = round(M5$r.squared,4),
                       "r.loglog"      = round(M6$r.squared,4)
                      )
datatable(RSummary)