Masalah gizi merupakan hal penting yang harus diperhatikan karena derajat kesehatan mempengaruhi pertumbuhan dan pembangunan ekonomi, meskipun berlaku sebaliknya, pertumbuhan dan pembangunan ekonomi juga mempengaruhi derajat kesehatan. Perawatan kesehatan menyerap cukup banyak anggaran keluarga maupun pemerintah. Menurut Mills dan Gilson (1990), hal tersebut terjadi karena banyak kebutuhan yang perlu dibeli dengan valuta asing, seperti obat dan alat kesehatan. Pembangunan ekonomi tidak lagi dipandang sebagai suatu proses sederhana, suatu proses penanaman modal bagi sistem perekonomian dengan harapan akan memberikan keuntungan otomatis dalam pembangunan dan kesejahteraan manusia. Pembangunan menjadi rumit karena harus mempertimbangkan semua aspek ekonomi termasuk masalah kesehatan.Gizi juga dipengaruhi oleh tingkat pendidikan dan status pekerjaan. Soedarmo dan Sediaoetama (1977) menyampaikan bahwa pendidikan berperan penting dalam hal perbaikan makanan. Penduduk mengetahui pentingnya makanan bagi kesehatan dari pendidikan yang diperoleh. Pengetahuan tentang makanan yang seimbang berpengaruh pada pola konsumsi yang sehat. Pada penelitian yang dilakukan oleh Kusuma (2008) di Kota Surakarta, diperoleh kesimpulan bahwa status pekerjaan merupakan faktor yang mempengaruhi gizi. Pengetahuan hubungan antara gizi masyarakat dengan faktor yang mempengaruhinya menjadi hal penting untuk mempermudah penanggulangan masalah gizi. Jika hubungan itu dapat diketahui, maka langkah-langkah yang diambil dapat lebih terarah. Model statistik yaitu analisis regresi dapat digunakan untuk mengetahui hubungan tersebut.
Analisis regresi dapat digunakan untuk mengetahui pengaruh dan mengukur hubungan antara variabel respon dan variabel prediktor. Pada Laporan Praktikum ini, variabel respon model regresinya yaitu status gizi orang dewasa (usia 18 tahun ke atas) yang diukur dengan Indeks Massa Tubuh (IMT). Sedangkan untuk variabel prediktornya terdiri dari pendapatan per kapita keluarga, tingkat pendidikan terakhir, dan status pekerjaan. Salah satu cara untuk menilai status gizi orang dewasa adalah dengan mempertahankan berat badan yang ideal, (Supariasa, 2001). Supariasa menjelaskan bahwa laporan FAO/WHO/UNU tahun 1985 menyatakan bahwa batasan berat badan normal orang dewasa ditentukan berdasarkan nilai Indeks Massa Tubuh (IMT). Batas ambang normal IMT untuk Indonesia adalah 18,5-25,0 kg/m2 , (Depkes, 1994). Status gizi dinyatakan dalam tiga kategori, yaitu kurang, normal, dan berlebih. Model regresi yang diterapkan pada saat variabel responnya bersifat kualitatif adalah model regresi logistik.
Diberikan beberapa teori yang mendukung laporan praktikum ini. Teori-teori tersebut meliputi gizi dan penilaian status gizi, model regresi logistik, penaksiran parameter model, uji signifikansi parameter, dan interpretasi parameter model.
Regresi logistik merupakan model regresi yang digunakan bila variabel responnya bersifat kualitatif, (Hosmer dan Lemeshow, 1989). Model regresi logistik sederhana yaitu model regresi logistik untuk satu variabel prediktor X dengan variabel respon Y yang bersifat dikotomi. Nilai variabel Y = 1 menyatakan adanya suatu karakteristik dan Y = 0 menyatakan tidak adanya suatu karakteristik. Menurut Hosmer dan Lemeshow (1989) model regresi logistik yang dipengaruhi 7 oleh p variabel prediktor dapat dinyatakan sebagai nilai harapan dari Y dengan diberikan nilai x
\[ p(x)={(e^{\beta_0+\Sigma^p _{k=1}\beta_k x_k}) / \ (1+e^{\beta_0+\Sigma^p _{k=1}\beta_k x_k)} } \]
Transformasi logit diterapkan pada model regresi logistik : \[ Logit(p(x))=g(x)=ln[p(x)/1-p(x)]=\beta_0+\Sigma^p _{k=1}\beta_k x_k \]
menaksir parameter model dengan metode maksimum likelihood :
\[ G^2=2\sum_{i} \sum_{j} n_{ij} ln \frac{(n_{ij})}{e_{ij}}\ \] Uji signifikasi dengan menggunakan Wald chi_square: \[W_{jk}=(\frac{\hat \beta}{\hat SE(\hat \beta_{jk})})^2\]
Regresi Logistik tidak membutuhkan Hubungan Linier antara variabel independen dengan variabel dependen. Variabel independen tidak memerlukan asumsi multivariate normality (asumsi bersifat normal), dan Asumsi homokedastisitas tidak diperlukan.
Data yang digunakan adalah data primer yang diambil di Kota Surakarta.Faktor pendapatan per kapita, tingkat pendidikan, dan status pekerjaan diuji pengaruhnya pada status gizi dengan model regresi logistik. Ketiga faktor tersebut menjadi variabel prediktor dari variabel respon status gizi. Data diambil dengan survey langsung di Kota Surakarta pada bulan September 2021. Kuesioner yang digunakan merupakan kuesioner bersama dari kelompok satu penelitian. Point dari kuesioner yang digunakan dalam Laporan praktikum ini adalah tinggi dan berat badan, pekerjaan, pendidikan terakhir, jumlah anggota keluarga yang masih menjadi tanggungan kepala keluarga, dan alokasi belanja keluarga dalam sebulan. Status gizi diperoleh dari pengukuran nilai IMT dengan menggunakan tinggi dan berat badan. Pendapatan per kapita diasumsikan dengan alokasi belanja keluarga dalam sebulan dibagi jumlah keluarga. Data ini diambil dari jurnal “MODEL REGRESI LOGISTIK UNTUK MENUNJUKKAN PENGARUH PENDAPATAN PER KAPITA, TINGKAT PENDIDIKAN, DAN STATUS PEKERJAAN TERHADAP STATUS GIZI MASYARAKAT KOTA SURAKARTA” yang ditulis oleh Setyo Utomo
> # Library
> library(rmarkdown)
> library(prettydoc)
> library(tinytex)
> library(readxl)
> library(equatiomatic)
> library(aod)
> library(lmtest)> #Mengimport Dataset Excel
> library(readxl)
> Dataketerangan <-read_excel("C:/Users/lenovo/Downloads/dataketerangan.xlsx")
> library(readxl)
> desainvariabel <- read_excel("C:/Users/lenovo/Downloads/desainvar.xlsx")
> library(readxl)
> Data1 <- read_excel("C:/Users/lenovo/Downloads/komstat1.xlsx")
>
> #menampilkan Dataketerangan
> View(Dataketerangan)
> head(Dataketerangan)
# A tibble: 6 x 4
Y X1 X2 X3
<chr> <dbl> <chr> <chr>
1 Gizi Normal 163 bersekolah PNS
2 Gizi tidak Normal 201 tidak bersekolah tidak bekerja
3 Gizi Normal 1167 bersekolah Wiraswasta
4 Gizi tidak Normal 400 tidak bersekolah Buruh
5 Gizi Normal 625 bersekolah PNS
6 Gizi Normal 1500 tidak bersekolah Wiraswasta
> str(Dataketerangan)
tibble [14 x 4] (S3: tbl_df/tbl/data.frame)
$ Y : chr [1:14] "Gizi Normal" "Gizi tidak Normal" "Gizi Normal" "Gizi tidak Normal" ...
$ X1: num [1:14] 163 201 1167 400 625 ...
$ X2: chr [1:14] "bersekolah" "tidak bersekolah" "bersekolah" "tidak bersekolah" ...
$ X3: chr [1:14] "PNS" "tidak bekerja" "Wiraswasta" "Buruh" ...
>
> #menampilkan desain variabel status pekerjaan
> View(desainvariabel)
> head(desainvariabel)
# A tibble: 4 x 4
`status pekerjaan` D1 D2 D3
<chr> <dbl> <dbl> <dbl>
1 Tidak bekerja 0 0 0
2 buruh 1 0 0
3 wiraswasta 0 1 0
4 PNS 0 0 1
> str(desainvariabel)
tibble [4 x 4] (S3: tbl_df/tbl/data.frame)
$ status pekerjaan: chr [1:4] "Tidak bekerja" "buruh" "wiraswasta" "PNS"
$ D1 : num [1:4] 0 1 0 0
$ D2 : num [1:4] 0 0 1 0
$ D3 : num [1:4] 0 0 0 1
>
> #menampilkan Data1
> View(Data1)
> head(Data1)
# A tibble: 6 x 7
Y X1 X2 D1 D2 D3 D4
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 163 1 0 0 0 1
2 0 201 0 1 0 0 0
3 1 1167 1 0 0 1 0
4 0 400 0 0 1 0 0
5 1 625 1 0 0 0 1
6 1 1500 0 0 0 1 0
> str(Data1)
tibble [14 x 7] (S3: tbl_df/tbl/data.frame)
$ Y : num [1:14] 1 0 1 0 1 1 0 0 1 1 ...
$ X1: num [1:14] 163 201 1167 400 625 ...
$ X2: num [1:14] 1 0 1 0 1 0 0 1 1 1 ...
$ D1: num [1:14] 0 1 0 0 0 0 0 0 0 0 ...
$ D2: num [1:14] 0 0 0 1 0 0 1 1 0 0 ...
$ D3: num [1:14] 0 0 1 0 0 1 0 0 0 0 ...
$ D4: num [1:14] 1 0 0 0 1 0 0 0 1 1 ...Karena variabel status pekerjaan merupakan variabel politokomus (lebih dari 2 kategori), maka dibentuk variabel baru dengan desain seperti tabel di atas dengan ada tambahan tabel untuk desain keterangan variabel status pekerjaan.
> # Y= Status Gizi
> #X1= Pendapatan perkapita(ribuan)
> #X2=Tingkat Pendidikan
> #D=Status Pekerjaan
>
> Y<-Data1$Y
> X1<-Data1$X1
> X2<-Data1$X2
> D1<-Data1$D1
> D2<-Data1$D2
> D3<-Data1$D3
> D4<-Data1$D4> library(rmarkdown)
> paged_table(as.data.frame(Data1))> scatter.smooth(x= Y, y=X1, main = " HUBUNGAN ANTARA PENDAPATAN PER KAPITA TERHADAP STATUS GIZI MASYARAKAT", xlab = "Y", ylab = "X1")> library(lmtest)
> model_full<-lm(Y~X1+ X2 + D1 + D2 + D3 + D4, data=Data1)
> model_reduced<-lm(Y~X1+X2, data=Data1)
> lrtest(model_full,model_reduced)
Likelihood ratio test
Model 1: Y ~ X1 + X2 + D1 + D2 + D3 + D4
Model 2: Y ~ X1 + X2
#Df LogLik Df Chisq Pr(>Chisq)
1 7 501.65
2 4 -1.12 -3 1005.6 < 2.2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1> model1<-lm(Y~X1+X2+D1+D2+D3,data=Data1)
> summary(model1)
Call:
lm(formula = Y ~ X1 + X2 + D1 + D2 + D3, data = Data1)
Residuals:
Min 1Q Median 3Q Max
-1.324e-16 -5.641e-17 9.003e-18 5.266e-17 1.217e-16
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.000e+00 1.182e-16 8.463e+15 <2e-16 ***
X1 7.465e-21 9.555e-20 7.800e-02 0.9396
X2 -1.918e-16 8.143e-17 -2.355e+00 0.0463 *
D1 -1.000e+00 1.164e-16 -8.591e+15 <2e-16 ***
D2 -1.000e+00 9.098e-17 -1.099e+16 <2e-16 ***
D3 -4.902e-17 9.743e-17 -5.030e-01 0.6284
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 8.779e-17 on 8 degrees of freedom
Multiple R-squared: 1, Adjusted R-squared: 1
F-statistic: 8.898e+31 on 5 and 8 DF, p-value: < 2.2e-16
> library(aod)
> wald.test(Sigma =vcov(model1), b = coef(model1),Terms = 2:3)
Wald test:
----------
Chi-squared test:
X2 = 5.6, df = 2, P(> X2) = 0.061> library(aod)
> wald.test(Sigma =vcov(model1), b = coef(model1),Terms = 2:4)
Wald test:
----------
Chi-squared test:
X2 = 2.6e+32, df = 3, P(> X2) = 0.0> library(aod)
> wald.test(Sigma =vcov(model1), b = coef(model1),Terms = 2:5)
Wald test:
----------
Chi-squared test:
X2 = 3.9e+32, df = 4, P(> X2) = 0.0> library(aod)
> wald.test(Sigma =vcov(model1), b = coef(model1),Terms = 2:6)
Wald test:
----------
Chi-squared test:
X2 = 4.4e+32, df = 5, P(> X2) = 0.0> library(aod)
> wald.test(Sigma =vcov(model1), b = coef(model1),Terms = 3:4)
Wald test:
----------
Chi-squared test:
X2 = 1.6e+32, df = 2, P(> X2) = 0.0> library(aod)
> wald.test(Sigma =vcov(model1), b = coef(model1),Terms = 3:5)
Wald test:
----------
Chi-squared test:
X2 = 2.3e+32, df = 3, P(> X2) = 0.0> library(aod)
> wald.test(Sigma =vcov(model1), b = coef(model1),Terms = 3:6)
Wald test:
----------
Chi-squared test:
X2 = 2.4e+32, df = 4, P(> X2) = 0.0> library(aod)
> wald.test(Sigma =vcov(model1), b = coef(model1),Terms = 4:5)
Wald test:
----------
Chi-squared test:
X2 = 1.2e+32, df = 2, P(> X2) = 0.0> library(aod)
> wald.test(Sigma =vcov(model1), b = coef(model1),Terms = 4:6)
Wald test:
----------
Chi-squared test:
X2 = 1.2e+32, df = 3, P(> X2) = 0.0> library(aod)
> wald.test(Sigma =vcov(model1), b = coef(model1),Terms = 5:6)
Wald test:
----------
Chi-squared test:
X2 = 1.2e+32, df = 2, P(> X2) = 0.0> library(aod)
> wald.test(Sigma =vcov(model1), b = coef(model1),Terms = 1:2)
Wald test:
----------
Chi-squared test:
X2 = 1.3e+32, df = 2, P(> X2) = 0.0> library(aod)
> wald.test(Sigma =vcov(model1), b = coef(model1),Terms = 1:3)
Wald test:
----------
Chi-squared test:
X2 = 7.8e+32, df = 3, P(> X2) = 0.0> library(aod)
> wald.test(Sigma =vcov(model1), b = coef(model1),Terms = 1:4)
Wald test:
----------
Chi-squared test:
X2 = 7.8e+32, df = 4, P(> X2) = 0.0> library(aod)
> wald.test(Sigma =vcov(model1), b = coef(model1),Terms = 1:5)
Wald test:
----------
Chi-squared test:
X2 = 7.8e+32, df = 5, P(> X2) = 0.0> library(aod)
> wald.test(Sigma =vcov(model1), b = coef(model1),Terms = 1:6)
Wald test:
----------
Chi-squared test:
X2 = 1e+33, df = 6, P(> X2) = 0.0> ModelLogistik <- glm(Y ~ X1 + X2 + D1 + D2 + D3 + D4, data = Data1, family = binomial(link = "logit"))
> summary(ModelLogistik)
Call:
glm(formula = Y ~ X1 + X2 + D1 + D2 + D3 + D4, family = binomial(link = "logit"),
data = Data1)
Deviance Residuals:
Min 1Q Median 3Q Max
-3.971e-06 -3.971e-06 3.971e-06 3.971e-06 3.971e-06
Coefficients: (1 not defined because of singularities)
Estimate Std. Error z value Pr(>|z|)
(Intercept) 2.557e+01 2.907e+05 0 1
X1 -2.569e-13 2.351e+02 0 1
X2 4.113e-11 2.004e+05 0 1
D1 -5.113e+01 2.864e+05 0 1
D2 -5.113e+01 2.239e+05 0 1
D3 1.056e-07 2.397e+05 0 1
D4 NA NA NA NA
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 1.9121e+01 on 13 degrees of freedom
Residual deviance: 2.2078e-10 on 8 degrees of freedom
AIC: 12
Number of Fisher Scoring iterations: 24Untuk menampilkan data dari excel de dalam rstudio digunakan function read_excel dengan library readxl, argument yang digunakan adalah “Dataketerangan <-read_excel(”C:/Users/avita/Downloads/dataketerangan.xlsx“)” dengan Data keterangan sebagai nama untuk memanggil data excel dan C:/Users/avita/Downloads/dataketerangan.xlsx letak dimana data excel terletak dilaptop pengguna, begitu pula dengan desainvariabel dan Data1 Setelah itu function “view” digunakan untuk menampilkan data yang sudah di Import tadi dengan argumen yang diisikan dalam function adalah nama data yang ada di R tadi seperti, ingin memanggil data keterangan maka menuliskan view(dataketerangan), setelah itu function head digunakan untuk menampilkan 6 data teratas dengan argumen data yang ingin dipanggil, semisal head(dataketerangan) maka akan dimunculkan 6 data keterangan dioutputnya, setelah itu function str digunakan untuk menampilkan struktur data,nama,tipe dan previe data, dengan argumennya menuliskan data yang ingin diketahui struktur data,nama,tipe dan previe data, contohnya str(dataketerangan) maka akan ditampilkan struktur data,nama,tipe dan previe data keterangan dioutputnya setlah itu untuk mendefinisikan vektor maka menggunakan “Y<-Data1Y” dengan keterangan Y digunakan untuk nama vektor nanti yang akan dipanggil dan Data1$Y adalah letak dimana vektor nanti yang akan dipanggil yaitu di Data1 pada kolom Y saja, begitu pula dengan X1,X2,D1,D2,D3, dan D4. Untuk membuat tabel di dalam rmarkdown maka harus menggunakan function paged_table dengan argumen as.data.frame(Data1) argumen ini untuk menapilkan data frame mana yang akan dipanggil. Untuk membuat plot maka bisa menggunakan function scatter.smooth dengan argumen yang diisikan adalah (x= Y, y=X1, main = " HUBUNGAN ANTARA PENDAPATAN PER KAPITA TERHADAP STATUS GIZI MASYARAKAT“, xlab =”X1“, ylab =”Y“), dengan X adalah variabel responnya yaitu Y= status gizi masyarakat dan Y adalah variabel prediktor yaitu pendapatan perkapita, untuk menambahkan judul maka diberi main = judul yang diinginkan semisal” HUBUNGAN ANTARA PENDAPATAN PER KAPITA TERHADAP STATUS GIZI MASYARAKAT“, dan Xlab yaitu sebagai garis vertikal, dengan garis vertikalnya yaitu Y, dan Y sebagai garis horizontalnya yaitu X1. Selanjutnya untuk Menaksir parameter model dengan metode maksimum likelihood menggunakan library (lmtest), dengan function (lm) yang digunakan untuk pembentukan model linier, dengan argumennya model_full<-lm(Y~X1+ X2 + D1 + D2 + D3 + D4, data=Data1), model_full digunakan sebagai nama untuk memanggil model yang telah dibentuk, lm digunakan untuk pembentukan model, Y~X1+ X2 + D1 + D2 + D3 + D4 adalah formula model yang hendak dibentuk, dan data=Data1 adalah data yang digunakan untuk membentuk model. penjelasan tersebut berlaku juga untuk model_reduced<-lm(Y~X1+X2, data=Data1). setelah itu berlaku function lrtest yang digunakan untuk pembentukan model metode maksimum likelihood dengan argumennya adalah (model_full,model_reduced) yang artinya model yang ingin diketahui maksimum likelihoodnya.setelah itu disummary dan akan muncul outputnya. Untuk Uji signifikansi dengan Wald Chi-square maka menggunakan function yang tadi sudah digunakan pada maksimum likelihood yaitu lm dengan argumen lm(Y~X1+ X2 + D1 + D2 + D3 + D4, data=Data1). setelah function yang digunakan untuk pembentukan model wald chi-square maka menggunakan function wald.test yang berada pada library (aod), dengan argumennya adalah (Sigma =vcov(model1), b = coef(model1),Terms = 2:3) dengan sigma=vcov(model1) sebagai Matriks varians-kovarians dari model regresi, untuk b= coef(model1) sebagai Vektor koefisien regresi dari model, dan untuk Terms = 2:3 sebagai Vektor yang menentukan koefisien mana yang akan diuji, begitu juga untu wald.test dengan variabel yang akan di Uji. setelah itu disummary dan akan muncul outputnya. Untuk Analisis Regresi Logistik bisa menggunakan function glm dapat digunakan untuk membentuk model regresi logistik, dengan argumennya adalah (Y ~ X1 + X2 + D1 + D2 + D3 + D4, data = Data1, family = binomial(link =”logit“), dengan Y ~ X1 + X2 + D1 + D2 + D3 + D4 sebagai formula model yang hendak dibentuk, data=Data1 sebagai data yang digunakan untuk membentuk model, dan family=binomial(link=”logit) sebagai distribusi yang digunakan. Untuk regresi logistik digunakan argumen family=binomial, dengan link functionnya logit. setelah itu disummary dan akan muncul outputnya.
Uji Hipotesis : \[ H_0 : \beta_{jk}=0 \] \[H_1:terdapat\ paling\ tidak\ satu\ variabel\ prediktor\ yang\ berpengaruh\ pada\ status\ gizi\]
\[Tingkat\ Signifikansi\ yang\ digunakan\ adalah\ \alpha\ = 0,05 \] \[H_0\ ditolak\ jika\ G > X^2_{0.05,13} = 22,36\]
\[Statistik\ Uji\ G\ = 1005,6\]
\[diperoleh\ 1005,6 > 22,36\ maka\ H_0\ ditolak\] \[Maka\ dapat\ disimpulkan\ bahwa\ terdapat\ paling\ tidak\ ada\ satu\ variabel\ prediktor\ yang\ mempengaruhi\ pada\ status\ gizi.\]
Selanjutnya dilakukan uji signifikansi parameter model secara terpisah karena terdapat variabel prediktor yang berpengaruh pada model. Digunakan uji wald Chi-Square. Dari hasil uji Wald Chi-square variabel yang sangat berpengaruh pada Gizi mayarakat adalah pendapatan perkapita karena nilai statistik ujinya lebih besar dari chi-square tabel yaitu 3,84
Maka model logistik yang terbentuk adalah \[P(\hat Y=1)=\phi[(2.557e+01) + (-2.569e-13)X1 + (4.113e-11)X2 + (-5.113e+01)D1 + (-5.113e+01)D2 + (1.056-07)D3\] \[Hasil\ pendugaan\ menggunakan\ Rstudio\ sama dengan\ hasil\ pendugaan secara\ manual.\\ Terlihat\ pada\ kolom\ “Estimate”\ yaitu\ untuk\ intersep\ atau\ penduga\ \beta_0\ adalah\\ 2.557e+01,\ penduga\ \beta_1 adalah\ -2.569e-13,\ penduga\ \beta_2 adalah\ 4.113e-11,\\ penduga\ \beta_3 adalah\ 5.113e+01,\ penduga \beta_4 adalah\ 5.113e+01,\ penduga \beta_5\ adalah\ 1.056-07. \]
Variabel yang berpengaruh terhadap status gizi orang dewasa di Kota Surakarta adalah pendapatan per kapita. Status pekerjaan dan tingkat pendidikan tidak berpengaruh secara langsung terhadap status gizi jika dimodelkan dengan regresi logistik.
Kusuma, I. (2008). Penerapan Model Regresi Logistik Polytomous dengan Metode Best Subset untuk Menentukan Faktor yang Mempengaruhi Status Gizi Masyarakat Kota Surakarta. Skripsi Jurusan Matematika FMIPA UNS, Surakarta