Responsi 7 STA543 Analisis Data Kategorik

Model Regresi Logit Ordinal

setwd("D:\\Kuliah S2 IPB\\Bahan Kuliah\\Semester 2 SSD 2020\\STA543 ADK\\Responsi\\R\\UTS\\")

Pendahuluan

Regresi logistik biner digunakan untuk memodelkan hubungan antara peubah respon yang terdiri dari dua kategori dengan satu atau lebih peubah penjelas. Peubah penjelasnya bisa berupa data kontinu atau kategorik. Sedangkan regresi logistik ordinal digunakan untuk memodelkan hubungan antara peubah respon lebih dari dua kategori berskala ordinal (ada tingkatan) dengan satu atau lebih peubah penjelas. Peubah penjelasnya bisa berupa data kontinu atau kategorik.

Soal 1

Input Data

##=====================##
# INPUT DATA
##=====================##
dataku<-read.csv("data_mental.csv", sep=";", header=TRUE)
dim(dataku)
## [1] 40  5
head(dataku)
##   Mental_Imp degree degree_2 x2 x1
## 1       well      1        4  1  1
## 2       well      1        4  1  9
## 3       well      1        4  1  4
## 4       well      1        4  1  3
## 5       well      1        4  0  2
## 6       well      1        4  1  0
View(dataku)
mental.degree<-factor(dataku$degree)
ses<-factor(dataku$x2)
life<-dataku$x1
data.frame(mental.degree,ses,life)
##    mental.degree ses life
## 1              1   1    1
## 2              1   1    9
## 3              1   1    4
## 4              1   1    3
## 5              1   0    2
## 6              1   1    0
## 7              1   0    1
## 8              1   1    3
## 9              1   1    3
## 10             1   1    7
## 11             1   0    1
## 12             1   0    2
## 13             2   1    5
## 14             2   0    6
## 15             2   1    3
## 16             2   0    1
## 17             2   1    8
## 18             2   1    2
## 19             2   0    5
## 20             2   1    5
## 21             2   1    9
## 22             2   0    3
## 23             2   1    3
## 24             2   1    1
## 25             3   0    0
## 26             3   1    4
## 27             3   0    3
## 28             3   0    9
## 29             3   1    6
## 30             3   0    4
## 31             3   0    3
## 32             4   1    8
## 33             4   1    2
## 34             4   1    7
## 35             4   0    5
## 36             4   0    4
## 37             4   0    4
## 38             4   1    8
## 39             4   0    8
## 40             4   0    9

Fitting Model

##=====================## 
# FITTING MODEL 
##=====================##
library('foreign')
library('MASS')
library('nnet')
model<-polr(mental.degree~ses+life, method="logistic")
summary(model)
## 
## Re-fitting to get Hessian
## Call:
## polr(formula = mental.degree ~ ses + life, method = "logistic")
## 
## Coefficients:
##        Value Std. Error t value
## ses1 -1.1112     0.6109  -1.819
## life  0.3189     0.1210   2.635
## 
## Intercepts:
##     Value   Std. Error t value
## 1|2 -0.2819  0.6423    -0.4389
## 2|3  1.2128  0.6607     1.8357
## 3|4  2.2094  0.7210     3.0644
## 
## Residual Deviance: 99.0979 
## AIC: 109.0979

A. Bandingkan hasilnya dengan output SAS pada buku Agresti tersebut serta berikan interpretasi pada tiap nilai dugaan parameter model.

##=====================## 
# FITTING MODEL 
##=====================##

model<-polr(mental.degree~ses+life, method="logistic")
summary(model)
## 
## Re-fitting to get Hessian
## Call:
## polr(formula = mental.degree ~ ses + life, method = "logistic")
## 
## Coefficients:
##        Value Std. Error t value
## ses1 -1.1112     0.6109  -1.819
## life  0.3189     0.1210   2.635
## 
## Intercepts:
##     Value   Std. Error t value
## 1|2 -0.2819  0.6423    -0.4389
## 2|3  1.2128  0.6607     1.8357
## 3|4  2.2094  0.7210     3.0644
## 
## Residual Deviance: 99.0979 
## AIC: 109.0979

Output SAS:

##Interpretasi prameter#
coefmodel<-c(-model$coefficients,model$zeta)
data.frame(coefmodel,expcoef=exp(coefmodel)) 
##       coefmodel   expcoef
## ses1  1.1112310 3.0380960
## life -0.3188613 0.7269764
## 1|2  -0.2819031 0.7543468
## 2|3   1.2127926 3.3628626
## 3|4   2.2093721 9.1099947

B. Berdasarkan hasil pada poin (a) diatas, tentukan nilai dugaan 𝑃(𝑌)=1,𝑃(𝑌)=3 , dan 𝑃(𝑌)>2

##=====================## 
# predict model
##=====================## 
new<-data.frame(ses=factor(c(1)),life=4) 
predik<-predict(model, newdata=new, type="probs") #peluang point
peluang<-data.frame(cumulatif=cumsum(predik),point=predik) 
peluang
##   cumulatif     point
## 1 0.3902843 0.3902843
## 2 0.7405018 0.3502175
## 3 0.8854574 0.1449556
## 4 1.0000000 0.1145426
#peluang p(>2)
1-peluang[1,1] 
## [1] 0.6097157

