R'de Ordinal Lojistik Regresyon analizini hem sayısal hem de kategorik değerlerle nasıl çalıştırabilirim?


17

Temel Veriler : Değerlendirmelerle işaretlenmiş ~ 1.000 kişi var: '1,' [iyi] '2,' [orta] veya '3' [kötü] - bunlar gelecekte insanlar için tahmin etmeye çalıştığım değerler . Buna ek olarak, bazı demografik bilgilerim var: cinsiyet (kategorik: E / K), yaş (sayısal: 17-80) ve ırk (kategorik: siyah / beyaz / latino).

Başlıca dört sorum var:

  1. Başlangıçta yukarıda açıklanan veri kümesini çoklu regresyon analizi olarak çalıştırmaya çalışıyordum. Ancak yakın zamanda öğrendim ki bağımlım sürekli bir değişken değil düzenli bir faktör olduğundan, böyle bir şey için sıralı lojistik regresyon kullanmalıyım. Başlangıçta şöyle bir şey kullanıyordum mod <- lm(assessment ~ age + gender + race, data = dataset), kimse beni doğru yönde gösterebilir mi?

  2. Oradan, kendimi rahat hissettiğim katsayıları aldığımı varsayarsak, x1, x2 vb. İçin yalnızca sayısal değerleri nasıl ekleyeceğimi anlıyorum - ama örneğin birden fazla yanıtı olan yarışla nasıl başa çıkacağımı anlıyorum: siyah / beyaz / latino? Bu yüzden bana beyaz katsayının 0.289 olduğunu ve tahmin etmeye çalıştığım birinin beyaz olduğunu söylerse, değer sayısal olmadığından bunu nasıl takarım?

  3. Ayrıca eksik olan rastgele değerlerim var - bazıları ırk, bazıları cinsiyet vb. Bunun bir şey eğrilmediğinden emin olmak için ek bir şey yapmam gerekiyor mu? (Veri kümem R-Studio'ya yüklendiğinde, eksik veriler yüklendiğinde NA, R gibi bir şey söylediğinde fark ettim (162 observations deleted due to missingness)- ancak boşluk olarak yüklenirse hiçbir şey yapmaz.)

  4. Tüm bunların işe yaradığını ve tahmin etmek istediğim cinsiyet, yaş ve ırkla ilgili yeni verilerim olduğunu varsayarsak, R'de yeni katsayıları olan formülüm ne olursa olsun bunları çalıştırmak için daha kolay bir yol var mı, manuel olarak yapmak yerine? (Bu soru burada uygun değilse, R forumuna geri götürebilirim.)

Yanıtlar:


16

İşte size doğru yönü gösterebilecek küçük bir bilgi.

Verilerinizle ilgili olarak, sahip olduğunuz şey birden fazla kategoriyle bir yanıttır ve kategorik olan bir yanıtı modellemeye çalıştığınızda, bir tür genelleştirilmiş doğrusal model (GLM) kullanmayı denemekte fayda vardır. Durumunuzda, yanıtınızla ilgili olarak dikkate almanız gereken ek bilgiler var ve bu, yanıt düzeylerinizin doğal bir sipariş ortası> kötü olduğu, bunun, hangi renk balonunun biri gibi bir yanıtı modellemeye çalışmaktan farklı olduğuna dikkat edin. (kırmızı / mavi / yeşil) satın alması muhtemeldir, bu değerlerin doğal siparişi yoktur. Bu tür bir modeli sıralı bir yanıtla yaparken orantılı bir olasılık modeli kullanmayı düşünebilirsiniz.

http://en.wikipedia.org/wiki/Ordered_logit

Kendim kullanmadım, ancak polr()MASS paketindeki işlevin bir miktar faydası olabilir, alternatif olarak lrm()benzer analiz türlerini yapmak için rms paketindeki işlevi kullandım ve oldukça yararlı buldum. Bu paketleri yüklerseniz işlev bilgilerini yalnızca ?polrveya kullanın ?lrm.

Tamam, sorularınız için yeterince arka plan:

  1. Bu yukarıda ele alınmalı, bu paketleri / fonksiyonları kontrol etmeli ve sıralı lojistik regresyon ve oransal olasılık modellerini okumalıdır.

  2. Kategorik (Değişken / Cinsiyet / Saç Rengi) olan bir eş değişkeniniz olduğunda, bunları uygun şekilde modellemek için bunları R kodunuzda 'faktörler' olarak ele almak istersiniz. Bir faktörün ne olduğunu ve nasıl ele alındığını bilmek önemlidir, ancak aslında her kategoriye ayrı bir seviye olarak davranır ve daha sonra bunları uygun bir şekilde modellenirsiniz. Sadece modellerde faktörleri okuyun ve neler olduğunu kızdırmak gerekir. Kategorik değişkenlerin faktör olarak ele alınmasının glm modelleri veya oransal olasılık modelleri için benzersiz olmadığını, ancak genellikle tüm modellerin kategorik değişkenlerle nasıl başa çıktığını unutmayın. http://www.stat.berkeley.edu/classes/s133/factors.html

  3. Eksik değerler bazen başa çıkmak için bir güçlük olabilir, ancak oldukça temel bir analiz yapıyorsanız, sadece eksik değerler içeren veri satırlarını kaldırmak muhtemelen güvenlidir (bu her zaman doğru değildir, ancak mevcut deneyim seviyenize göre eksik değerlerle ne zaman ve nasıl başa çıkılacağı ile ilgilenmeniz gerekmez). Aslında bu R'nin yaptığı şeydir. Modellemek için kullandığınız bir verileriniz varsa, yanıtınız için bir satırda bilgi eksikseniz veya R modelindeki herhangi bir eş değişken sadece bu verileri hariç tutacaktır (bu, gördüğünüz uyarıdır). Açıkçası, eksiklik nedeniyle verilerinizin büyük bir kısmını hariç tutuyorsanız, sonuçlarınız önyargılı olabilir ve muhtemelen neden bu kadar çok eksik değer olduğu hakkında daha fazla bilgi edinmeye çalışabilirsiniz, ancak 10.000 satır veri 162 gözlem eksik yeniden çok fazla ter olmaz. Bazı spesifikasyonlarla ilgileniyorsanız, eksik verileri işleme yöntemlerini Google'da yapabilirsiniz.

  4. Hemen hemen tüm R modeli nesneleri ( lm, glm, lrm, ...) ilişkili bir olacak predict()sizin için bir sonucun tahmin etmek isteyen başka veri kümesi için ayrıca mevcut modelleme veri kümesi için tahmin değerleri hesaplamak ve sağlayacak işlevi. Çalışmak istediğiniz model türü için biraz daha fazla bilgi edinmek için arayın ?predict.glmveya ?predict.lmdeneyin. Bu, insanların modellerle yapmak istedikleri çok tipik bir şeydir, bu yüzden bunu yapmayı nispeten basitleştirecek bazı yerleşik işlevler ve yöntemler olduğundan emin olabilirsiniz.

İyi şanslar!


2
  1. Evet, sıralı logit veya probit nereden başlamalı. İşte R'yi kullanan sıralı logit ile ilgili bir öğretici . Diğer CV soruları muhtemelen karşılaştığınız takılmalar konusunda size yardımcı olabilir - 'logit,' 'probit' ve 'ordinal' etiketlerini deneyin.

  2. kk-1caucasian

  3. Eksik verilerle uğraşmak eldeki probleme bağlıdır ve evet, eksik verilerle nasıl başa çıkacağınız önyargı yaratabilir. Bu kitap alıntısı , eksik verilerin üretilebileceği dört sorunu, kendi probleminizdeki potansiyel önyargıyı göz önünde bulundurmanıza yardımcı olacak şekilde açıklamaktadır. (Özellikle bölüm 25.1, sayfa 530.)

  4. Birçok modelleme paketinin bir predicttür işlevi vardır ve aslında yukarıda bağlantılı ilk öğretici bir gösteri içerir.


Çok teşekkürler! # 2'de hızlı takip: Bu benim temel varsayımımdı - ama kod iki ikiden fazla değişken var mı? Örneğin, beyaz, siyah, latino.
Ryan

Oldukça hoş geldiniz! Bu örnekte, latinodiğer ikisi için kesişme, örneğin ve mankenlere dahil olmak üzere bir kategori seçersiniz . caucasianKukla için 1 değeri , blackkukla değişkene benzer bir Kafkas katılımcısını gösterir . Her ikisi için 0 değeri, bir Latino katılımcısını belirtir. Mantıklı olmak?
Sean Easter

Veri kümesini birden fazla yanıtı olan bir sütundan ('siyah,' 'beyaz' ve 'latino') 1s ve 0s olan bir 'siyah' sütuna, 1s ve 0s olan bir 'beyaz' sütuna ve birine değiştirmeliyim 1s ve 0s ile 'latino' sütun?
Ryan

İyi çalışacak bir yaklaşım budur. İki sütun kullanmanın tek farkı kesmeyi nasıl yorumladığınızdır. Bunu manuel olarak yapabilirsiniz, ancak R'deki faktörlerin sizin için halledebileceğine inanıyorum. Deneyin bu benzer örnekle faktörler kullanılarak yoluyla -çok yürüyüşler. Şerefe!
Sean Easter

1
Eğiticiye bağlantı koptu. Birisi düzeltebilirse, bu harika olurdu!
Dan Hicks
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.