วิธีการใช้ binomial GLMM (glmer) กับเปอร์เซ็นต์แทนที่จะเป็นจำนวนใช่หรือไม่?


21

ฉันมีการทดสอบซ้ำหลายครั้งโดยที่ตัวแปรตามคือร้อยละและฉันมีหลายปัจจัยเป็นตัวแปรอิสระ ฉันต้องการใช้glmerจากแพ็คเกจ R lme4เพื่อจัดการกับปัญหาการถดถอยโลจิสติก (โดยระบุfamily=binomial) เนื่องจากดูเหมือนว่าจะรองรับการตั้งค่านี้โดยตรง

ข้อมูลของฉันมีลักษณะเช่นนี้:

 > 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

และนี่คือคำสั่ง R ที่ฉันหวังว่าจะเหมาะสม:

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

ปัญหานี้คือว่าคำสั่งบ่นเกี่ยวกับตัวแปรตามของฉันไม่เป็นจำนวนเต็ม:

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

และการวิเคราะห์ข้อมูลนี้ (นักบิน) ให้คำตอบแปลก ๆ

ฉันเข้าใจว่าทำไมbinomialครอบครัวจึงคาดหวังว่าจะเป็นจำนวนเต็ม (ใช่ - ไม่นับ) แต่ดูเหมือนว่ามันควรที่จะถดถอยข้อมูลเปอร์เซ็นต์โดยตรง ทำอย่างไร


1
ดูเหมือนจะไม่เป็นไรสำหรับฉันเนื่องจาก 5 ใน 10 ไม่ใช่ข้อมูลเดียวกันกับ 500 จาก 1,000 แสดงการตอบสนองเป็นจำนวนครั้งเดียว "ความสำเร็จ" และการนับหนึ่งครั้ง "ความล้มเหลว"
Scortchi - Reinstate Monica

@Scortchi ขอบคุณฉันคิดว่าคุณอาจจะถูก ฉันกำลังคิดบางส่วนเกี่ยวกับลักษณะที่ต่อเนื่องของเปอร์เซ็นต์ของฉัน (มาจากการตัดสินใจที่น่าจะเป็น) คล้ายกับคำถามนี้: stats.stackexchange.com/questions/77376/…แต่ฉันเชื่อว่าฉันสามารถแสดงข้อมูลของฉันผ่านการแปลงที่มีความหมายเป็นจำนวนเต็ม
Dan Stowell

คำตอบ:


22

ในการใช้เวกเตอร์ที่มีสัดส่วนเป็นตัวแปรตอบสนองด้วยglmer(., family = binomial)คุณจะต้องกำหนดจำนวนการทดลองที่นำไปสู่แต่ละสัดส่วนโดยใช้weightsอาร์กิวเมนต์ ตัวอย่างเช่นการใช้cbppข้อมูลจากlme4แพ็คเกจ:

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

หากคุณไม่ทราบจำนวนการทดลองทั้งหมดแสดงว่ารูปแบบทวินามนั้นไม่เหมาะสมตามที่ระบุไว้ในข้อความแสดงข้อผิดพลาด


ฉันไม่สามารถพูดได้ว่าใช้ตุ้มน้ำหนักสำหรับงานนี้หรือไม่ แต่แน่นอนคุณสามารถป้อนข้อมูลเป็นเมทริกซ์คอลัมน์สองคอลัมน์ (สำเร็จ / ล้มเหลว) ทางด้านซ้ายของสูตร
ndoogan

แต่ @ndoogan คำถามเดิมเกี่ยวกับสัดส่วนไม่ใช่ความสำเร็จ / ความล้มเหลว และโค้ดด้านบนใช้งานได้เหมือนที่ฉันเอามันจากcbppหน้าช่วยเหลือ
Steve Walker

ยุติธรรมพอสมควร แม้ว่าฉันตั้งใจจะหมายถึงความสำเร็จ / ความล้มเหลว ( ไม่ได้มีไว้เพื่อแบ่ง) เป็นที่ที่สัดส่วนของแบบจำลองทวินามมาจาก
ndoogan

+1 แต่ผู้อ่านอาจต้องการเห็นคำตอบของ @ BenBolker ที่นี่stats.stackexchange.com/questions/189115เกี่ยวกับวิธีที่เป็นไปได้ในการจัดการกับการใช้เกินขนาด
อะมีบาพูดว่า Reinstate Monica

9

(0,1)


2
แบบจำลองทวินามเป็นแบบจำลองของสัดส่วน แม้ว่าจะเหมาะสมเมื่อคุณทราบจำนวนการทดลองเท่านั้น หากสิ่งที่คุณมีคือเปอร์เซ็นต์ที่ไม่มีการระบุจำนวนการทดลองฉันเชื่อว่าคุณถูกต้องว่าการถดถอยเบต้านั้นเหมาะสม
ndoogan

(0,1)

ขอบคุณนี่เป็นจุดที่ดี ฉันยอมรับคำตอบอื่น ๆ เพราะมันตอบคำถามตามที่เขียนไว้ แต่ประเด็นเกี่ยวกับการถดถอยเบต้านั้นทำได้ดีดังนั้นฉันจึง upvote
Dan Stowell
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.