Penerapan Analisis Regresi untuk mengetahui hubungan konsumsi jumlah Kalori/hari terhadap Berat Badan mahasiswa

Nurul Anissa Lativa

1 Juni 2023

1 PENDAHULUAN

1.1 Latar Belakang

Perkembangan teknologi pada era maju membuat aktivitas kehidupan sehari-hari kita selalu dalam penggunaan smartphone, laptop, dan lain-lain yang mampu membantu mengolah data. Komputasi adalah pilihan yang tepat untuk data inputan yang menggunakan suatu algoritma. Komputasi bisa dilakukan dengan software yang mendukung analisisnya, seperti software R, spp, genstat, minitab, dan sebagainya. Dalam software R terdapat fasilitas untuk perhitungan, manipulasi, dan pembuatan grafik. Oleh karena itu, software R dapat digunakan untuk suatu analisis statistika. Namun, terdapat kelemahan dari software ini yaitu diperlukan syntax agar dapat mengetahui hasil dari analisis statistika tersebut. Analisis/uji regresi banyak digunakan dalam perhitungan hasil akhir untuk penulisan karya ilmiah/penelitian. Hasil perhitungan analisis/uji regresi akan dimuat dalam kesimpulan penelitian dan akan menentukan apakah penelitian yang sedang dilakukan berhasil atau tidak. Analisis perhitungan pada uji regresi menyangkut beberapa perhitungan statistika seperti uji signifikansi (uji-t, uji-F), anova dan penentuan hipotesis. Hasil dari analisis/ uji regresi berupa suatu persamaan regresi. Persamaan regresi ini merupakan suatu fungsi prediksi variabel yang mempengaruhi variabel lain.

1.2 Rumusan Masalah

Apakah konsumsi jumlah kalori/hari mempengaruhi berat badan?

1.3 Tujuan Masalah

Untuk mengetahui hubungan jumlah kalori/hari terhadap berat badan

2 TINJAUAN PUSTAKA

2.1 Statistika Deskriptif

Statistik deskriptif merupakan proses transformasi data penelitian dalam bentuktabulasi sehingga mudah dipahami dan diinterpretasikan. Statistik deskripstifberfungsi mempelajari tata cara pengumpulan, pencatatan, penyusunan danpenyajian data penelitian dalam bentuk tabel frekuensi atau grafik dan selanjutnyadilakukan pengukuran nilai-nilai statistiknya seperti mean/rerata aritmetik, median,modes, deviasi standar.

2.2 Statistika Infrensial

Berdasarkan asumsi yang mendasarinya, statistik inferensial dibedakan menjadi dua yaitu : a. Statistik Parametrik. Pendugaan dan uji hipotesis dari parameter populasi didasarkan anggapan bahwa skor-skor yang dianalisis telah ditarik dari suatu populasi dengan ditribusi tertentu

  1. Statistik Nonparametrik. Pendugaan dan uji hipotesis dari parameter populasi anggapan bahwa skor-skor yang dianalisis telah ditarik dari suatu populasi dengan bebas sebaran (tidak mengikuti distribusi tertentu)

2.3 Analisis Regresi Linier Sederhana

Rumus regresi linier sederhana sebagai berikut:

                                    Y= a + bX

dimana: Y = Variabel tak bebas (nilai yang akan diprediksi) X = Variabel bebas (variabel ndependent) a = Konstanta (nilai dari Y apabila X=0) b = koefisien regresi (pengaruh positif atau negatif)

3 Asumsi Klasik

3.1 Asumsi Normalitas

H0:Galat berdistribusi normal (Asumsi normalitas terpenuhi).

H1:Galat tidak berdistribusi normal (Asumsi normalitas tidak terpenuhi).

Asumsi normalitas adalah analisis regresi yang mengacu pada asumsi bahwa galat (error) model regresi harus berdistribusi normal. Asumsi ini harus terpenuhi agar hasil estimasi model menjadi valid. Uji statistik dapat menggunakan uji Jarque-Berra atau uji Shapiro-Wilk bagi sampel kecil dan uji Kolmogorov-Smirnov bagi sampel besar. Apabila p-value uji lebih besar dari tingkat signifikasi yang ditentukan, maka asumsi normalitas terpenuhi.

3.2 Asumsi Homoskedastisitas

H0:σ2i=σ2j, i≠j (Asumsi homoskedastisitas terpenuhi).

H1:σ2i≠σ2j, i≠j (Asumsi homoskedastisitas tidak terpenuhi).

