2012-09-18 15 views
6

मैं मध्यस्थ पैकेज का उपयोग कर आर में मध्यस्थता विश्लेषण करने का प्रयास कर रहा हूं। मैंने दस्तावेज को यह कैसे किया है, इस पर ध्यान दिया है, और आर द्वारा प्रदान किए गए उदाहरणों के माध्यम से पढ़ा है (यानी, मैंने पहले से ही "उदाहरण (मध्यस्थ)" चलाया है)। इसके बावजूद, मुझे चलाने के लिए सबसे आसान मध्यस्थता नहीं मिल सकती है। आदर्श रूप में, मैं बूटस्ट्रैपिंग प्रक्रिया करना चाहता हूं, एक ला प्रचारक & हेस (2004)।आर मध्यस्थता विश्लेषण - बूटस्ट्रैपिंग

model.m <- lm(desirdata1$zpers1 ~ desirdata1$zdesir1 + desirdata1$age) 
model.y <- lm(desirdata1$zpers1 ~ desirdata1$age) 
age1test <- mediate(model.m, model.y,treat="age", mediator="zdesir1", 
        boot=TRUE, sims=50) 

ध्यान दें कि डाटासेट desirdata कहा जाता है परिणाम zpers1 कहा जाता है और मध्यस्थ "zdesir1" कहा जाता है, उपचार age कहा जाता है,:

यहाँ कोड है कि मैं चलाने के लिए कोशिश कर रहा हूँ है।

Error in `[.data.frame`(m.data, , treat) : undefined columns selected 

यह दावा करते हुए किया जाना चाहिए कि एक चर (विशेष रूप से, उपचार चर) मौजूद नहीं है लगता है: जब मैं इस चलाने के लिए, मैं निम्नलिखित त्रुटि मिलती है। हालांकि, चल रहे नाम (desirdata) से पता चलता है कि चर वहां है, और यह सही रूप से नामित है, जैसा कि अन्य सभी चर हैं। पहले दो मॉडल (model.m और model.y) ठीक चलते हैं, और आउटपुट दिखता है जैसा कि इसे करना चाहिए। यह केवल मध्यस्थता मॉडल है जिसे मैं चलाने के लिए नहीं मिल सकता। मैंने एक टाइपो नहीं बनाया है, जहां तक ​​मैं कह सकता हूं, और मैंने इसे एक सौ बार चेक किया है।

विचार?

+0

मुझे लगता है कि आप "मध्यस्थता पैकेज" लिखने के लिए अनुमान लगा रहे हैं? –

+0

यह 'आयु' की तलाश में है, लेकिन इसे 'desirdata1 $ आयु' मिलती है। काफी वही अचार नहीं है (मुझे लगता है कि @Dwin का मतलब है "ब्रेक डाउन" टिप्पणी के साथ)। –

+0

डीडब्ल्यूएन - हाँ, मध्यस्थता पैकेज। अरे नहीं। और इनपुट, रोमन के लिए धन्यवाद। –

उत्तर

1

जैसा कि मैंने प्रलेखन में उदाहरण पढ़ा है, मध्यस्थ मॉडल के लिए model.m मुख्य प्रतिगमन वस्तु model.y के लिए उससे अलग परिणाम होगा। जब से तुम पृष्ठभूमि का वर्णन किया है नहीं और डेटा किस तरह यह इस बात का बहुत कुछ होने के लिए कठिन है, लेकिन सोच आप टाइप करने के लिए होती है, तो:

model.m <- lm(zdesir1 ~ age, data=desirdata1) 
model.y <- lm(zpers1 ~ age, , data=desirdata1) 
age1test <- mediate(model.m, model.y,treat="age", mediator="zdesir1", 
        boot=TRUE, sims=50) 

मैं formula और data वस्तुओं का उपयोग कर इसे डाली, कुछ प्रतिगमन कार्यों के बाद से केवल वैक्टर दिए जाने पर तोड़ दें। टाइपो को देखना भी आसान बनाता है।

