R में आंशिक रूप से न्यूनतम वर्ग प्रतिगमन: मानकीकृत डेटा पर PLS सहसंबंध को अधिकतम करने के बराबर क्यों नहीं है?


12

मैं आंशिक रूप से कम से कम वर्गों (पीएलएस) में बहुत नया हूं और मैं पैकेज plsr()में आर फ़ंक्शन के आउटपुट को समझने की कोशिश करता हूं pls। आइए हम डेटा का अनुकरण करते हैं और PLS चलाते हैं:

library(pls)
n <- 50
x1 <- rnorm(n); xx1 <- scale(x1) 
x2 <- rnorm(n); xx2 <- scale(x2)
y <- x1 + x2 + rnorm(n,0,0.1); yy <- scale(y)
p <- plsr(yy ~ xx1+xx2, ncomp=1)

मैं उम्मीद कर रहा था कि निम्नलिखित संख्या औरab

> ( w <- loading.weights(p) )

Loadings:
    Comp 1
xx1 0.723 
xx2 0.690 

               Comp 1
SS loadings       1.0
Proportion Var    0.5
> a <- w["xx1",]
> b <- w["xx2",]
> a^2+b^2
[1] 1

अधिकतम करने के लिए गणना की जाती है

> cor(y, a*xx1+b*xx2)
          [,1]
[1,] 0.9981291

लेकिन यह वास्तव में ऐसा नहीं है:

> f <- function(ab){
+ a <- ab[1]; b <- ab[2]
+ cor(y, a*xx1+b*xx2)
+ }
> optim(c(0.7,0.6), f, control=list(fnscale=-1))
$par
[1] 0.7128259 0.6672870

$value
[1] 0.9981618

क्या यह एक संख्यात्मक त्रुटि है, या क्या मैं a और b के स्वभाव को गलत समझता हूं b?

मैं यह भी जानना चाहूंगा कि ये गुणांक क्या हैं:

> p$coef
, , 1 comps

           yy
xx1 0.6672848
xx2 0.6368604 

संपादित करें : अब मैं देखता हूं p$coef:

> x <- a*xx1+b*xx2
> coef(lm(yy~0+x))
        x 
0.9224208 
> coef(lm(yy~0+x))*a
        x 
0.6672848 
> coef(lm(yy~0+x))*b
        x 
0.6368604 

इसलिए मुझे लगता है कि मैं और के स्वभाव के बारे में सही हूं ।bab

EDIT: @chl द्वारा दी गई टिप्पणियों के मद्देनजर मुझे लगता है कि मेरा प्रश्न पर्याप्त रूप से स्पष्ट नहीं है, इसलिए मुझे और विवरण प्रदान करें। मेरे उदाहरण में एक सदिश है प्रतिक्रियाओं की और एक दो कॉलम मैट्रिक्स भविष्यवक्ताओं की और मैं सामान्यीकृत संस्करण का उपयोग की और सामान्यीकृत संस्करण के (केंद्रित और मानक विचलन से विभाजित)। पहले PLS घटक की परिभाषा है साथ और आदेश आंतरिक उत्पाद की अधिकतम मूल्य पाने के लिए चुना ।एक्स ~ वाई वाई ~ एक्स एक्स टी 1 टी 1 = एक ~ एक्स 1 + ~ एक्स 2 एक टी 1 , ~ वाईटी 1 YYXY~YX~Xt1t1=aX~1+bX~2abt1,Y~इसलिए यह और बीच सहसंबंध को अधिकतम करने के बराबर है , है ना?t1Y


2
पीएलएस प्रतिगमन कारक स्कोर को अधिकतम करता है (जो लोडिंग वेक्टर (ओं) के साथ कच्चे डेटा के उत्पाद के रूप में गणना की जाती है) सहसंयोजक , सहसंबंध नहीं (जैसा कि कैनोनिकल सहसंबंध विश्लेषण में किया गया है)। plsइस JSS पेपर में पैकेज और PLS प्रतिगमन का अच्छा अवलोकन है ।
chl

1
चूंकि सभी वैक्टर केंद्रित हैं और सामान्यीकृत हैं, इसलिए सहसंयोजक सहसंबंध है, है ना? क्षमा करें, लेकिन शुरुआत के लिए JSS पेपर बहुत अधिक तकनीकी है।
स्टीफन लॉरेंट

सामान्य तौर पर, एक विषम अपस्फीति प्रक्रिया होती है (जिसके परिणामस्वरूप दूसरे के रैखिक संयोजन पर एक ब्लॉक के रेखीय संयोजन का प्रतिगमन होता है) जो चीजों को थोड़ा जटिल करता है। मैंने इस प्रतिक्रिया में कुछ योजनाबद्ध चित्र प्रदान किए । हर्वे आब्दी ने पीएलएस प्रतिगमन के कुछ सामान्य अवलोकन दिए , और वेगलिन के सर्वेक्षण का आंशिक खमीर वर्ग (पीएलएस) तरीके काफी उपयोगी हैं। इस बिंदु पर, मुझे संभवतः उन सभी टिप्पणियों को एक उत्तर में बदलना चाहिए ...
chl