Asumsi homoskedastisitas adalah asumsi bahwa varians dari galat (error) model regresi sama atau konstan di semua tingkat nilai variabel prediktor. Asumsi ini menyatakan bahwa sebaran galat model regresi tidak berubah secara sistematis seiring perubahan nilai variabel prediktor. Uji statistik dapat menggunakan uji White atau uji Breuch-Pagan. Apabila p-value uji lebih besar dari tingkat signifikasi yang ditentukan, maka asumsi homoskedastisitas terpenuhi.

3.3 Asumsi Non-Multikolinieritas

Asumsi non-multikolinieritas mangacu pada ada atau tidaknya korelasi yang tinggi antara dua atau lebih variabel prediktor dalam model regresi. Asumsi ini harus terpenuhi agar hasil estimasi model menjadi valid. Untuk menguji asumsi ini, dapat menggunakan Variance Inflation Factor (VIF) dengan rumus sebagai berikut.

VIF(β^j)= 11−R2j , j = 1,2,…,k

Perhitungan VIF dilakukan untuk setiap variabel prediktor dalam model regresi. Apabila nilai VIF lebih besar dari 10 dapat menunjukkan adanya multikolinieritas.

3.4 Asumsi Non-Autokorelasi

H0:Tidak terjadi autokorelasi. H1:Terjadi autokorelasi.

Asumsi non-autokorelasi mengacu pada ada atau tidaknya korelasi antara galat (error) model regresi pada waktu yang berbeda. Uji statistik dapat menggunakan uji Durbin-Watson. Apabila p-value uji lebih besar dari tingkat signifikasi yang ditentukan, maka asumsi non-autokorelasi terpenuhi.

3.5 Uji Asumsi Klasik

Pengujian asumsi klasik ini ditujukan agar dapat menghasilkan model regresi yang memenuhi kriteria BLUE (Best Linier Unbiased Estimator). Untuk mengetahui apakah model regresi yang akan digunakan telah memenuhi kriteria BLUE maka perlu dilakukan serangkaian pengujian yaitu Uji Normalitas, Uji Multikolinieritas, Uji Heteroskedastisitas, dan Uji Autokorelasi

4 SOURCE CODE

4.1 Library

# install.packages("rmarkdown")
# install.packages("prettydoc")
# install.packages("equatiomatic")
# install.packages("knitr")
# install.packages("tinytex")
# install.packages("car")
# install.packages("tseries")
# install.packages("lmtest")

4.2 Impor Data dan Menampilkan data

X<-c(530,300,358,510,302,300,387,527,415,512)
Y<-c(89,48,56,72,54,42,60,85,63,74)
data<-data.frame(X,Y)
View(data)

4.3 Membentuk matriks

X <- data$X
X
##  [1] 530 300 358 510 302 300 387 527 415 512
Y <- data$Y
Y
##  [1] 89 48 56 72 54 42 60 85 63 74
#Bentuk Dataframe dari X dan Y
df <- data.frame(X, Y)
df
##      X  Y
## 1  530 89
## 2  300 48
## 3  358 56
## 4  510 72
## 5  302 54
## 6  300 42
## 7  387 60
## 8  527 85
## 9  415 63
## 10 512 74
n <- dim(df)[1]
n
## [1] 10
k <- dim(df)[2]
k
## [1] 2
mX <- matrix(c(rep(1,n),X),nrow=n)
mX
##       [,1] [,2]
##  [1,]    1  530
##  [2,]    1  300
##  [3,]    1  358
##  [4,]    1  510
##  [5,]    1  302
##  [6,]    1  300
##  [7,]    1  387
##  [8,]    1  527
##  [9,]    1  415
## [10,]    1  512

Y= Berat Badan Mahasiswa X= Kalori/hari

#analisis regresi sederhana

#Bangkitkan X dan Y
library(readxl)
X<-c(530,300,358,510,302,300,387,527,415,512)
Y<-c(89,48,56,72,54,42,60,85,63,74)
data<-data.frame(X,Y)
View(data)
X <- data$X
X
##  [1] 530 300 358 510 302 300 387 527 415 512
Y <- data$Y
Y
##  [1] 89 48 56 72 54 42 60 85 63 74
#Bentuk Dataframe dari X dan Y
df <- data.frame(X, Y)
df
##      X  Y
## 1  530 89
## 2  300 48
## 3  358 56
## 4  510 72
## 5  302 54
## 6  300 42
## 7  387 60
## 8  527 85
## 9  415 63
## 10 512 74
n <- dim(df)[1]
n
## [1] 10
k <- dim(df)[2]
k
## [1] 2
mX <- matrix(c(rep(1,n),X),nrow=n)
mX
##       [,1] [,2]
##  [1,]    1  530
##  [2,]    1  300
##  [3,]    1  358
##  [4,]    1  510
##  [5,]    1  302
##  [6,]    1  300
##  [7,]    1  387
##  [8,]    1  527
##  [9,]    1  415
## [10,]    1  512
#Analisis pendahuluan untuk mengetahui hubungan X dan Y
scatter.smooth(x = df$X, y = df$Y, 
               main="Hubungan Variabel X dan Y", 
               xlab = "X", ylab = "Y")

