MODEL LOGLINIER TIGA ARAH

Tujuan

  1. Mempelajari program R untuk model log linier tiga arah.
  2. Mengaplikasikan program R untuk menyelesaikan model log linier tiga arah.

Pendahuluan

Menurut Agung (2003) data trivariat (W, X, Y) dengan W, X, dan Y merupakan variabel kategorik yang berturut-turut mempunyai i, j, dan k kategorik maka data trivariat dapat disajikan dalam bentuk tabel frekuensi menurut variabel W, X, dan Y. Tabel yang terbentuk merupakan tabel kontingensi dimensi tiga yang mempunyai (i x j x k) sel, yang terdiri dari i baris, j kolom, dan k lapis. Tabel kontingensi tiga dimensi disebut juga tabel kontingensi i x j x k. Dari tabel kontingensi tiga variabel (dimensi) dapat diperoleh suatu model log linear yang disebut model log linear trivariat. Bentuk umum model log linear trivariat adalah (Agung, 2003).

Dengan syarat atau asumsi bahwa jumlah nilai parameter pengaruh menurut setiap indeks i, j, dan k, sama dengan nol.

Program R

Contoh kasus adalah hasil penelitian pelajar di Ohio yang pernah menggunakan alcohol, rokok dan mariyuana dangan data sebagai berikut:

Masukkan data di atas pada program R seperti langkah sebelumnya dan lakukan pembobotan.

z.Alkohol<-factor(rep(c("Yes","No"),each=4))
x.Cigarette<-factor(rep(c("Yes","No"),each=2,times=2))
y.Marijuana<-factor(rep(c("Yes","No"),times=4)) 
counts<-c(911, 538, 44,  456, 3, 43, 2, 279)
data.frame(z.Alkohol,x.Cigarette,y.Marijuana,counts) 
##   z.Alkohol x.Cigarette y.Marijuana counts
## 1       Yes         Yes         Yes    911
## 2       Yes         Yes          No    538
## 3       Yes          No         Yes     44
## 4       Yes          No          No    456
## 5        No         Yes         Yes      3
## 6        No         Yes          No     43
## 7        No          No         Yes      2
## 8        No          No          No    279

A.UJI MODEL INTERAKSI TIGA ARAH (SATURATED VS HOMOGENOUS)

Penentuan Kategori Referensi
x.Cigarette<-relevel(x.Cigarette,ref="No") 
y.Marijuana<-relevel(y.Marijuana,ref="No")
z.Alkohol<-relevel(z.Alkohol,ref="No")
Saturated Model
model<- glm(counts~ x.Cigarette+ y.Marijuana+ z.Alkohol+
               x.Cigarette*y.Marijuana+ x.Cigarette*z.Alkohol+ y.Marijuana*z.Alkohol+
               x.Cigarette*y.Marijuana*z.Alkohol, family=poisson("link"=log)) 
summary(model)
## 
## Call:
## glm(formula = counts ~ x.Cigarette + y.Marijuana + z.Alkohol + 
##     x.Cigarette * y.Marijuana + x.Cigarette * z.Alkohol + y.Marijuana * 
##     z.Alkohol + x.Cigarette * y.Marijuana * z.Alkohol, family = poisson(link = log))
## 
## Coefficients:
##                                            Estimate Std. Error z value Pr(>|z|)
## (Intercept)                                 5.63121    0.05987  94.060  < 2e-16
## x.CigaretteYes                             -1.87001    0.16383 -11.414  < 2e-16
## y.MarijuanaYes                             -4.93806    0.70964  -6.959 3.44e-12
## z.AlkoholYes                                0.49128    0.07601   6.464 1.02e-10
## x.CigaretteYes:y.MarijuanaYes               2.27548    0.92746   2.453 0.014149
## x.CigaretteYes:z.AlkoholYes                 2.03538    0.17576  11.580  < 2e-16
## y.MarijuanaYes:z.AlkoholYes                 2.59976    0.72698   3.576 0.000349
## x.CigaretteYes:y.MarijuanaYes:z.AlkoholYes  0.58951    0.94236   0.626 0.531600
##                                               
## (Intercept)                                ***
## x.CigaretteYes                             ***
## y.MarijuanaYes                             ***
## z.AlkoholYes                               ***
## x.CigaretteYes:y.MarijuanaYes              *  
## x.CigaretteYes:z.AlkoholYes                ***
## y.MarijuanaYes:z.AlkoholYes                ***
## x.CigaretteYes:y.MarijuanaYes:z.AlkoholYes    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 2.8515e+03  on 7  degrees of freedom
## Residual deviance: 3.2618e-13  on 0  degrees of freedom
## AIC: 65.043
## 
## Number of Fisher Scoring iterations: 3
exp(model$coefficients)
##                                (Intercept) 
##                               2.790000e+02 
##                             x.CigaretteYes 
##                               1.541219e-01 
##                             y.MarijuanaYes 
##                               7.168459e-03 
##                               z.AlkoholYes 
##                               1.634409e+00 
##              x.CigaretteYes:y.MarijuanaYes 
##                               9.732558e+00 
##                x.CigaretteYes:z.AlkoholYes 
##                               7.655141e+00 
##                y.MarijuanaYes:z.AlkoholYes 
##                               1.346053e+01 
## x.CigaretteYes:y.MarijuanaYes:z.AlkoholYes 
##                               1.803106e+00
Homogenous Model
model2 <- glm(counts~ x.Cigarette+ y.Marijuana+ z.Alkohol+
             x.Cigarette*y.Marijuana+ x.Cigarette*z.Alkohol+ y.Marijuana*z.Alkohol, family=poisson("link"=log)) 
