Binom GLMM (glmer) evet-hayır sayımları yerine yüzdelere nasıl uygulanır?


21

Bağımlı değişkenin yüzde olduğu tekrarlanan ölçümler deneyim var ve bağımsız değişkenler olarak birden fazla faktör var. glmerR paketinden lme4, bunu bir lojistik regresyon problemi olarak (belirterek family=binomial) tedavi etmek için kullanmak istiyorum .

Verilerim şuna benzer:

 > head(data.xvsy)
   foldnum      featureset noisered pooldur dpoolmode       auc
 1       0         mfcc-ms      nr0       1      mean 0.6760438
 2       1         mfcc-ms      nr0       1      mean 0.6739482
 3       0    melspec-maxp    nr075       1       max 0.8141421
 4       1    melspec-maxp    nr075       1       max 0.7822994
 5       0 chrmpeak-tpor1d    nr075       1       max 0.6547476
 6       1 chrmpeak-tpor1d    nr075       1       max 0.6699825

ve işte umduğum R komutu uygun olurdu:

 glmer(auc~1+featureset*noisered*pooldur*dpoolmode+(1|foldnum), data.xvsy, family=binomial)

Bununla ilgili sorun, komutun bağımlı değişkenimde tamsayı olmadığından şikayet etmesidir:

In eval(expr, envir, enclos) : non-integer #successes in a binomial glm!

ve bu (pilot) verilerin analizi sonuç olarak garip cevaplar verir.

binomialAilenin neden tamsayılar beklediğini (evet-hayır sayıyor) anlıyorum, ancak yüzde verilerini doğrudan doğruya çekmenin doğru olması gerektiği görünüyor. Bu nasıl yapılır?


1
Bana hiç uygun görünmüyor, çünkü 10 üzerinden 5, 1000 üzerinden 500 ile aynı bilgi değil. Yanıtı hayır sayısının bir sayısı olarak ifade edin. "başarılar" ve "hayır" sayısı. "başarısızlıklar".
Scortchi - Eski Monica

@Scortchi teşekkürler, haklı olabileceğini düşünüyorum. Bu soruya benzer bir şekilde yüzde oranlarımın (olasılıksal kararlardan türetilmiş) devam eden doğası hakkında kısmen düşündüm: stats.stackexchange.com/questions/77376/…, ancak verilerimi tam sayı sayımlarına anlamlı bir dönüşümle ifade edebileceğime inanıyorum.
Dan Stowell

Yanıtlar:


22

Tepki değişkeni olarak bir oran vektörünü glmer(., family = binomial)kullanmak için, weightsargümanı kullanarak her bir orana yol açan deneme sayısını ayarlamanız gerekir . Örneğin cbpp, lme4paketteki verileri kullanarak :

glmer(incidence / size ~ period + (1 | herd), weights = size,
   family = binomial, data = cbpp)

Toplam deneme sayısını bilmiyorsanız, hata mesajında ​​belirtildiği gibi binom modeli uygun değildir.


Bunun için ağırlık kullanıp kullanmadığını söyleyemem. Ancak verileri kesinlikle formülün sol tarafındaki iki sütunlu bir matris (başarılı / başarısız) olarak girebilirsiniz.
Ndoogan

Ancak @ndoogan, asıl soru, başarılar / başarısızlıklar değil oranlardı. Ve yukarıdaki kod işe yarıyor, cbppyardım sayfasından aldığım gibi .
Steve Walker

Yeterince adil. Yine de, bir binom modelinin oranlarının geldiği yer olan başarı / başarısızlıkları ( bölünme amaçlı değildir) kastediyorum .
ndoogan

+1 ancak okuyucular @ BenBolker adlı kullanıcının buradaki cevabını görmek isteyebilir: aşırı dağılma ile başa çıkmanın olası yolları hakkındaki istatistik.stackexchange.com/questions/189115 .
amip diyor Reinstate Monica

9

(0,1)


2
Binom model, bir oran modelidir. Yine de, deneme sayısını bildiğiniz zaman bu uygundur. Elinizde olan tek şey, deneme sayısının belirtilmediği bir yüzde ise, beta regresyonunun uygun olduğunu doğruladığınıza inanıyorum.
ndoogan

(0,1)

Teşekkürler, bu iyi bir nokta. Diğer cevabı kabul ediyorum, çünkü soruyu yazıldığı gibi cevaplıyor, ancak beta regresyon ile ilgili konu oldukça iyi bir hale getirildi, bu yüzden onu abarttım.
Dan Stowell
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.