मेरे उदाहरण में एक सदिश है प्रतिक्रियाओं की और एक दो कॉलम मैट्रिक्स भविष्यवक्ताओं की और मैं सामान्यीकृत संस्करण का उपयोग की और सामान्यीकृत संस्करण के (केंद्रित और मानक विचलन से विभाजित)। पहले PLS घटक के मेरे परिभाषा है साथ और आदेश अदिश उत्पाद की अधिकतम मूल्य पाने के लिए चुना । क्या यह अच्छी परिभाषा नहीं है? एक्स ~ वाई वाई ~ एक्स एक्स टी 1 टी 1 = एक ~ एक्स 1 + ~ एक्स 2 एक टी 1 , ~ वाईYXY~YX~Xt1t1=aX~1+bX~2abt1,Y~
स्टीफन लॉरेंट

क्षमा करें, @ स्टीफन, क्योंकि ऊपर की मेरी टिप्पणियों ने इस तथ्य को ध्यान में नहीं रखा कि आपने केवल एक घटक का अनुरोध किया था (इसलिए अपस्फीति यहां महत्वपूर्ण भूमिका नहीं निभाती है)। हालाँकि, ऐसा लगता है कि आपका अनुकूलन कार्य इकाई मान वेट वैक्टर नहीं लगाता है, जैसे कि अंत में । (btw, आपको उन 'गुणांक' के बारे में अधिक जानकारी देंगे, लेकिन आपने पहले से ही स्पष्ट रूप से खुद को खोज लिया है।)a2+b21?coef.mvr
chl

जवाबों:


17

PLS प्रतिगमन पुनरावृत्त एल्गोरिदम (जैसे, NIPALS, SIMPLS) पर निर्भर करता है। मुख्य विचारों का आपका विवरण सही है: हम एक (PLS1, एक प्रतिक्रिया चर / एकाधिक भविष्यवक्ता) या दो (PLS2, अलग-अलग मोड, एकाधिक प्रतिक्रिया चर / एकाधिक भविष्यवक्ता) वेक्टर (ओं) को वेट, (और ) के साथ ढूंढते हैं। , मूल चर (ओं) के रैखिक संयोजन (ओं) को बनाने के लिए, जैसे कि जू और वाई (Yv, PLS2 के लिए) के बीच सहसंबंध अधिकतम है। आइए हम पहले घटक से जुड़े भार की पहली जोड़ी को निकालने पर ध्यान दें। औपचारिक रूप से, का अनुकूलन करने के लिए कसौटी पढ़ता आपके मामले में, univariate है, इसलिए यह अधिकतम करने के लिए बराबर है वी मैक्स कोव ( एक्स यू , वाई वी ) uv

maxcov(Xu,Yv).(1)
Yवार ( y )
cov(Xu,y)Var(Xu)1/2×cor(Xu,y)×Var(y)1/2,st.u=1.
चूँकि पर निर्भर नहीं करता है , हमें को अधिकतम करना होगा । आइए विचार करें , जहां डेटा को व्यक्तिगत रूप से मानकीकृत किया गया है (मैंने शुरू में और बजाय अलग से आपके रैखिक संयोजन को स्केल करने की गलती की थी !), इसलिए उस ; हालाँकि, और पर निर्भर करता है । निष्कर्ष में, अव्यक्त घटक और प्रतिक्रिया चर के बीच सहसंबंध को अधिकतम करने से समान परिणाम प्राप्त नहीं होंगेVar(y)uVar(Xu)1/2×cor(Xu,y)X=[x_1;x_2]x1x2Var(x1)=Var(x2)=1Var(Xu)1u

मुझे आर्थर टेनेनहौस को धन्यवाद देना चाहिए जिन्होंने मुझे सही दिशा में इशारा किया।