cor(x = X, y = Y, method = "pearson")
## [1] 0.9500932
cor(x = X, y = Y, method = "kendall")
## [1] 0.9888265
cor(x = X, y = Y, method = "spearman")
## [1] 0.9969651
#Analisis Regresi Manual 
ybar <- rep(mean(Y),n)
ybar
##  [1] 64.3 64.3 64.3 64.3 64.3 64.3 64.3 64.3 64.3 64.3
XY <- X*Y
XY
##  [1] 47170 14400 20048 36720 16308 12600 23220 44795 26145 37888
X2 <- X^2
X2
##  [1] 280900  90000 128164 260100  91204  90000 149769 277729 172225 262144
Y2 <- Y^2
Y2
##  [1] 7921 2304 3136 5184 2916 1764 3600 7225 3969 5476
#penduga koefisien
b0 <- ((sum(Y)*sum(X2)-sum(X)*sum(XY))/(n*sum(X2)-sum(X)^2))
b0
## [1] 2.608041
b1 <- (n*sum(XY)-sum(X)*sum(Y))/(n*sum(X2)-sum(X)^2)
b1
## [1] 0.1489784
Yduga <- b0 + b1*X
Yduga
##  [1] 81.56660 47.30156 55.94231 78.58703 47.59952 47.30156 60.26269 81.11966
##  [9] 64.43408 78.88499
#menghitung analisis ragam
(JKreg <- sum((Yduga-ybar)^2))
## [1] 1940.846
(JKgalat <- sum((Y-Yduga)^2))
## [1] 209.254
(JKtotal <- JKreg +JKgalat)
## [1] 2150.1
(JK <- c(JKreg, JKgalat, JKtotal))
## [1] 1940.846  209.254 2150.100
SK <- c("Regresi", "Galat", "Total")

(dbtot <- n-1)
## [1] 9
(dbreg <- k-1)
## [1] 1
(dbgalat <- dbtot - dbreg)
## [1] 8
db <- c(dbreg, dbgalat, dbtot)

(KTreg <- JKreg/dbreg)
## [1] 1940.846
(KTgalat <- JKgalat/dbgalat)
## [1] 26.15675
(KTtotal <- "-")
## [1] "-"
KT <- c(KTreg, KTgalat,KTtotal)

#uji F
(Fhit <- c((KTreg/KTgalat), '-', '-'))
## [1] "74.2005846476097" "-"                "-"
anreg <- data.frame(SK, JK, db, KT, Fhit)

#menghitung p-value
pf<-pf(KTreg/KTgalat, dbgalat, dbreg, lower.tail=FALSE)    
pf
## [1] 0.08955784
#uji T
var_cov<-KTgalat*solve(t(mX) %*% mX)   #mencari ragam peragam
var_cov
##            [,1]          [,2]
## [1,] 53.9076939 -0.1238638472
## [2,] -0.1238638  0.0002991158
sd<-rep(0,k)
for(i in 1:k){
sd[i]<-sqrt(var_cov[i,i])}
sd
## [1] 7.34218591 0.01729496
t <- c(b0,b1)/sd
t
## [1] 0.3552132 8.6139761
R2 <- JKtotal/JKreg
R2
## [1] 1.107816
alpha<-0.05
ttabel<-qt(alpha/2,anreg$db[2], lower.tail=FALSE)
ttabel
## [1] 2.306004
batasbawah_sk<-c(b0,b1)-(ttabel*sd)   #menghitung batas bawah selang
batasbawah_sk
## [1] -14.3230701   0.1090961
batasatas_sk<-c(b0,b1)+(ttabel*sd)   #menghitung batas atas selang
batasatas_sk
## [1] 19.5391521  0.1888607
selangkepercayaan<-cbind(batasbawah_sk, batasatas_sk)   #membuat selang kepercayaan berdasarkan batas atas dan batas bawah
selangkepercayaan
##      batasbawah_sk batasatas_sk
## [1,]   -14.3230701   19.5391521
## [2,]     0.1090961    0.1888607
#Analisis Regresi 
reg1 <-lm(data = df, Y~X)
model <- summary(reg1)
model
## 
## Call:
## lm(formula = Y ~ X, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6.5870 -4.0223 -0.1025  3.0849  7.4334 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2.60804    7.34219   0.355    0.732    
## X            0.14898    0.01729   8.614 2.55e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 5.114 on 8 degrees of freedom
## Multiple R-squared:  0.9027, Adjusted R-squared:  0.8905 
## F-statistic:  74.2 on 1 and 8 DF,  p-value: 2.555e-05
#FUNGSI LM

