आर में एकाधिक आश्रित चर के साथ एक सामान्यीकृत रैखिक मॉडल कैसे करें?


17

मेरे पास छह आश्रित चर (गणना डेटा) और कई स्वतंत्र चर हैं, मैं देखता हूं कि एक एमएमआर में स्क्रिप्ट इस तरह से होती है:

my.model <- lm(cbind(DV1,DV2,DV3,DV4,DV5,DV6) ~ IV1 + IV2 + ... + IVn)

लेकिन, चूंकि मेरा डेटा मायने रखता है, मैं एक सामान्यीकृत रैखिक मॉडल का उपयोग करना चाहता हूं और मैंने यह कोशिश की:

my.model <- glm(cbind(DV1,DV2,DV3,DV4,DV5,DV6) ~ IV1 + IV2 + ... + IVn, family="poisson")

और यह त्रुटि संदेश प्रकट होता है:

Error in glm.fit(x = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,  : 
  (subscript) logical subscript too long`

क्या कोई मुझे इस त्रुटि संदेश या मेरी समस्या को हल करने का एक तरीका बता सकता है?


@Giorgio Spedicato के उत्तर के बाद: क्या हम मानते हैं कि आप ऐसे मॉडल चाहते हैं जो प्रत्येक आश्रित चर को अलग-अलग मानते हैं, जैसा lmकि आप इसे मैट्रिक्स देते समय करते हैं?
संयुक्ताक्षरी

मुझे विश्लेषण का दूसरा भाग याद आता है। : एक एमएमआर (बहुभिन्नरूपी एकाधिक प्रतिगमन) के बाद में lm(cbind(DV1,DV2,DV3,DV4,DV5,DV6) ~ IV1 + IV2 + ... + IVn) मैं चाहिए
जुआन

मैं हो सकता है सिर्फ इस सवाल का जवाब देना मेरा उत्तर समायोजित किया है। यह भी याद रखें कि टिप्पणियों में वापसी को प्रेस न करें :-)
conjugateprior

मुझे विश्लेषण का दूसरा भाग याद आता है। एमएमआर (मल्टीवीरेट मल्टीपल रिग्रेशन) के बाद: lm(cbind(DV1,DV2,DV3,DV4,DV5,DV6) ~ IV1 + IV2 + ... + IVn) मुझे इस तरह के मनोवा () कमांड का उपयोग करना चाहिए: summary(manova(my.model)) विचरण का बहुभिन्नरूपी विश्लेषण करने और प्रत्येक स्वतंत्र चर के महत्व को देखने के लिए। वह अंतिम लक्ष्य है।
जुआन

इस प्रकार के डेटा के लिए न तो मैनोवा और न ही एनोवा को परिभाषित किया गया है, इसलिए इसे पेश नहीं किया जाता है। लेकिन अगर आप प्रत्येक IV के प्रभाव को देखना चाहते हैं, तो प्रदान की गई प्रतिगमन तालिका summaryउन्हें प्रत्येक DV के लिए आपको देगी।
संयुक्ताक्षरी

जवाबों:


11

संक्षिप्त उत्तर यह है कि glmऐसा काम नहीं करता है। lmपैदा करेगा mlmवस्तुओं अगर आप इसे एक मैट्रिक्स दे, लेकिन यह व्यापक रूप से जेनरिक में समर्थित नहीं है और वैसे भी आसानी से करने के लिए सामान्य नहीं कर सकताglm क्योंकि उन रसद प्रतिगमन मॉडल के लिए दोहरी स्तंभ आश्रित चरों निर्दिष्ट करने के लिए सक्षम होना चाहिए।

इसका समाधान मॉडल को अलग से फिट करना है। मान लें कि आपके IVs और DV एक डेटा.फ्रेम में रहते ddहैं जिन्हें कॉल किया जाता है और उन्हें आपके प्रश्न के तरीके से लेबल किया जाता है । निम्न कोड उनके द्वारा उपयोग किए जाने वाले आश्रित चर के नाम से अनुक्रमित सज्जित मॉडल की एक सूची बनाता है:

models <- list()
dvnames <- paste("DV", 1:6, sep='')
ivnames <- paste("IV", 1:n, sep='') ## for some value of n

for (y in dvnames){
  form <- formula(paste(y, "~", ivnames))
  models[[y]] <- glm(form, data=dd, family='poisson') 
}

परिणामों की जांच करने के लिए, बस अपने सामान्य कार्यों को lapplyइस तरह से लपेटें :

lapply(models, summary) ## summarize each model

आर में ऐसा करने के लिए और अधिक सुरुचिपूर्ण तरीके हैं, लेकिन इसमें कोई संदेह नहीं है।


6

मुझे बताया गया कि मल्टीवीरेट जनरल लाइनियर (मिश्रित) मॉडल मौजूद हैं जो आपकी समस्या का समाधान करते हैं। मैं इसके बारे में विशेषज्ञ नहीं हूं, लेकिन मुझे SABER प्रलेखन और इस पुस्तक पर एक नज़र होगी मल्टीवेरेट GLMs पर पर होगी। शायद वे मदद करें ...


2
आप एक दिलचस्प बिंदु (+1) लाते हैं। बहुभिन्नरूपी GLMs निश्चित रूप से मौजूद हैं। दूसरी ओर, दे रही है lmएक आश्रित चर के लिए एक मैट्रिक्स शायद, वाक्यात्मक चीनी के रूप में अधिक देखा जाना चाहिए बहुविविध मॉडल की अभिव्यक्ति के रूप में की तुलना में: अगर यह थे बहुविविध (सामान्य) मॉडल यह हो जाएगा एक जहाँ त्रुटियाँ हैं ' गोलाकार ', यानी एक जहां आप आश्रित चर के प्रत्येक तत्व पर अलग-अलग पंजीकरण चला सकते हैं और एक ही उत्तर प्राप्त कर सकते हैं।
संयुक्ताक्षरी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.