Logit dengan variabel independen ordinal

18

Dalam model logit, adakah cara yang lebih cerdas untuk menentukan pengaruh variabel ordinal independen daripada menggunakan variabel dummy untuk setiap level?

fgregg
sumber
Bukankah itu tergantung pada perangkat lunak?
1
Perangkat lunak yang berbeda memungkinkan opsi yang berbeda, tetapi harus ada jawaban yang berprinsip, bukan?
fgregg
1
Ok, komentar bodoh, maaf.

Jawaban:

16

Untuk menambah tanggapan @ dmk38, "set skor apa pun memberikan tes yang valid , asalkan itu dibangun tanpa berkonsultasi dengan hasil percobaan. Jika set skor buruk, dalam hal itu buruk mendistorsi skala numerik yang benar-benar mendasari memerintahkan klasifikasi, tes tidak akan peka. Oleh karena itu skor harus mewujudkan wawasan terbaik yang tersedia tentang cara di mana klasifikasi dibangun dan digunakan. " (Cochran, 1954, dikutip oleh Agresti, 2002, hlm. 88-89). Dengan kata lain, memperlakukan faktor yang dipesan sebagai variabel yang diberi nilai numerik hanyalah masalah pemodelan. Asalkan masuk akal, ini hanya akan berdampak pada cara Anda menafsirkan hasilnya, dan tidak ada aturan praktis tentang bagaimana memilih representasi terbaik untuk variabel ordinal.

Pertimbangkan contoh berikut tentang konsumsi alkohol ibu dan ada atau tidak adanya cacat bawaan (Agresti, Analisis Data Kategorikal , Tabel 3.7 hal.89):

            0    <1 1-2 3-5 6+
Absent  17066 14464 788 126 37
Present    48    38   5   1  1

Dalam kasus khusus ini, kita dapat memodelkan hasil menggunakan regresi logistik atau tabel asosiasi sederhana. Mari kita lakukan di R:

tab3.7 <- matrix(c(17066,48,14464,38,788,5,126,1,37,1), nr=2,
                 dimnames=list(c("Absent","Present"),
                               c("0","<1","1-2","3-5","6+")))
library(vcd)
assocstats(tab3.7)

Statistik (12.08, p = 0.016751) atau LR (6.20, p = 0.184562) yang biasa (dengan 4 df) tidak memperhitungkan tingkat keteraturan dalam konsumsi alkohol.χ2

Memperlakukan kedua variabel sebagai ordinal dengan skor spasi yang sama (ini tidak memiliki dampak untuk variabel biner, seperti malformasi, dan kami memilih baseline sebagai 0 = tidak ada), kami dapat menguji linear dengan asosiasi linear. Pertama mari kita membangun versi meledak dari Tabel kontingensi ini:

library(reshape)
tab3.7.df <- untable(data.frame(malform=gl(2,1,10,labels=0:1), 
                                alcohol=gl(5,2,10,labels=colnames(tab3.7))), 
                     c(tab3.7))
# xtabs(~malform+alcohol, tab3.7.df) # check

Kemudian kita dapat menguji untuk menggunakan hubungan linier

library(coin)
#lbl_test(as.table(tab3.7))
lbl_test(malform ~ alcohol, data=tab3.7.df)

χ2(1)=1.83p=0.1764M2=(n1)r2

cor(sapply(tab3.7.df, as.numeric))[1,2]^2*(32574-1)

Seperti dapat dilihat, tidak ada banyak bukti hubungan yang jelas antara kedua variabel. Seperti yang dilakukan oleh Agresti, jika kita memilih untuk mengkode ulang level Alkohol sebagai {0,0.5,1.5,4,7}, yaitu menggunakan nilai-nilai mid-range untuk skala berkesinambungan yang dihipotesiskan dengan skor terakhir agak murni arbitrer, maka kita akan menyimpulkan untuk efek yang lebih besar dari konsumsi alkohol ibu pada pengembangan kelainan bawaan:

lbl_test(malform ~ alcohol, data=tab3.7.df,         
         scores=list(alcohol=c(0,0.5,1.5,4,7)))

menghasilkan statistik uji 6.57 dengan nilai p terkait 0,01037.

ρr

Dengan menggunakan pendekatan GLM, kami akan melanjutkan sebagai berikut. Tapi pertama-tama periksa bagaimana Alkohol dikodekan dalam R:

