R'nin polr fonksiyonundan çıktı nasıl anlaşılır (düzenli lojistik regresyon)?


26

Ben R için yeni, lojistik regresyon emretti ve polr.

Polr için yardım sayfasının altındaki "Örnekler" bölümünde (sipariş edilen bir faktör yanıtına lojistik veya probit regresyon modeline uyan) gösteriliyor

options(contrasts = c("contr.treatment", "contr.poly"))
house.plr <- polr(Sat ~ Infl + Type + Cont, weights = Freq, data = housing)
pr <- profile(house.plr)
plot(pr)
pairs(pr)
  • Hangi bilgileri priçerir? Profildeki yardım sayfası geneldir ve anket için kılavuzluk etmez.

  • Ne plot(pr)gösteriyor? Altı tane grafik görüyorum. Her biri sayısal bir X eksenine sahiptir, ancak etiket bir gösterge değişkenidir (sıralı bir değerin göstergesi olan bir giriş değişkenine benzer). Sonra Y ekseni tamamen açıklanamayan "tau" dur.

  • Ne pairs(pr)gösteriyor? Her bir giriş değişkeni çifti için bir grafik gibi görünüyor, ancak yine de X veya Y eksenlerinin açıklamalarını göremiyorum.

  • Modelin iyi oturduğunu nasıl anlayabilirim? summary(house.plr)3479.149'un Artık Sapma 3479.149 ve AIC (Akaike Bilgi Kriteri?) durumunu göstermektedir. İyi mi? Bunların yalnızca göreceli önlemler olarak yararlı olması durumunda (yani başka bir modelle karşılaştırmak için), iyi bir kesin ölçü nedir? Artık sapma yaklaşık olarak ki-kare olarak dağılmış mı? Orijinal verilerde "doğru tahmin edilen%" ifadesi veya çapraz doğrulama kullanılabilir mi? Bunu yapmanın en kolay yolu nedir?

  • Kişi anovabu model üzerinde nasıl uygulanır ve yorumlanır ? Dokümanlar "Tahmin, özet, vcov, anova dahil standart model uygulama işlevleri için yöntemler var" diyor. Ancak, çalışan anova(house.plr)sonuçlarıanova is not implemented for a single "polr" object

  • Kişi her katsayı için t değerlerini nasıl yorumluyor? Bazı modellerin aksine, burada P değeri yoktur.

Bunun bir çok soru olduğunu biliyorum, ancak 7 farklı sorudan ziyade tek bir paket ("bu şeyi nasıl kullanırım?") Olarak sormamın bir anlamı var. Herhangi bir bilgi takdir etti.


3
@dfrankow İlk iki sorunuz için biraz kaba ve kesinlikle çok kısmi yardım, ancak methods("profile")size bir R profilenesnesine ilişkin (bu durumda S3) yöntemlerini verecek, daha sonra polrgöz atabileceğiniz özel bir yöntem olduğunu göreceksiniz. getAnywhere("profile.polr")R isteminde yazarak on-line .
chl

1
Teşekkürler! Kaynak kodu iyi. Açıklama daha da iyi olurdu. :)
dfrankow

1
Biri beni Venables ve Ripley'den "S ile Modern Uygulamalı İstatistik" e işaret etti. Bölüm 7.3, bu ev modelini kapsamlı bir şekilde kapsayan “dört yönlü bir frekans tablosu örneği” ne sahiptir. Reading ..
dfrankow

Aslında bölüm "orantılı bir oran modeli" dir
dfrankow

Yanıtlar:


17