library(readxl)

#membentuk matriks
library(readxl)
X<-c(530,300,358,510,302,300,387,527,415,512)
Y<-c(89,48,56,72,54,42,60,85,63,74)
data<-data.frame(X,Y)
View(data)
X <- data$X
X
##  [1] 530 300 358 510 302 300 387 527 415 512
Y <- data$Y
Y
##  [1] 89 48 56 72 54 42 60 85 63 74

5 ASUMSI NORMALITAS

#uji normalitas galat
library(tseries)
## Warning: package 'tseries' was built under R version 4.2.3
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
sisa <- residuals(reg1)
jarque.bera.test(sisa)
## 
##  Jarque Bera Test
## 
## data:  sisa
## X-squared = 0.58574, df = 2, p-value = 0.7461
shapiro.test(sisa)
## 
##  Shapiro-Wilk normality test
## 
## data:  sisa
## W = 0.94294, p-value = 0.5862

Digunakan untuk melakukan uji saphiro pada objek sisa.

6 ASUMSI HOMOSKEDASTISITAS

#uji homoskedastisitas ragam galat
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.2.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.2.3
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
bptest(reg1)
## 
##  studentized Breusch-Pagan test
## 
## data:  reg1
## BP = 1.3603, df = 1, p-value = 0.2435

Dugunakan dalam menguji error atau galat untuk melihat apakah varians dipengaruhi oleh faktor lain.

#ASUMSI NON AUTOKORELASI

#uji non autokorelasi
dwtest(reg1)
## 
##  Durbin-Watson test
## 
## data:  reg1
## DW = 2.2855, p-value = 0.6768
## alternative hypothesis: true autocorrelation is greater than 0

Digunakan untuk mengacu pada ada atau tidaknya korelasi antara galat (error) model regresi pada waktu yang berbeda.

7 ASUMSI NONMULTIKOLINIERITAS

Digunakan fungsi vif untuk melakukan multikolinearites

8 HASIL DAN PEMBAHASAN

8.1 Analisis Regresi

8.1.1 Hipotesis

Kalori/hari ($X$)

\(H_0 : \beta_1\) = Kalori/hari (\(X\)) tidak mempunyai pengaruh yang signifikan secara parsial terhadap Berat Badan (Y).

\(H_1 : \beta_1\) = Kalori/hari (\(X\)) mempunyai pengaruh yang signifikan secara parsial terhadap Berat Badan (Y).

8.1.2 Analisis Regresi Linier Sederhana

Dari hasil analisis regresi didapatkan: {r} #Analisis Regresi Linier Bergenda Dengan Fungsi lm library(readxl)

X<-c(530,300,358,510,302,300,387,527,415,512) Y<-c(89,48,56,72,54,42,60,85,63,74) data<-data.frame(X,Y) View(data) X <- data\(X X Y <- data\)Y Y

Berdasarkan summary diatas didapatkan model regresi linier sederhana sebagai berikut: \[ Y = 2.60804 + 0.14898X \] Persamaan diatas dapat dijelaskan sebagai berikut:

  1. Jika kalori/hari naik 1 satuan, maka Berat Badan akan bertambah 0.14898 sedangkan variabel yang lain konstan. ## Uji Asumsi klasik Pada plot Residuals vs Fitted dapat disimpulkan bahwa ragam sisaan menyebar heterogen

8.1.3 Hasil Uji Asumsi Multikolinieritas

suatu data dikatakan terdapat multikolinieritas jika nilai vif>10, sedangkan suatu data dikatakan tidak terdapat multikolinieritas jika nilai vif<10 Dari perhitungan manual maupun perhitungan Rstudio menunjukan hasil:

{r} #Pendeteksian Multikolinieritas library(car) vif(REG)

karena nilai vif dari x < 10, maka dapat dikatakan bahwa data tersebut tidak terdapat multikolinieritas

8.1.4 Hasil Uji Asumsi Normalitas

8.1.4.1 jarque bera test dan shapiro test

Hipotesis

\(H_0\) : Sisaan menyebar normal

\(H_1\) : Sisaan tidak menyebar normal \[ \alpha = 0.05 \] #uji normalitas galat sisa<-residuals(REG) library(tseries) jarque.bera.test(sisa) shapiro.test(sisa)

