Prediksi variabel respons kategorikal

8

Saya memiliki jenis data berikut (diberi kode dalam R):

v.a = c('cat', 'dog', 'dog', 'goat', 'cat', 'goat', 'dog', 'dog')
v.b = c(1, 2, 1, 2, 1, 2, 1, 2)
v.c = c('blue', 'red', 'blue', 'red', 'red', 'blue', 'yellow', 'yellow')
set.seed(12)
v.d = rnorm(8)
aov(v.a ~ v.b + v.c + v.d) # Error

Saya ingin tahu apakah nilai v.batau nilai v.cmemiliki kemampuan untuk memprediksi nilai v.a. Saya akan menjalankan ANOVA (seperti yang ditunjukkan di atas) tetapi saya pikir itu tidak masuk akal karena variabel respon saya tidak ordinal (itu kategorikal). Apa yang harus saya lakukan?

Remi.b
sumber
5
Pelajari tentang multinomial logit. Berikut adalah dua buku online gratis dari Kenneth Train ( elsa.berkeley.edu/books/choice.html dan elsa.berkeley.edu/books/choice2.html ). Saya pikir itu adalah buku tingkat pascasarjana. Atau hanya google sekitar untuk "multinomial logit."
Bill
@Bill ini sepertinya awal yang baik untuk sebuah jawaban. Harap pertimbangkan untuk memperluas sedikit tentang apa model logit multinomial itu, dan mempostingnya sebagai jawaban.
Glen_b -Reinstate Monica

Jawaban:

8

Anda dapat menggunakan classifier APAPUN. Termasuk Diskriminan Linier, logit multinomial seperti yang ditunjukkan Bill, Mendukung Mesin Vektor, Jaring Saraf Tiruan, CART, hutan acak, pohon C5, ada dunia model yang berbeda yang dapat membantu Anda memprediksi menggunakan dan . Berikut adalah contoh menggunakan implementasi R hutan acak:v.av.bv.c

# packages
library(randomForest)

#variables
v.a= c('cat','dog','dog','goat','cat','goat','dog','dog')
v.b= c(1,2,1,2,1,2,1,2)
v.c= c('blue', 'red', 'blue', 'red', 'red', 'blue', 'yellow', 'yellow')

# model fit
# note that you must turn the ordinal variables into factor or R wont use
# them properly
model <- randomForest(y=as.factor(v.a),x=cbind(v.b,as.factor(v.c)),ntree=10)

#plot of model accuracy by class
plot(model)

masukkan deskripsi gambar di sini

# model confusion matrix
model$confusion

Jelas variabel-variabel ini tidak menunjukkan hubungan yang kuat.

JEquihua
sumber
@JEquihua Bisakah Anda ceritakan lebih banyak tentang apa itu "tree" dan apa arti dari output (confusion matrix and the plot). Terima kasih banyak!
Remi.b
Aku akan. Saya sangat sibuk, beri saya sedikit waktu. @ Remi.b
JEquihua
3

Ini lebih merupakan jawaban praktis parsial, tetapi berhasil bagi saya untuk melakukan beberapa latihan sebelum mempelajari teori secara mendalam .

Ini ats.ucla.edu link adalah referensi bahwa kekuatan bantuan beggining untuk memahami tentang regresi logistik multinomial (sebagai keluar menunjuk oleh Bill), dengan cara yang lebih praktis.
Ini menyajikan kode direproduksi untuk memahami fungsi multinomdari nmetpaket Rdan juga memberikan pengarahan tentang interpretasi output.

Pertimbangkan kode ini:

va = c('cat','dog','dog','goat','cat','goat','dog','dog') 
     # cat will be the outcome baseline
vb = c(1,2,1,2,1,2,1,2)
vc = c('blue','red','blue','red','red','blue','yellow','yellow') 
     # blue will be the vc predictor baseline
set.seed(12)
vd = round(rnorm(8),2)

data = data.frame(cbind(va,vb,vc,vd))

library(nnet)
fit <- multinom(va ~ as.numeric(vb) + vc + as.numeric(vd), data=data)

# weights:  18 (10 variable)
initial  value 8.788898 
iter  10 value 0.213098
iter  20 value 0.000278
final  value 0.000070 
converged

fit

Call:
multinom(formula = va ~ as.numeric(vb) + vc + as.numeric(vd), 
    data = data)

Coefficients:
     (Intercept) as.numeric(vb)     vcred  vcyellow as.numeric(vd)
dog    -1.044866       120.3495 -6.705314  77.41661      -21.97069
goat   47.493155       126.4840 49.856414 -41.46955      -47.72585

Residual Deviance: 0.0001656705 
AIC: 20.00017 

Ini adalah bagaimana Anda dapat menafsirkan model logistik multinomial yang dipasang log-linear:

ln(P(va=cat)P(va=dog))=b10+b11vb+b12(vc=red)+b13(vc=yellow)+b14vd ln(P(va=cat)P(va=goat))=b20+b21vb+b22(vc=red)+b23(vc=yellow)+b24vd

Berikut adalah kutipan tentang bagaimana parameter model dapat ditafsirkan:

  • Peningkatan satu unit dalam variabel vd dikaitkan dengan penurunan peluang log menjadi "dog" vs "cat" dalam jumlah 21.97069 ( ).b14

logika yang sama untuk baris kedua tetapi, mengingat "kambing" vs "kucing" dengan ( = -47.72585). b24

  • Peluang log untuk menjadi "anjing" vs. "kucing" akan meningkat sebesar 6.705314 jika berpindah dari vc = "biru" ke vc = "red" ( ). b12

.....

Ada banyak hal lain dalam artikel ini, tetapi saya pikir bagian ini adalah intinya.


Referensi:

Contoh Analisis Data R: Regresi Logistik Multinomial. UCLA: Kelompok Konsultasi Statistik.
dari http://www.ats.ucla.edu/stat/r/dae/mlogit.htm (diakses 05 November 2013).

Andre Silva
sumber