बिन-जीएलएमएम (ग्लमर) को हां-ना की गिनती के बजाय प्रतिशत में कैसे लागू करें?


21

मेरे पास एक दोहराया-मापी प्रयोग है जहां निर्भर चर एक प्रतिशत है, और मेरे पास स्वतंत्र चर के रूप में कई कारक हैं। मैं glmerआर पैकेज 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
यह मेरे लिए ठीक नहीं लगता है, क्योंकि 10 में से 5 में 1000 में से 500 के समान जानकारी नहीं है। किसी की गिनती के रूप में प्रतिक्रिया व्यक्त करें। "सफलताओं" और नहीं की एक गिनती। "विफलताएं"।
Scortchi - को पुनः स्थापित मोनिका

@Scortchi धन्यवाद, मुझे लगता है कि आप सही हो सकते हैं। मैं इस प्रश्न के समान मेरे प्रतिशत (संभावित निर्णयों से प्राप्त) की निरंतर प्रकृति के बारे में सोच रहा था: आंकड़े.stackexchange.com/questions/77376/ ... लेकिन मेरा मानना ​​है कि मैं पूर्णांक गणनाओं के लिए एक सार्थक रूपांतरण के माध्यम से अपने डेटा को व्यक्त कर सकता हूं।
दान स्टोवेल

जवाबों:


22

अनुक्रिया चर के रूप में अनुपातों के एक वेक्टर का उपयोग करने के लिए glmer(., family = binomial), आपको उन परीक्षणों की संख्या निर्धारित करने की आवश्यकता है जो weightsतर्क का उपयोग करके प्रत्येक अनुपात का नेतृत्व करते थे । उदाहरण के लिए, पैकेज cbppसे डेटा का उपयोग करना lme4:

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

यदि आप परीक्षणों की कुल संख्या नहीं जानते हैं, तो एक द्विपद मॉडल उपयुक्त नहीं है, जैसा कि त्रुटि संदेश में दर्शाया गया है।


मैं यह नहीं कह सकता कि इस काम के लिए वजन का उपयोग करना या नहीं। लेकिन आप निश्चित रूप से फॉर्मूला के बायीं ओर डेटा को दो कॉलम मैट्रिक्स (सफलताओं / विफलताओं) के रूप में इनपुट कर सकते हैं।
ndoogan

लेकिन @ndoogan, मूल प्रश्न अनुपातों के बारे में था, सफलताओं / असफलताओं के बारे में नहीं। और उपरोक्त कोड काम करता है, जैसा कि मैंने इसे cbppमदद पृष्ठ से लिया है ।
स्टीव वॉकर

काफी उचित। हालांकि, मेरा मतलब सफलताओं / असफलताओं ( विभाजन के इरादे से नहीं ) से है जहां एक द्विपद मॉडल के लिए अनुपात आते हैं।
नादोगन

+1 लेकिन पाठक अतिविशिष्टता से निपटने के संभावित तरीकों के बारे में @ BenBolker के जवाब यहाँ देख सकते हैं ।
अमीबा का कहना है कि

9

(0,1)


2
एक द्विपद मॉडल अनुपात का एक मॉडल है। हालाँकि, यह केवल तभी उचित है जब आप परीक्षणों की संख्या जानते हैं। यदि आप सभी के पास एक प्रतिशत है, जिसमें परीक्षणों की संख्या का कोई संकेत नहीं है, तो मेरा मानना ​​है कि आप सही हैं कि बीटा प्रतिगमन उपयुक्त है।
नादोगन

(0,1)

धन्यवाद, यह एक अच्छी बात है। मैं दूसरे उत्तर को स्वीकार कर रहा हूं क्योंकि यह प्रश्न के लिखित रूप में उत्तर देता है, लेकिन बीटा प्रतिगमन के बारे में बात अच्छी तरह से की गई है इसलिए मैंने इसे उकेरा है।
डैन स्टॉवेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.