summary(model2)
## 
## Call:
## glm(formula = counts ~ x.Cigarette + y.Marijuana + z.Alkohol + 
##     x.Cigarette * y.Marijuana + x.Cigarette * z.Alkohol + y.Marijuana * 
##     z.Alkohol, family = poisson(link = log))
## 
## Coefficients:
##                               Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                    5.63342    0.05970  94.361  < 2e-16 ***
## x.CigaretteYes                -1.88667    0.16270 -11.596  < 2e-16 ***
## y.MarijuanaYes                -5.30904    0.47520 -11.172  < 2e-16 ***
## z.AlkoholYes                   0.48772    0.07577   6.437 1.22e-10 ***
## x.CigaretteYes:y.MarijuanaYes  2.84789    0.16384  17.382  < 2e-16 ***
## x.CigaretteYes:z.AlkoholYes    2.05453    0.17406  11.803  < 2e-16 ***
## y.MarijuanaYes:z.AlkoholYes    2.98601    0.46468   6.426 1.31e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 2851.46098  on 7  degrees of freedom
## Residual deviance:    0.37399  on 1  degrees of freedom
## AIC: 63.417
## 
## Number of Fisher Scoring iterations: 4
Pengujian Hipotesis

\(H_o\) : Tidak ada interaksi antara X, Y, dan Z
\(H_1\) : Ada interaksi X, Y, dan Z

# Deviance of Model
Deviance.model<- model2$deviance - model$deviance
Deviance.model
## [1] 0.3739859
model2$df.residual
## [1] 1
# Chi Square tabel dengan alpa = 0.05
derajat.bebas <- (model2$df.residual - model$df.residual)
derajat.bebas
## [1] 1
chi.tabel <- qchisq((1-0.05), df=derajat.bebas) 
chi.tabel
## [1] 3.841459
Keputusan <- ifelse(Deviance.model <= chi.tabel,"Terima", "Tolak")
Keputusan
## [1] "Terima"

Pada taraf nyata 5%, belum cukup bukti untuk menolak 𝐻0 atau dapat dikatakan bahwa tidak ada interaksi tiga arah antara pengguna alkohol, pengguna rokok, dan pengguna ganja.
Ingat, dalam membuat selisih deviance, model yang menjadi pengurang adalah model yang lebih lengkap (parameter yang lebih banyak atau derajat bebasnya lebih kecil). Makin banyak parameter, makin kecil derajat bebas nya karena derajat bebas = banyaknya amatan atau perkalian dimensi tabel kontingensi (misal: 2x2x3 = 12) - banyaknya parameter atau koefisien (lihat di output R ada berapa banyak coefficients nya termasuk intercept) .

B.UJI MODEL INTERAKSI DUA ARAH (HOMOGENOUS VS CONDITIONAL ON X)

Model
model3<-glm(counts~ x.Cigarette+ y.Marijuana+ z.Alkohol+
               x.Cigarette*y.Marijuana + x.Cigarette*z.Alkohol, 
             family=poisson("link"=log))
summary(model3)
## 
## Call:
## glm(formula = counts ~ x.Cigarette + y.Marijuana + z.Alkohol + 
##     x.Cigarette * y.Marijuana + x.Cigarette * z.Alkohol, family = poisson(link = log))
## 
## Coefficients:
##                               Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                    5.57765    0.06032  92.463  < 2e-16 ***
## x.CigaretteYes                -2.69414    0.16257 -16.572  < 2e-16 ***
## y.MarijuanaYes                -2.77123    0.15199 -18.233  < 2e-16 ***
## z.AlkoholYes                   0.57625    0.07456   7.729 1.08e-14 ***
## x.CigaretteYes:y.MarijuanaYes  3.22431    0.16098  20.029  < 2e-16 ***
## x.CigaretteYes:z.AlkoholYes    2.87373    0.16730  17.178  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 2851.461  on 7  degrees of freedom
## Residual deviance:   92.018  on 2  degrees of freedom
## AIC: 153.06
## 
## Number of Fisher Scoring iterations: 6
Pengujian Hipotesis