इकाई वजन वैक्टर का उपयोग करना प्रतिबंधित नहीं है और कुछ पैकेज ( pls. regressionमें plsgenomics , Wehrens के पहले पैकेज से कोड के आधार पर pls.pcr) unstandardized वजन वैक्टर वापस आ जाएगी (लेकिन आदर्श 1 की अभी भी अव्यक्त घटकों के साथ), यदि अनुरोध किया। लेकिन पीएलएस के अधिकांश पैकेज मानकीकृत वापस आएंगे , जिसमें आपके द्वारा उपयोग किया गया, विशेष रूप से जो SIMPLS या NIPALS एल्गोरिदम को लागू कर रहे हैं; मुझे बैरी एम। वाइजेज की प्रस्तुति, प्रॉपर्टी ऑफ पार्टिकल लिस्ट स्क्वेयर्स (पीएलएस) रिग्रेशन के गुण और एल्गोरिदम के बीच मतभेदों का एक अच्छा अवलोकन मिला , लेकिन केमोमेट्रिक्सuविगनेट एक अच्छी चर्चा भी प्रस्तुत करता है (पीपी। 26-29)। विशेष महत्व के साथ-साथ यह तथ्य भी है कि अधिकांश PLS दिनचर्या (कम से कम जिसे मैं R में जानता हूं) मान लेते हैं कि आप अनियंत्रित चर प्रदान करते हैं क्योंकि केंद्र और / या स्केलिंग को आंतरिक रूप से नियंत्रित किया जाता है (उदाहरण के लिए क्रॉस-सत्यापन करते समय यह विशेष रूप से महत्वपूर्ण है) )।

को देखते हुए , वेक्टर कोuu=1u

u=XyXy.

थोड़ा सिमुलेशन का उपयोग करके, इसे निम्नानुसार प्राप्त किया जा सकता है:

set.seed(101)
X <- replicate(2, rnorm(100))
y <- 0.6*X[,1] + 0.7*X[,2] + rnorm(100)
X <- apply(X, 2, scale)
y <- scale(y)

# NIPALS (PLS1)
u <- crossprod(X, y)
u <- u/drop(sqrt(crossprod(u)))         # X weights
t  <- X%*%u
p <- crossprod(X, t)/drop(crossprod(t)) # X loadings

आप उपरोक्त परिणामों ( u=[0.5792043;0.8151824]विशेष रूप से) की तुलना R पैकेज के साथ दे सकते हैं। उदाहरण के लिए, केमोमेट्रिक्स पैकेज से NIPALS का उपयोग करना (एक और कार्यान्वयन जो मुझे पता है कि मिक्समिक्स पैकेज में उपलब्ध है ), हम प्राप्त करेंगे:

library(chemometrics)
pls1_nipals(X, y, 1)$W  # X weights [0.5792043;0.8151824]
pls1_nipals(X, y, 1)$P  # X loadings

समान परिणाम plsrइसके डिफ़ॉल्ट कर्नेल पीएलएस एल्गोरिथ्म के साथ प्राप्त किए जाएंगे :

> library(pls)
> as.numeric(loading.weights(plsr(y ~ X, ncomp=1)))
[1] 0.5792043 0.8151824

सभी मामलों में, हम जाँच सकते हैं कि की लंबाई 1 है।u

बशर्ते आप जो पढ़ते हैं, उसके अनुकूल होने के लिए अपने फ़ंक्शन को बदलें

f <- function(u) cov(y, X%*%(u/sqrt(crossprod(u))))

और uबाद में सामान्य करें ( u <- u/sqrt(crossprod(u))), आपको उपरोक्त समाधान के करीब होना चाहिए।

सिडेनोट : जैसा कि मानदंड (1) बराबर है को सबसे बड़े अनुरूप के एसवीडी से बाएं विलक्षण वेक्टर के रूप में पाया जा सकता है :यू एक्स ' Y

maxuXYv,
uXY
svd(crossprod(X, y))$u

अधिक सामान्य मामले (PLS2) में, उपरोक्त संक्षेप में कहने का एक तरीका यह है कि पहले PLS विहित वैक्टर दोनों दिशाओं में X और Y के सहसंयोजक मैट्रिक्स का सबसे अच्छा सन्निकटन हैं।

संदर्भ

  1. तेनहास, एम (1999)। L'approche PLSरिव्यू डे स्टेटिस्टिक अप्लिके , 47 (2), 5-40।
  2. टेर ब्राक, सीजेएफ और डी जोंग, एस (1993)। आंशिक कम से कम वर्गों प्रतिगमन का उद्देश्य समारोहकेमोमेट्रिक्स जर्नल , 12, 41-54।
  3. आब्दी, एच (2010)। अव्यक्त संरचना प्रतिगमन (PLS प्रतिगमन) पर आंशिक रूप से न्यूनतम वर्ग प्रतिगमन और प्रक्षेपणविली अंतःविषय समीक्षा: कम्प्यूटेशनल सांख्यिकी , 2, 97-106।
  4. बोलेस्टिक्स, एएल और स्ट्रिमर, के (2007)। आंशिक कम वर्ग: उच्च आयामी जीनोमिक डेटा के विश्लेषण के लिए एक बहुमुखी उपकरणजैव सूचना विज्ञान में ब्रीफिंग , 8 (1), 32-44।

धन्यवाद chl जब भी संभव हो मैं आपके उत्तर को पढ़ूंगा (और निश्चित रूप से ऊपर जाऊंगा और चेक मार्क पर क्लिक करूंगा!)
स्टीफन लॉरेंट

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