+0

डीडब्ल्यूएन - धन्यवाद, और आपकी व्याख्या सही थी, मुझे लगता है, लेकिन मैं अभी भी इसे चलाने के लिए नहीं मिल सकता। मैंने आपके संस्करण की कोशिश की, और अब मैं एक ही त्रुटि करता हूं, लेकिन दावा करता हूं कि मध्यस्थ मौजूद नहीं है: '.data.frame' (y.data, मध्यस्थ) में त्रुटि: चयनित अपरिभाषित कॉलम। कोई अन्य विचार? –

1

एमबीईएस पैकेज आज़माएं। प्रचारक इसकी सिफारिश करता है और आप केवल मध्यस्थता समारोह का उपयोग कर सकते हैं। यदि आप बूटस्ट्रैप चाहते हैं तो बस सुनिश्चित करें कि यह बूटस्ट्रैप = ​​TRUE कहता है। बी बूटस्ट्रैप्स की संख्या है।

mediation(x, mediator, dv, S = NULL, N = NULL, x.location.S = NULL, 
mediator.location.S = NULL, dv.location.S = NULL, mean.x = NULL, 
mean.m = NULL, mean.dv = NULL, conf.level = 0.95, 
bootstrap = FALSE, B = 1000, which.boot="both", save.bs.replicates=FALSE) 
+0

ठीक है, मैं इसे एक और विकल्प के रूप में एक शॉट दे रहा हूं। हालांकि, यदि आपके पास कोई विचार है, तो मुझे अभी भी कुछ परेशानी हो रही है, कृपया साझा करने के लिए स्वतंत्र महसूस करें। जब मैं इसे चलाने का प्रयास करता हूं, तो मुझे यह संकेत मिलता है कि मैट्रिस की पंक्तियों की संख्या मेल खाना चाहिए: cbind (x, mediator, dv) में त्रुटि: मैट्रिस की पंक्तियों की संख्या मेल खाना चाहिए (तर्क 3 देखें)। हालांकि, मैंने पहले से ही किसी भी लापता डेटा को बाहर रखा है, और प्रत्येक चर के लिए n एक ही है (13044)। किसी भी विचार के बारे में क्या परेशान हो सकता है? –

0

मैं तो मैं डिबग (मध्यस्थता) भाग गया और पाया जहां समस्या थी नकली डेटा के साथ एक ही समस्या में पड़ गए। मेरा मानना ​​है कि समस्या कोड के [इलाज = "आयु", मध्यस्थ = "zdesir1"] भाग के साथ है। यदि आप डेटा संलग्न करते हैं, तो आपको उस समस्या में भाग नहीं लेना चाहिए। वैकल्पिक रूप से, आप [treat = "desirdata1 $ age", mediator = "desirdata1 $ zdesir1"] का उपयोग कर सकते हैं जो समस्या को हल करना चाहिए।

0

खैर इस प्रयास करें:

model.m <- lm(zdesir1 ~ age, data=desirdata1) 
model.y <- lm(zpers1 ~ age + zdesir1, data=desirdata1) 
age1test <- mediate(model.m, model.y,treat="age", mediator="zdesir1", 
        boot=TRUE, sims=50) 

यह आसान बनाने के लिए, मध्यस्थ मॉडल (model.m) परिणाम के रूप में मध्यस्थ होना चाहिए।

2

आपके मॉडल सही नहीं हैं। model.m को चौथाई से मध्यस्थ की भविष्यवाणी करनी चाहिए, और model.y मध्यस्थ और चतुर्थ से DV की भविष्यवाणी करनी चाहिए।

model.m <- lm(desirdata1$zdesir1 ~ desirdata1$age) 
model.y <- lm(desirdata1$zpers1 ~ desirdata1$zdesir1 + desirdata1$age) 
age1test <- mediate(model.m, model.y, treat="age", mediator="zdesir1", boot=TRUE, sims=50) 
संबंधित मुद्दे