\(H_o\) : Tidak ada interaksi antara Y dan Z
\(H_1\) : Ada interaksi Y dan Z
Conditional Association on X

#Deviance of Model
Deviance.model<- model3$deviance - model2$deviance  
#model3: conditional on X, model2: homogenous
Deviance.model
## [1] 91.64437
# Chi Square tabel dengan alpa = 0.05
derajat.bebas <- (model3$df.residual - model2$df.residual)
derajat.bebas
## [1] 1
chi.tabel <- qchisq((1-0.05), df=derajat.bebas) 
chi.tabel
## [1] 3.841459
Keputusan <- ifelse(Deviance.model <= chi.tabel,"Terima", "Tolak")
Keputusan
## [1] "Tolak"

Pada taraf nyata 5%, cukup bukti untuk menolak 𝐻0 atau dapat dikatakan bahwa interaksi YZ signifikan (ada interaksi dua arah antara pengguna rokok dengan pengguna alkohol.

C. UJI MODEL INTERAKSI DUA ARAH (HOMOGENOUS VS CONDITIONAL ON Y)

Model
model4<-glm(counts~ x.Cigarette+ y.Marijuana+ z.Alkohol+
               x.Cigarette*y.Marijuana+ y.Marijuana*z.Alkohol, 
             family=poisson("link"=log))  
summary(model4)
## 
## Call:
## glm(formula = counts ~ x.Cigarette + y.Marijuana + z.Alkohol + 
##     x.Cigarette * y.Marijuana + y.Marijuana * z.Alkohol, family = poisson(link = log))
## 
## Coefficients:
##                               Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                    5.19207    0.06088  85.285  < 2e-16 ***
## x.CigaretteYes                -0.23512    0.05551  -4.235 2.28e-05 ***
## y.MarijuanaYes                -6.62092    0.47370 -13.977  < 2e-16 ***
## z.AlkoholYes                   1.12719    0.06412  17.579  < 2e-16 ***
## x.CigaretteYes:y.MarijuanaYes  3.22431    0.16098  20.029  < 2e-16 ***
## y.MarijuanaYes:z.AlkoholYes    4.12509    0.45294   9.107  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 2851.46  on 7  degrees of freedom
## Residual deviance:  187.75  on 2  degrees of freedom
## AIC: 248.8
## 
## Number of Fisher Scoring iterations: 5
Pengujian Hipotesis

\(H_o\) : Tidak ada interaksi antara X dan Z
\(H_1\) : Ada interaksi X dan Z
Conditional Association on Y

# Deviance of Model
Deviance.model<- model4$deviance - model2$deviance 
#model4: conditional on Y, model2: homogenous
Deviance.model
## [1] 187.3803
# Chi Square tabel dengan alpa = 0.05
derajat.bebas <- (model4$df.residual - model2$df.residual)
derajat.bebas
## [1] 1
chi.tabel <- qchisq((1-0.05), df=derajat.bebas) 
chi.tabel
## [1] 3.841459
Keputusan <- ifelse(Deviance.model <= chi.tabel,"Terima", "Tolak")
Keputusan
## [1] "Tolak"

Pada taraf nyata 5%, cukup bukti untuk menolak 𝐻0 atau dapat dikatakan bahwa interaksi XZ signifikan (ada interaksi dua arah antara pengguna ganja dengan pengguna alkohol.

D. UJI MODEL INTERAKSI DUA ARAH (HOMOGENOUS VS CONDITIONAL ON Z)

Model
model5<-glm(counts~ x.Cigarette+ y.Marijuana+ z.Alkohol+
               x.Cigarette*z.Alkohol+ y.Marijuana*z.Alkohol, 
             family=poisson("link"=log)) 
summary(model5)
## 
## Call:
## glm(formula = counts ~ x.Cigarette + y.Marijuana + z.Alkohol + 
##     x.Cigarette * z.Alkohol + y.Marijuana * z.Alkohol, family = poisson(link = log))
## 
## Coefficients:
##                             Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                  5.62295    0.06005  93.635   <2e-16 ***
## x.CigaretteYes              -1.80971    0.15905 -11.378   <2e-16 ***
## y.MarijuanaYes              -4.16511    0.45067  -9.242   <2e-16 ***
## z.AlkoholYes                -0.08167    0.07810  -1.046    0.296    
## x.CigaretteYes:z.AlkoholYes  2.87373    0.16730  17.178   <2e-16 ***
## y.MarijuanaYes:z.AlkoholYes  4.12509    0.45294   9.107   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 2851.46  on 7  degrees of freedom
## Residual deviance:  497.37  on 2  degrees of freedom
## AIC: 558.41
## 
## Number of Fisher Scoring iterations: 5
Pengujian Hipotesis

\(H_o\) : Tidak ada interaksi antara X dan Z
\(H_1\) : Ada interaksi X dan Y
Conditional Association on Y

# Deviance of Model
Deviance.model<- model5$deviance - model2$deviance 
#model5: conditional on Z, model2: homogenous
Deviance.model
## [1] 496.9953
# Chi Square tabel dengan alpa = 0.05
derajat.bebas <- (model5$df.residual - model2$df.residual)
derajat.bebas
## [1] 1
chi.tabel <- qchisq((1-0.05), df=derajat.bebas) 
chi.tabel
## [1] 3.841459
Keputusan <- ifelse(Deviance.model <= chi.tabel,"Terima", "Tolak")
Keputusan
## [1] "Tolak"

Pada taraf nyata 5%, cukup bukti untuk menolak 𝐻0 atau dapat dikatakan bahwa interaksi XY signifikan (ada interaksi dua arah antara pengguna ganja dengan pengguna rokok.

E. PEMILIHAN MODEL TERBAIK

Karena terdapat interaksi YZ, XZ, dan XY maka model terbaiknya adalah model homogenous.Kenapa?

bestmodel<-glm(counts~ x.Cigarette+ y.Marijuana+ z.Alkohol+
                  x.Cigarette*y.Marijuana+ x.Cigarette*z.Alkohol+ y.Marijuana*z.Alkohol, 
                family=poisson("link"=log)) 
summary(bestmodel)
## 
## Call:
## glm(formula = counts ~ x.Cigarette + y.Marijuana + z.Alkohol + 
##     x.Cigarette * y.Marijuana + x.Cigarette * z.Alkohol + y.Marijuana * 
##     z.Alkohol, family = poisson(link = log))
## 
## Coefficients:
##                               Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                    5.63342    0.05970  94.361  < 2e-16 ***
## x.CigaretteYes                -1.88667    0.16270 -11.596  < 2e-16 ***
## y.MarijuanaYes                -5.30904    0.47520 -11.172  < 2e-16 ***
## z.AlkoholYes                   0.48772    0.07577   6.437 1.22e-10 ***
## x.CigaretteYes:y.MarijuanaYes  2.84789    0.16384  17.382  < 2e-16 ***
## x.CigaretteYes:z.AlkoholYes    2.05453    0.17406  11.803  < 2e-16 ***
## y.MarijuanaYes:z.AlkoholYes    2.98601    0.46468   6.426 1.31e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 2851.46098  on 7  degrees of freedom
## Residual deviance:    0.37399  on 1  degrees of freedom
## AIC: 63.417
## 
## Number of Fisher Scoring iterations: 4

Dari summary model diatas terlihat bahwa best model memiliki AIC yang lebih rendah dibandingkan saturated dan conditional model.

F. INTERPRETASI KOEFISIEN MODEL TERBAIK

Interpretasi
data.frame(koef=bestmodel$coefficients,
            exp_koef=exp(bestmodel$coefficients))
##                                    koef     exp_koef
## (Intercept)                    5.633420 2.796168e+02
## x.CigaretteYes                -1.886669 1.515759e-01
## y.MarijuanaYes                -5.309042 4.946661e-03
## z.AlkoholYes                   0.487719 1.628597e+00
## x.CigaretteYes:y.MarijuanaYes  2.847889 1.725133e+01
## x.CigaretteYes:z.AlkoholYes    2.054534 7.803201e+00
## y.MarijuanaYes:z.AlkoholYes    2.986014 1.980658e+01

G. NILAI DUGAAN MODEL TERBAIK

Fitted
data.frame(alkohol=z.Alkohol,Rokok=x.Cigarette,Ganja =y.Marijuana,counts=counts,
            fitted=bestmodel$fitted.values)
##   alkohol Rokok Ganja counts    fitted
## 1     Yes   Yes   Yes    911 910.38317
## 2     Yes   Yes    No    538 538.61683
## 3     Yes    No   Yes     44  44.61683
## 4     Yes    No    No    456 455.38317
## 5      No   Yes   Yes      3   3.61683
## 6      No   Yes    No     43  42.38317
## 7      No    No   Yes      2   1.38317
## 8      No    No    No    279 279.61683

Untuk Latihan silahkan gunakan yang ada pada modul kawan-kawan yaaa