Sipariş edilen lojistik regresyonun daha iyi açıklanması ve anlaşılması için kategorik veri analizi (bkz. Alan Agresti's Kategorik Veri Analizi, 2002) ile ilgili kitaplara göz atmanızı öneririm . İstediğiniz tüm sorular temelde bu tür kitaplarda birkaç bölüm tarafından cevaplandırılmıştır. Sadece Rilgili örneklerle ilgileniyorsanız, Julian Faraway (CRC Press, 2008) tarafından R'deki Doğrusal Modelleri Genişletmek harika bir referanstır.

Sorularınıza cevap vermeden önce, sipariş edilen lojistik regresyon , kategorilerin sipariş edildiği multinomyal logit modellerinin bir halidir . Elimizdeki varsayalım kategorileri sipariş ve birey için bu i sıra tepki ile, Y i , p ı j = P ( Y i = j ) için j = 1 , . . . , J . Sıralı bir yanıtla, kümülatif olasılıklarla çalışmak çoğu zaman daha kolaydır, γ i j = PJiYipij=P(Yi=j)j=1,...,J . Kümülatif olasılıklar, bitişik kategorileri birleştirmede artmakta ve değişmemektedir. Ayrıca, γ i J = 1 , bu yüzden sadece model J - 1 olasılıklarına ihtiyacımız var.γij=P(Yij)γiJ=1J1

Şimdi bağlamak istediğiniz ler için covariates x . Senin durumunda, 3 sıralı düzeyi vardır: , , . Onlara sırasız değil sıralı olarak davranmak daha anlamlı olur. Kalan değişkenler ortak değişkenlerinizdir. Düşündüğünüz model , orantılı olasılık modelidir ve matematiksel olarak şuna eşittir:γijxSatlowmediumhigh

burada  γ j ( x i ) = P ( Y ij | x i )

logit γj(xi)=θjβTxi,j=1J1
where γj(xi)=P(Yij|xi)

Buna denir çünkü için x 1 ve x 2'yi karşılaştıran göreceli oranlar :Yjx1x2

(γj(x1)1γj(x1))/(γj(x2)1γj(x2))=exp(βT(x1x2))

Dikkat, yukarıdaki ifade bağlı değildir . Tabii ki, orantılı olasılık varsayımının belirli bir veri seti için kontrol edilmesi gerekir.j

Şimdi bazı (1, 2, 4) soruları cevaplayacağım.

Modelin iyi oturduğunu nasıl anlayabilirim? özeti (house.plr), 3495.149'un Artık Sapma 3479.149'u ve AIC'yi (Akaike Information Criterion?) gösterir. İyi mi? Bunların yalnızca göreceli önlemler olarak yararlı olması durumunda (yani başka bir modelle karşılaştırmak için), iyi bir kesin ölçü nedir? Artık sapma yaklaşık olarak ki-kare olarak dağılmış mı? Orijinal verilerde "doğru tahmin edilen%" ifadesi veya çapraz doğrulama kullanılabilir mi? Bunu yapmanın en kolay yolu nedir?

Uygun bir model polrözeldir glm, bu yüzden glmburada geleneksel bir tutuma yönelik tüm varsayımlar geçerlidir . Parametreleri düzgün bir şekilde değerlendirirseniz, dağılımı hesaplayabilirsiniz. Özellikle, test etmek modelin iyi olup olmadığını etmek için , aşağıdaki boşluğu test eden bir uygunluk testi yapmak isteyebilirsiniz (bunun ince olduğunu unutmayın, çoğunlukla boşluğu reddetmek istersiniz, ancak burada istemezsiniz). iyi bir uyum için reddetmek):

Ho: current model is good enough 

Bunun için ki-kare testini kullanırsınız. P değeri şu şekilde elde edilir:

1-pchisq(deviance(house.plr),df.residual(house.plr))

Çoğu zaman 0,05'ten büyük bir p değeri elde etmeyi umuyorsunuz, böylece modelin iyi bir şekilde oturduğu sonucuna varmazsınız (burada felsefi doğruluk yok sayılır).

AIC, çok sayıda parametreye sahip olmak istemediğiniz sırada, aynı zamanda iyi bir uyum için yüksek olmalıdır. stepAICBunu kontrol etmek için iyi bir yoldur.

Evet, tahminlerin geçerli olup olmadığını görmek için kesinlikle çapraz doğrulama kullanabilirsiniz. predictİşlev gör (seçenek:type = "probs" ) içinde ?polr. Tek yapmanız gereken eş değişkenler.

Pr hangi bilgileri içerir? Profildeki yardım sayfası geneldir ve polr için yol gösterici değildir.

@Chl ve diğerleri tarafından işaret edildiği gibi, CI'lerin prelde edilmesi için gereken tüm bilgileri ve bunun olabilirliği ile ilgili diğer bilgileri içerir polr fit. Herşeyglm , log olasılığı için yinelemeli ağırlıklı en küçük kareler kestirim yöntemine uygundur. Bu optimizasyonda, Varyans Kovaryansı Matrisi, CI, t-değeri vb. Hesaplamalarında ihtiyaç duyulacak birçok bilgi (lütfen referanslara bakınız) elde edersiniz. Bunların hepsini içerir.