class(tab3.7.df$alcohol)

Ini adalah faktor unordered sederhana ( "factor"), karenanya merupakan prediktor nominal. Sekarang, berikut adalah tiga model yang kami anggap Alkohol sebagai prediktor nominal, ordinal, atau berkelanjutan.

summary(mod1 <- glm(malform ~ alcohol, data=tab3.7.df, 
                    family=binomial))
summary(mod2 <- glm(malform ~ ordered(alcohol), data=tab3.7.df, 
                    family=binomial))
summary(mod3 <- glm(malform ~ as.numeric(alcohol), data=tab3.7.df, 
                    family=binomial))

β^exp(θ^)=exp(0.228)=1.256. Tes Wald tidak signifikan pada level 5% biasa. Dalam hal ini, matriks desain hanya mencakup 2 kolom: yang pertama adalah kolom konstan 1 untuk intersep, yang kedua adalah nilai numerik (1 hingga 5) untuk prediktor, seperti dalam regresi linier sederhana. Singkatnya, model ini menguji efek linear Alkohol pada hasilnya (pada skala logit).

Namun, dalam dua kasus lain ( mod1dan mod2), kami mendapatkan output yang berbeda karena matriks desain yang digunakan untuk memodelkan prediktor berbeda, seperti yang dapat diperiksa dengan menggunakan:

model.matrix(mod1)
model.matrix(mod2)

mod1k1mod2mod1mod2

Anda dapat mencoba menetapkan skor baru untuk Alkohol dan melihat bagaimana hal itu akan berdampak pada kemungkinan prediksi malformasi.

chl
sumber
3
(+1) jawaban yang sangat menyeluruh. Saya hanya akan menambahkan bahwa adalah mungkin untuk mendapatkan tes yang mengasumsikan hanya monotonitas hubungan dosis-respons tanpa memberikan skor ke variabel ordinal menggunakan regresi isotonik., Meskipun metode simulasi atau permutasi biasanya diperlukan untuk mendapatkan distribusi statistik uji di bawah nol. Lihat Salanti & Ulm 2003 dx.doi.org/10.1002/bimj.200390012 .
onestop
@onestop Terima kasih atas referensi ini. Saya akan melihatnya.
chl
6

tidak apa-apa menggunakan prediktor kategoris dalam model regresi logit (atau OLS) jika levelnya ordinal. Tetapi jika Anda memiliki alasan untuk memperlakukan setiap level sebagai diskrit (atau jika sebenarnya variabel kategori Anda adalah nominal daripada ordinal), maka, sebagai alternatif pengkodean dummy, Anda juga dapat menggunakan pengkodean kontras ortogonal. Untuk diskusi yang sangat lengkap & mudah diakses, lihat Judd, CM, McClelland, GH & Ryan, analisis data CS: pendekatan perbandingan model, Edn. Ke-2 (Routledge / Taylor dan Francis, New York, NY; 2008), atau hanya google "pengkodean kontras"

dmk38
sumber
Apakah Anda bersaing untuk memperlakukan data ordinal sebagai data interval dalam model? Jika demikian, bagaimana saya bisa mengintepretasikan koefisien jika saya tidak tahu "jarak" antar level?
fgregg
3
Iya. Koefisien mencerminkan perubahan dalam peluang log untuk setiap kenaikan perubahan dalam prediktor ordinal. Spesifikasi model ini (sangat umum) mengasumsikan prediktor memiliki dampak linier di seluruh kenaikannya. Untuk menguji asumsi, Anda dapat membandingkan model di mana Anda menggunakan variabel ordinal sebagai prediktor tunggal dengan yang Anda diskritkan responsnya dan memperlakukannya sebagai beberapa prediktor (seperti yang Anda lakukan jika variabelnya nominal); jika model yang terakhir tidak menghasilkan kecocokan yang jauh lebih baik, maka memperlakukan setiap kenaikan memiliki efek linier adalah masuk akal.
dmk38
Saya memberi Anda +1 karena respons ini kedengarannya bagus, dan saya kira @fgregg akan melakukan hal yang sama (dengan cukup perwakilan).
chl
Saya juga berpikir ini adalah contoh sempurna, karena perubahan peluang log dapat ditafsirkan dengan variabel ordinal.
SmallChess