C. Tentukan model terbaik

Menguji pengaruh interaksi life score dan ses terhadap gangguan mental

#model interaksi life*ses
model1<-polr(mental.degree~life*ses,method="logistic") 
summary(model1)
## 
## Re-fitting to get Hessian
## Call:
## polr(formula = mental.degree ~ life * ses, method = "logistic")
## 
## Coefficients:
##             Value Std. Error t value
## life       0.4204     0.1864  2.2551
## ses1      -0.3709     1.1361 -0.3265
## life:ses1 -0.1813     0.2383 -0.7608
## 
## Intercepts:
##     Value   Std. Error t value
## 1|2  0.0981  0.8195     0.1197
## 2|3  1.5925  0.8396     1.8968
## 3|4  2.6066  0.9035     2.8849
## 
## Residual Deviance: 98.50444 
## AIC: 110.5044
library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
lrtest(model1,model)#cek interaksi
## Likelihood ratio test
## 
## Model 1: mental.degree ~ life * ses
## Model 2: mental.degree ~ ses + life
##   #Df  LogLik Df  Chisq Pr(>Chisq)
## 1   6 -49.252                     
## 2   5 -49.549 -1 0.5935     0.4411

Menguji pengaruh ses terhadap gangguan mental

#model hanya peubah life 
model2<-polr(mental.degree~life,method="logistic") 
summary(model2)
## 
## Re-fitting to get Hessian
## Call:
## polr(formula = mental.degree ~ life, method = "logistic")
## 
## Coefficients:
##       Value Std. Error t value
## life 0.2879     0.1175   2.451
## 
## Intercepts:
##     Value  Std. Error t value
## 1|2 0.2614 0.5639     0.4636 
## 2|3 1.6563 0.6171     2.6838 
## 3|4 2.5876 0.6938     3.7296 
## 
## Residual Deviance: 102.5271 
## AIC: 110.5271
lrtest (model2,model)#cek ses
## Likelihood ratio test
## 
## Model 1: mental.degree ~ life
## Model 2: mental.degree ~ ses + life
##   #Df  LogLik Df  Chisq Pr(>Chisq)  
## 1   4 -51.264                       
## 2   5 -49.549  1 3.4292    0.06405 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Menguji pengaruh life score terhadap gangguan mental

#model hanya peubah ses
model3<-polr(mental.degree~ses,method="logistic") 
summary(model3)
## 
## Re-fitting to get Hessian
## Call:
## polr(formula = mental.degree ~ ses, method = "logistic")
## 
## Coefficients:
##        Value Std. Error t value
## ses1 -0.8553     0.5865  -1.458
## 
## Intercepts:
##     Value   Std. Error t value
## 1|2 -1.3638  0.5038    -2.7070
## 2|3 -0.0417  0.4448    -0.0938
## 3|4  0.8306  0.4659     1.7827
## 
## Residual Deviance: 106.8744 
## AIC: 114.8744
lrtest (model3,model)#cek ses
## Likelihood ratio test
## 
## Model 1: mental.degree ~ ses
## Model 2: mental.degree ~ ses + life
##   #Df  LogLik Df  Chisq Pr(>Chisq)   
## 1   4 -53.437                        
## 2   5 -49.549  1 7.7765   0.005293 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

D. Misalkan seorang individu diketahui bahwa Life Events (x1=8) dan SES (x2=1), berdasarkan model pada poin (c) tentukan dugaan “Mental Impairment”

#prediksi data baru
new=data.frame(life=8,ses=as.factor("1"))
predict(model3,newdata=new,"probs")
##         1         2         3         4 
## 0.3755634 0.3173147 0.1508126 0.1563094

Berdasarkan hasil output R di atas maka dugaan mental impairment-nya adalah well karena memiliki peluang paling besar

Soal 2

A. Persamaan regresi logistic untuk memprediksi odd bahwa seorang anak mencapai second proficiency level (level 1) or less

B. prediksi odd seorang anak laki-laki akan mencapai second proficiency level (level 1) or less dan prediksi odd yang sama untuk perempuan

C. jelaskan bagaimana jawaban anda pada part (a) dan (b) berkaitan dengan interpretasi pendugaan parameter untuk gender

D. ulangi bagian (a), (b) dan (c) untuk odd bahwa seorang anak mencapai first proficiency level (level 0) atau dibawahnya

Soal 3

A.Berapa prediksi peluang kumulatif untuk seorang anak laki-laki mencapai fourth proficiency level (level 3) or less? Berapa prediksi peluang kumulatif untuk seorang anak laki-laki mencapai third proficiency level (level 2) or less?

B. Berapa prediksi peluang seorang anak laki-laki mencapai fourth proficiency level (level 3)? Berapa dugaan peluang yang sama untuk anak perempuan?

C. Berapa prediksi peluang seorang anak laki-laki mencapai the highest proficiency level (level 5)? Berapa dugaan peluang yang sama untuk anak perempuan?


  1. Mahasiswa Pascasarjana Statistika dan Sains Data, IPB University, ↩︎