Kişi her katsayı için t değerlerini nasıl yorumluyor? Bazı model> uyarlardan farklı olarak, burada P değeri yoktur.

Normal lineer modelin aksine (özel glm) diğer glmler regresyon katsayıları için iyi bir t dağılımına sahip değildir. Bu nedenle elde edebileceğiniz tek şey, maksimum olasılık teorisini kullanarak parametre tahminleri ve asimptotik varyans kovaryansı matrisidir. Bu nedenle:

Variance(β^)=(XTWX)1ϕ^

Tahmin, standart hataya bölünerek BDR ve WV'nin t-değeri dediği şeydir ( MASSburada sözleşmeyi kabul ediyorum ). Normal lineer regresyondan t değerine eşdeğerdir, ancak t dağılımını izlemez. CLT kullanarak, normalde asimptotik olarak dağıtılır. Fakat bunu yaklaşık (sanırım) kullanmamayı tercih ediyorlar, dolayısıyla p-değerleri yok. (Umarım hatalı değilimdir ve öyleysem, BDR'nin bu forumda olmadığını umuyorum. Ayrıca, yanlış yaparsam birisinin beni düzelteceğini umuyorum.)


Daha fazlasını ekleyeceğim.
suncoolsu

1
Bunun için teşekkürler. Birkaç kez okudum. Çok fazla soru var. 1. R'de fonksiyonel olarak, orantılı olasılık varsayımı nasıl test edilir? 2. Ki-kare testinin doğru olduğuna emin misiniz? Bu örnekte 0 döndürür, anlamı .. crappy fit? Ancak t değerlerinin bazıları oldukça yüksektir (InflHigh 10.1, InflMedium 5.4, ContHigh 3.7). 3. Araziler veya çiftler ne gösteriyor?
dfrankow

Suncoolsu'nun kapsamlı cevabınız için teşekkürler Benzer bir durumdayım ve birkaç sorum var. 1. Ayrıca chi-sq test denkleminizi kullanarak her model için 0 alıyorum. 2. AIC'deki wikipedia sayfasında "tercih edilen model minimum AIC değerine sahip olandır" diyor, ancak "AIC iyi bir uyum için yüksek olmalı" dedin. Bu hesapları uzlaştırmaya çalışıyorum.
Sam Swift,

@ dfrankow ve @Sam Swift. Üzgünüm, bazı yazılar yazmakla biraz meşguldüm. Tamam - bir p-değeri = 0 alırsanız, uygunluk testi başarısızlığı nedeniyle modelin iyi bir SÖZLEŞME olmadığı anlamına gelir. AIC sorunuyla ilgili olarak, wikipedia ve ben bunun için farklı bir kural kullanıyoruz. BDR ve WV tarafından kullanılanı kullanıyorum. (bkz. R'de Doğrusal Modellerin Genişletilmesi, Dr. Julian Faraway)
suncoolsu 17:11

0/1 p değerleri ve faydalı bulabileceğiniz AIC yorumlarına ilişkin bazı özel sorular var: stats.stackexchange.com/questions/15223/… stats.stackexchange.com/questions/81427/…
Scott

3

Buradaki konuşmayı çok beğendim, ancak cevapların ortaya koyduğunuz soruya (çok iyi) tüm bileşenleri doğru bir şekilde vermediğini hissediyorum. Örnek sayfanın ikinci yarısı polrtamamen profil oluşturma ile ilgilidir. Burada iyi bir teknik referans, profillemeyi ve ne yaptığını tartışan Venerables ve Ripley'dir. Üstel aile modellerinin rahatlık bölgesini tam olasılıkla (düzenli GLM'ler) yerleştirmenin ötesine geçtiğinizde bu kritik bir tekniktir.

k1klmernls,polrve glm.nb.

Yardım sayfasının ?profile.glm, polrnesneler esasen GLM'ler (artı kategorik eşikler) olduğu için bir miktar kullanımı olmalıdır . Son olarak, eğer kullanıyorsanız, kaynak kodunu gerçekten zirveye taşıyabilirsiniz getS3method('profile', 'polr'). Bu getS3methodişlevi çok kullanıyorum, çünkü R birçok yöntemin gizlenmesi gerektiği konusunda ısrar ediyor gibi gözükse de, kod gözden geçirerek uygulama ve yöntemler hakkında şaşırtıcı bir şekilde çok şey öğreniliyor.

