मल्टीवेरिएट मल्टीपल रिग्रेशन इन आर


68

मेरे 2 आश्रित चर (DVs) हैं, जिनके प्रत्येक अंक 7 स्वतंत्र चर (IVs) के सेट से प्रभावित हो सकते हैं। DV निरंतर होते हैं, जबकि IVs के सेट में निरंतर और द्विआधारी कोडित चर का मिश्रण होता है। (निरंतर चर के नीचे कोड ऊपरी मामले के अक्षरों और बाइनरी चर को निचले मामलों के अक्षरों में लिखा जाता है।)

अध्ययन का उद्देश्य यह उजागर करना है कि ये DV आईवीएस चर से कैसे प्रभावित होते हैं। मैंने निम्नलिखित बहुभिन्नरूपी बहु प्रतिगमन (MMR) मॉडल का प्रस्ताव रखा:

my.model <- lm(cbind(A, B) ~ c + d + e + f + g + H + I)

परिणामों की व्याख्या करने के लिए मैं दो कथन कहता हूं:

  1. summary(manova(my.model))
  2. Manova(my.model)

दोनों कॉल से आउटपुट नीचे चिपकाए गए हैं और काफी भिन्न हैं। क्या कोई यह बता सकता है कि एमएमआर के परिणामों को संक्षेप में बताने के लिए दोनों में से किस कथन को उठाया जाना चाहिए और क्यों? किसी भी सुझाव की बहुत सराहना की जाएगी।

आउटपुट summary(manova(my.model))स्टेटमेंट का उपयोग कर :

> summary(manova(my.model))
           Df   Pillai approx F num Df den Df    Pr(>F)    
c           1 0.105295   5.8255      2     99  0.004057 ** 
d           1 0.085131   4.6061      2     99  0.012225 *  
e           1 0.007886   0.3935      2     99  0.675773    
f           1 0.036121   1.8550      2     99  0.161854    
g           1 0.002103   0.1043      2     99  0.901049    
H           1 0.228766  14.6828      2     99 2.605e-06 ***
I           1 0.011752   0.5887      2     99  0.556999    
Residuals 100                                              
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

आउटपुट Manova(my.model)स्टेटमेंट का उपयोग कर :

> library(car)
> Manova(my.model)

Type II MANOVA Tests: Pillai test statistic
  Df test stat approx F num Df den Df    Pr(>F)    
c  1  0.030928   1.5798      2     99   0.21117    
d  1  0.079422   4.2706      2     99   0.01663 *  
e  1  0.003067   0.1523      2     99   0.85893    
f  1  0.029812   1.5210      2     99   0.22355    
g  1  0.004331   0.2153      2     99   0.80668    
H  1  0.229303  14.7276      2     99 2.516e-06 ***
I  1  0.011752   0.5887      2     99   0.55700    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

जवाबों:


78

संक्षेप में कहा गया है, इस आधार-आर की वजह से है manova(lm())वर्गों के तथाकथित प्रकार मैं योग के लिए अनुक्रमिक मॉडल की तुलना का उपयोग करता है, जबकि, carके Manova()डिफ़ॉल्ट वर्गों का प्रकार द्वितीय राशि के लिए मॉडल की तुलना का उपयोग करता है के द्वारा।

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

प्रकार I एसएस के लिए, आपके पहले भविष्यवक्ता के लिए एक प्रतिगमन विश्लेषण में प्रतिबंधित मॉडल cशून्य-मॉडल है जो केवल निरपेक्ष शब्द का उपयोग करता है: lm(Y ~ 1)जहां Yआपके मामले में मल्टीवेरेट DV द्वारा परिभाषित किया जाएगा cbind(A, B)। अप्रतिबंधित मॉडल तो भविष्यवक्ता कहते हैं c, यानी lm(Y ~ c + 1)

प्रकार II एसएस के लिए, आपके पहले भविष्यवक्ता के लिए एक प्रतिगमन विश्लेषण में अप्रतिबंधित मॉडल cपूर्ण मॉडल है जिसमें उनके अंतःक्रियाओं को छोड़कर सभी पूर्वानुमान शामिल हैं, अर्थात lm(Y ~ c + d + e + f + g + H + I)। प्रतिबंधित मॉडल cअप्रतिबंधित मॉडल से भविष्यवक्ता को हटा देता है , अर्थात lm(Y ~ d + e + f + g + H + I)

चूंकि दोनों फ़ंक्शन अलग-अलग मॉडल की तुलना पर निर्भर करते हैं, इसलिए वे अलग-अलग परिणाम देते हैं। जो प्रश्न बेहतर है, उसका उत्तर देना कठिन है - यह वास्तव में आपकी परिकल्पना पर निर्भर करता है।