X-squared = 0.58574, df = 2, p-value = 0.7461

Dari uji jarque bera didapatkan nilai p sebesar 0.7461 > \(\alpha(0.05)\), maka terima \(H_0\).Dengan demikian dapat disimpulkan bahwa sisaan model menyebar normal.

W = 0.94294, p-value = 0.5862

Dari uji shapiro test, nilai p yang diperoleh sebesar 0.5862 yaitu lebih besar dari \(\alpha(0.05)\), maka terima \(H_0\). Dapat disimpulkan bahwa sisaan model menyebar normal

8.1.5 Uji Homogenitas Ragam Sisaan

Hipotesis

\(H_0\) : Sisaan model memiliki ragam homogen

\(H_1\) : Sisaan model memiliki ragam heterogen

{r} #Uji breusch pagan library(lmtest) bptest(REG)

BP = 1.3603, df = 1, p-value = 0.2435

Dari ouput di atas, dapat diketahui bahwa nilai p sebesar 0.2435 > \(\alpha(0.05)\). Terima \(H_0\) Dengan demikian sisaan model memiliki ragam yang homogen

8.1.6 Uji Asumsi Autokorelasi

Hipotesis

\(H_0\) : Tidak terdapat autokorelasi antar residu

\(H_1\) : Terdapat autokorelasi antar residu {r} #Uji durbin watson dwtest(REG)

DW = 2.2855, p-value = 0.6768

Dari ouput di atas dapat diketahui nilai p sebesar 0.6768 > \(\alpha(0.05)\). Terima \(H_0\) Dengan demikian dapat disimpulkan bahwa tidak terdapat masalah autokorelasi antar residu

9 HASIL DAN PEMBAHASAN

9.1 Statistika Deskriptif

Berdasarkan Data yang digunakan, diperoleh nilai rataan sebesar….

\[ \mu=0 \]

\[ \alpha,\beta,\gamma,\mu,\sigma,\phi,\theta,\epsilon,\varepsilon, \Gamma, \Sigma,\Phi,\Theta \]

\[ \alpha_{1}, \beta^{2}, \frac{x - \mu}{\sigma / \sqrt{n} }, \]

10 KESIMPULAN

Berdasarkan Data yang digunakan, diperoleh model regresi linier sederhana Y=2.60804 + 0.14898x

Persamaan regresi linier sederhana Y = 2.60804 + 0.14898x menggambarkan hubungan linear antara variabel dependen Y(Berat Badan) dan variabel independen x(Kalori/hari). Dalam konteks regresi linier sederhan harus mencoba memodelkan hubungan antara dua variabel dengan menggunakan garis lurus.

Dalam persamaan ini, 2.60804 adalah nilai intersep atau nilai Y ketika x = 0. Artinya, jika variabel independen X (kalori/hari) tidak ada pengaruhnya (x = 0), maka nilai variabel dependen Y(Berat Badan) akan tetap 2.60804.

Koefisien 0.14898 merupakan gradien atau slope dari garis regresi. Menunjukkan seberapa banyak nilai variabel dependen Y (Berat Badan) berubah saat variabel independen X (Kalori/hari) bertambah sebesar satu unit. Dalam hal ini, setiap peningkatan satu unit dalam x akan mengakibatkan peningkatan sebesar 0.14898 dalam nilai Y.

Hasil uji R Square atau koefisien determinasi menunjukkan nilai sebesar 0.9027 dari variabel X (Kalori/hari). Hal ini menginformasikan bahwa pengaruh variabel independen X (Kalori/hari) terhadap variabel dependen Y (Berat Badan) adalah sebesar 90.27%. Sedangkan sisanya 9.73% dipengaruhi oleh variabel lain yang tidak diteliti.

Persamaan ini dapat digunakan untuk melakukan prediksi nilai variabel dependen Y (Berat Badan) berdasarkan nilai variabel independen X (Kalori/hari) misalnya, apabila memiliki nilai x yang diketahui,dapat menggantikan nilai tersebut ke dalam persamaan untuk memperkirakan nilai Y yang diharapkan.

11 DAFTAR PUSTAKA

Walpole. R.,E., 1995, Ilmu Peluang Dan Statistika Untuk Insinyur dan Ilmuawan. Bandung:ITB M. Nazir, 1983, Metode Statistika Dasar I , Gramedia Pustaka Utama:Jakarta Supranto. J., 2001, Statistika Teori dan Aplikasi Edisi Ke-6 Jilid 2. Jakarta:Erlangga Sudijono, Anas, 1996, Pengantar Statistik Pendidikan, Jakarta:Rajawali Spiegel. Murray. R, 2004, Statistika. Jakarta:Erlangga