• pr hangi bilgileri içerir? Profildeki yardım sayfası geneldir ve anket için kılavuzluk etmez.

prbir profile.polr, profilenesnedir (kalıtsal sınıf profile). Her değişken için bir giriş var. Profiler, her bir değişken üzerinde döngü yapar, biraz değişken bir miktara sabitlenmiş olan bu değişkene uygun olan optimal modeli yeniden hesaplar. Çıktı, değişkenin tahmini değerinden ölçeklendirilmiş "z-skoru" farkı ve diğer değişkenlerde ortaya çıkan sabit etkiler olarak ölçülen sabit değerini gösterir. Örneğin, bakarsanız, pr$InflMedium"z" 0 olduğunda, diğer sabit efektlerin orijinali ile aynı olduğunu unutmayın.

• Arsa (pr) ne gösteriyor? Altı tane grafik görüyorum. Her biri sayısal bir X eksenine sahiptir, ancak etiket bir gösterge değişkenidir (sıralı bir değerin göstergesi olan bir giriş değişkenine benzer). Sonra Y ekseni tamamen açıklanamayan "tau" dur.

Yine, ?plot.profileaçıklama verir. Grafik, aşağı yukarı regresyon katsayılarının nasıl kovardığını gösterir. tau, daha önce z puanı olan ölçeklendirilmiş farktır, bu nedenle 0 değeri, bir onay işaretiyle gösterilen optimum uyum katsayılarını verir. Bu uyum için çok iyi davranıldığını söylemezsin, ama bu "çizgiler" aslında eğridir. Olabilirlik en uygun şekilde çok düzensiz davrandıysa, arsada garip ve öngörülemeyen davranışlar gözlemleyecektiniz. Bu, daha sağlam bir hata tahmini (bootstrap / jackknife) kullanarak çıktıyı tahmin etmenize, kullanarak CI'leri hesaplamanıza method='profile', değişkenleri yeniden kodlamanıza veya başka teşhisler yapmanıza yardımcı olacaktır .

• Çiftler (pr) ne gösteriyor? Her bir giriş değişkeni çifti için bir komplo gibi gözüküyor, ancak yine de X veya Y eksenlerinin açıklamalarını göremiyorum.

Yardım dosyasında şöyle yazıyor: “İkili yöntem, her x ve y parametresi çifti için, maksimum olasılık tahmini ile kesişen iki eğriyi gösterir; ve yatay, sırasıyla iki değişkenli normal profil olasılığı söz konusu olduğunda, bu iki eğri, y | x ve x | y koşullu araçlarını veren düz çizgiler olacak ve konturlar tam olarak eliptik olacaktır. " Temel olarak, tekrar güven elipslerini görselleştirmenize yardımcı olurlar. Ortogonal olmayan eksenler, sezgisel olarak çok ilgili olan InfMedium ve InfHigh gibi çok değişken ölçümleri göstermektedir. Yine, düzensiz ihtimaller burada oldukça şaşırtıcı olan görüntülere yol açacaktır.

• Modelin iyi oturduğunu nasıl anlayabilirim? özeti (house.plr), 3495.149'un Artık Sapma 3479.149'u ve AIC'yi (Akaike Information Criterion?) gösterir. İyi mi? Bunların yalnızca göreceli tedbirler olarak yararlı olması durumunda (yani başka bir model ile karşılaştırmak için), iyi bir kesin ölçü nedir? Artık sapma yaklaşık olarak ki-kare olarak dağılmış mı? Orijinal verilerde "doğru tahmin edilen%" ifadesi veya çapraz doğrulama kullanılabilir mi? Bunu yapmanın en kolay yolu nedir?

Değerlendirilmesi iyi olan bir varsayım, orantılı olasılık varsayımıdır. Bu, küresel testte bir dereceye kadar yansır (ki bu, doymuş bir loglinear modele karşı polr değerlendirir). Buradaki bir sınırlama, büyük verilerle küresel testlerin her zaman başarısız olmasıdır. Sonuç olarak, grafik kullanımı ve loglinear model ve polr fit için tahminleri (beta) ve hassasiyeti (SEs) incelemek iyi bir fikirdir. Eğer kitlesel olarak katılmıyorlarsa, belki bir şeyler yanlış olabilir.