क्या आप मानते हैं कि आप इस बात से परिचित हैं कि पिल्लई-बार्टलेट ट्रेस जैसे बहुभिन्नरूपी परीक्षण आंकड़ों की गणना नल-मॉडल, पूर्ण मॉडल और प्रतिबंधित-अप्रतिबंधित मॉडल की जोड़ी के आधार पर की जाती है। संक्षिप्तता के लिए, मैं केवल भविष्यवक्ताओं पर विचार करता हूं cऔर H, केवल परीक्षण करता हूं c

N <- 100                             # generate some data: number of subjects
c <- rbinom(N, 1, 0.2)               # dichotomous predictor c
H <- rnorm(N, -10, 2)                # metric predictor H
A <- -1.4*c + 0.6*H + rnorm(N, 0, 3) # DV A
B <-  1.4*c - 0.6*H + rnorm(N, 0, 3) # DV B
Y <- cbind(A, B)                     # DV matrix
my.model <- lm(Y ~ c + H)            # the multivariate model
summary(manova(my.model))            # from base-R: SS type I
#           Df  Pillai approx F num Df den Df  Pr(>F)    
# c          1 0.06835   3.5213      2     96 0.03344 *  
# H          1 0.32664  23.2842      2     96 5.7e-09 ***
# Residuals 97                                           

तुलना के लिए, से परिणाम carके Manova()समारोह एसएस प्रकार द्वितीय का उपयोग कर।

library(car)                           # for Manova()
Manova(my.model, type="II")
# Type II MANOVA Tests: Pillai test statistic
#   Df test stat approx F num Df den Df  Pr(>F)    
# c  1   0.05904   3.0119      2     96 0.05387 .  
# H  1   0.32664  23.2842      2     96 5.7e-09 ***

अब दोनों परिणामों को मैन्युअल रूप से सत्यापित करें। पहले डिजाइन मैट्रिक्स निर्माण करें और आर के डिजाइन मैट्रिक्स की तुलना करें।X

X  <- cbind(1, c, H)
XR <- model.matrix(~ c + H)
all.equal(X, XR, check.attributes=FALSE)
# [1] TRUE

अब पूर्ण मॉडल के लिए ऑर्थोगोनल प्रोजेक्शन को परिभाषित करें ( , सभी भविष्यवक्ताओं का उपयोग करके)। यह हमें मैट्रिक्स ।Pf=X(XX)1XW=Y(IPf)Y

Pf  <- X %*% solve(t(X) %*% X) %*% t(X)
Id  <- diag(N)
WW  <- t(Y) %*% (Id - Pf) %*% Y

SS प्रकार I प्लस उनके अनुमानों के लिए प्रतिबंधित और अप्रतिबंधित मॉडल और , मैट्रिक्स ।PrIPuIBI=Y(PuIPPrI)Y

XrI <- X[ , 1]
PrI <- XrI %*% solve(t(XrI) %*% XrI) %*% t(XrI)
XuI <- X[ , c(1, 2)]
PuI <- XuI %*% solve(t(XuI) %*% XuI) %*% t(XuI)
Bi  <- t(Y) %*% (PuI - PrI) %*% Y

SS प्रकार II के लिए प्रतिबंधित और अप्रतिबंधित मॉडल उनके अनुमान और , मैट्रिक्स ।PrIPuIIBII=Y(PuIIPPrII)Y

XrII <- X[ , -2]
PrII <- XrII %*% solve(t(XrII) %*% XrII) %*% t(XrII)
PuII <- Pf
Bii  <- t(Y) %*% (PuII - PrII) %*% Y

पिल्लई-बार्टलेट दोनों प्रकार के एसएस के लिए ट्रेस: ट्रेस ।(B+W)1B

(PBTi  <- sum(diag(solve(Bi  + WW) %*% Bi)))   # SS type I
# [1] 0.0683467

(PBTii <- sum(diag(solve(Bii + WW) %*% Bii)))  # SS type II
# [1] 0.05904288

ध्यान दें कि ऑर्थोगोनल अनुमानों के लिए गणना गणितीय सूत्र की नकल करते हैं, लेकिन संख्यात्मक रूप से एक बुरा विचार हैं। वास्तव में crossprod()इसके बजाय संयोजन में QR-decompositions या SVD का उपयोग करना चाहिए ।


3
इस बहुत अच्छी तरह से सचित्र प्रतिक्रिया के लिए मेरा बहुत बड़ा +1।
CHL