Sipariş edilen sonuçlarla, yüzde anlaşma anlaşması tanımlamak zor. Modele dayalı bir sınıflandırıcıyı nasıl seçeceksiniz ve eğer yaparsanız, zayıf performansı nasıl zayıf bir sınıflandırıcıdan çıkaracaksınız. modekötü bir seçimdir. 10 kategori logom varsa ve tahminim her zaman tek bir kategoriden farklıysa, belki de bu kötü bir şey değil. Dahası, modelim% 0'lık bir 0 yanıt şansını, aynı zamanda% 8, 9, 10'luk bir şansı doğru tahmin edebilir. Öyleyse, 9'a dikkat edersem bu iyi mi kötü mü? Sözleşmeyi ölçmeniz gerekiyorsa, ağırlıklı bir kappa, hatta MSE kullanın. Mantıksal model her zaman en iyi anlaşmayı üretecektir. POLR'ın yaptığı bu değil.

• Anova bu modele nasıl uygulanır ve yorumlanır? Dokümanlar "Tahmin, özet, vcov, anova dahil standart model uygulama işlevleri için yöntemler var" diyor. Ancak, anova (house.plr) çalıştırmak, tek bir "polr" nesnesi için anova uygulanmadı

Sen ile iç içe modellerini test edebilirsiniz waldtestve lrtestde lmtestR. This paket ANOVA eşdeğerdir. Yorum, GLM'lerde olduğu gibi tamamen aynı.

• Her bir katsayı için t değerleri nasıl yorumlanır? Bazı modellerin aksine, burada P değeri yoktur.

Yine, doğrusal modellerden farklı olarak, POLR modeli düzensiz olasılık ile ilgili sorunlar yaşayabilir; bu nedenle Hessian'a dayalı çıkarım çok dengesiz olabilir. Karma modellerin takılmasına benzer, örneğin confint.merModlme4 paketi için yardım dosyasına bakın. Burada, profil oluşturma ile yapılan değerlendirmelerde kovaryansın iyi davranıldığı görülmektedir. Programcılar, varsayılan olarak hesaplama yapmanın çok yoğun olabileceği ve bunu sizin elinize bıraktıkları haricinde bunu varsayılan olarak yaparlardı. Wald temelli çıkarımı görmeniz gerekiyorsa coeftest(house.plr), lrtestpaketten kullanın .


2

R'deki orantılı olasılık varsayımını 'test etmek' (yani değerlendirmek) için, Frank Harrell Jr.'ın Tasarım paketinde kalıntı.lrm () kullanabilirsiniz. Residuals.lrm yazarsanız, Frank Harrell'in orantılı olasılık varsayımını değerlendirmeyi nasıl önerdiğini gösteren hızlı bir şekilde yinelenen bir örnek var (örneğin, bir buton testi yerine görsel olarak). Tasarım tahminleri, MASS'den polr () yerine kullanabileceğiniz lrm () kullanarak sipariş edilen lojistik regresyonları.

R'deki orantılı olasılık varsayımının görsel olarak nasıl test edileceğine dair daha resmi bir örnek için bakınız: Kağıt: Ekolojide Sıradan Tepki Regresyon Modelleri Yazar (lar): Antoine Guisan ve Frank E. Harrell Kaynak: Vegetation Science, Cilt. 11, No. 5 (Ekim 2000), sayfa 617-626


3
Cevabınız için içtenlikle teşekkür ederim. Ancak, StackExchange'in amacı referansları değil cevapları sağlamaktır. İstatistikçiler bu referans sorununa özellikle eğilimli görünüyorlar. Rezidüel.lrm'nin kullanımı hakkında ekleyebileceğiniz herhangi bir detay var mı? Örneğin, bir örnek komut ve house.plr örneği için grafiği yorumlama örneği?
dfrankow

1
Yazarın web sitesinden güncelleme: "Tasarım paketi artık kullanılmıyor. R kullanıcıları bunun yerine rms paketini kullanmalı". Mark, cevabın benim için çok yardımcı oldu.
Tal Galili
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.