मुझे आश्चर्य है कि हालांकि lmफ़ंक्शन का उपयोग करते हुए मैं फ़ंक्शन के अंदर एक से अधिक रिस्पॉन्स वेरिएबल निर्दिष्ट करके केवल मल्टीवेरेट रिग्रेशन का संचालन कर रहा हूं lm। मुझे पता चला है कि lmजब मेरा डेटा वास्तव में मल्टीवेरिएट होता है तो फंक्शन का उपयोग करके मानक त्रुटि के लिए गलत परिणाम देते हैं। लेकिन इस मामले में मानक त्रुटि my.model <- lm(cbind(A, B) ~ c + d + e + f + g + H + I); को vcov(my.model )कम करना lmहोगा या बुद्धिमानी से आश्रित चर के बीच संबंध को समायोजित करेगा?
उपयोगकर्ता 31466

6

खैर, मेरे पास अभी भी पिछले उत्तर पर टिप्पणी करने के लिए पर्याप्त अंक नहीं हैं और इसलिए मैं इसे एक अलग उत्तर के रूप में लिख रहा हूं, इसलिए कृपया मुझे क्षमा करें। (यदि संभव हो तो कृपया मुझे 50 प्रतिनिधि बिंदुओं पर धकेलें;)

तो यहाँ 2cents हैं: I, II और III त्रुटि परीक्षण अनिवार्य रूप से डेटा असंतुलित होने के कारण भिन्नताएं हैं। (अविकारी असंतुलित होना: प्रत्येक स्तर में समान संख्या में टिप्पणियों का न होना)। यदि डेटा संतुलित है तो I, II और III त्रुटि परीक्षण सटीक परिणाम देता है।

तो क्या होता है जब डेटा असंतुलित होता है?

एक मॉडल पर विचार करें जिसमें दो कारक ए और बी शामिल हैं; इसलिए दो मुख्य प्रभाव हैं, और एक इंटरैक्शन, एबी। एसएस (ए, बी, एबी) पूर्ण मॉडल को इंगित करता है एसएस (ए, बी) बिना किसी बातचीत के मॉडल को इंगित करता है। एसएस (बी, एबी) उस मॉडल को इंगित करता है जो कारक ए से प्रभावों के लिए जिम्मेदार नहीं है, और इसी तरह।

यह अंकन अब समझ में आता है। बस इसे ध्यान में रखें।

SS(AB | A, B) = SS(A, B, AB) - SS(A, B)

SS(A | B, AB) = SS(A, B, AB) - SS(B, AB)

SS(B | A, AB) = SS(A, B, AB) - SS(A, AB)

SS(A | B)     = SS(A, B) - SS(B)

SS(B | A)     = SS(A, B) - SS(A)

प्रकार I, जिसे वर्गों का "अनुक्रमिक" योग भी कहा जाता है:

1) SS(A) for factor A.

2) SS(B | A) for factor B.

3) SS(AB | B, A) for interaction AB.

इसलिए हम A के मुख्य प्रभाव का अनुमान लगाते हैं, B का A दिया गया प्रभाव, और फिर अनुमान का AB का A और B का अनुमान लगाते हैं (यह वह जगह है जहाँ असंतुलित डेटा, अंतर को किक करते हैं। जैसा कि हम पहले मुख्य प्रभाव का अनुमान लगाते हैं और फिर दूसरे के मुख्य का। तब एक "अनुक्रम" में बातचीत

प्रकार II:

1) SS(A | B) for factor A.

2) SS(B | A) for factor B.

ए के बाद बी और बी के बाद ए के मुख्य प्रभाव का प्रकार II परीक्षण महत्वपूर्ण है। कोई एसएस (एबी | बी, ए) क्यों नहीं है? कैविएट यह है कि टाइप II पद्धति का उपयोग केवल तभी किया जा सकता है जब हमने बातचीत के लिए पहले ही परीक्षण कर लिया हो। यह देखते हुए कि कोई इंटरैक्शन नहीं है (SS (AB | B, A) महत्वहीन है) टाइप II टेस्ट में III की तरह बेहतर पावर है

प्रकार III:

1) SS(A | B, AB) for factor A.

2) SS(B | A, AB) for factor B.

इसलिए हमने टाइप II के दौरान बातचीत के लिए परीक्षण किया और बातचीत महत्वपूर्ण थी। अब हमें टाइप III का उपयोग करने की आवश्यकता है क्योंकि यह इंटरैक्शन टर्म को ध्यान में रखता है।

जैसा कि @caracal ने पहले ही कहा है, जब डेटा संतुलित होता है, तो कारक ऑर्थोगोनल होते हैं, और I, II और III सभी समान परिणाम देते हैं। आशा है कि ये आपकी मदद करेगा !

प्रकटीकरण: इसमें से अधिकांश मेरा अपना काम नहीं है। मुझे यह उत्कृष्ट पृष्ठ जुड़ा हुआ लगा और ऐसा लगा कि इसे सरल बनाने के लिए इसे और उबालना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.