আর এর মধ্যে আংশিক সর্বনিম্ন স্কোয়ার রিগ্রেশন: মানকৃত ডেটাতে পিএলএস কেন সর্বোচ্চ সংযুক্তির সমান নয়?


12

আমি আংশিক লিস্ট স্কোয়ার (পিএলএস) খুব নতুন এবং আমি আর ফাংশনের আউটপুট বোঝার চেষ্টা plsr()মধ্যে 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)

আমি আশা করছিলাম যে নিম্নলিখিত সংখ্যাগুলি a এবং b

> ( 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?

আমি আরও জানতে চাই যে এই সহগগুলি কী কী:

> 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 

সুতরাং আমি মনে করি আমি এবং এর প্রকৃতি সম্পর্কে সঠিক ।ab

সম্পাদনা: @ সিএল-এর দেওয়া মন্তব্যে আমি মনে করি আমার প্রশ্নটি যথেষ্ট পরিস্কার নয়, তাই আমাকে আরও বিশদ সরবরাহ করতে দিন। আমার উদাহরণে একটি ভেক্টর আছে প্রতিক্রিয়া এবং একটি দুই কলাম ম্যাট্রিক্স এক্স ভবিষ্যতবক্তা ও আমি সাধারণ সংস্করণ ব্যবহার ~ ওয়াই এর ওয়াই এবং সাধারণ সংস্করণ ~ এক্স এর এক্স (কেন্দ্রিক এবং স্ট্যান্ডার্ড ডেভিয়েশন দ্বারা বিভক্ত)। কম্পোনেন্ট প্রথম পিএলএস সংজ্ঞা টন 1 হয় T 1 = একটি ~ এক্স 1 + + ~ এক্স 2 সঙ্গে একটি এবং YXY~YX~Xt1t1=aX~1+bX~2abঅর্ডার ভেতরের পণ্যের একটি সর্বোচ্চ মূল্য আছে করার জন্য মনোনীত সুতরাং এটি টি 1 এবং Y এর মধ্যে সর্বাধিক সম্পর্ক স্থাপনের সমান , তাই না?t1,Y~t1Y


2
পিএলএস রিগ্রেশন ফ্যাক্টর স্কোরকে সর্বাধিক করে তোলে (যা লোডিং ভেক্টর (গুলি) এর কোভারিয়েন্সের সাথে কাঁচা ডেটার পণ্য হিসাবে গণনা করা হয় , পারস্পরিক সম্পর্ক নয় (যেমন ক্যানোনিকাল কোরিলেশন অ্যানালাইসিসে করা হয়))। plsএই জেএসএস কাগজে প্যাকেজ এবং পিএলএস রিগ্রেশন সম্পর্কে একটি ভাল ওভারভিউ রয়েছে ।
chl

1
যেহেতু সমস্ত ভেক্টর কেন্দ্রিক এবং সাধারণীকরণ করা হয়েছে, তাই সমবায় পরস্পর সম্পর্ক, তাই না? দুঃখিত তবে জেএসএসের কাগজটি কোনও শিক্ষানবিশের পক্ষে খুব বেশি প্রযুক্তিগত।
স্টাফেন লরেন্ট

সাধারণভাবে, একটি অসাম্যকর ডিফ্লেশন প্রক্রিয়া রয়েছে (অন্যটির লিনিয়ার সংমিশ্রণে এক ব্লকের রৈখিক সংমিশ্রণের ফলে) যা কিছুটা জটিল করে তোলে। আমি এই প্রতিক্রিয়াতে কিছু পরিকল্পনামূলক ছবি সরবরাহ করেছি । হার্ভে আবি পিএলএস রিগ্রেশন সম্পর্কে কিছু সাধারণ ধারণা দিয়েছেন , এবং ওয়েগলিনের জরিপ আংশিক স্বল্প স্কোয়ারস (পিএলএস) পদ্ধতিগুলিও বেশ কার্যকর। এই মুহুর্তে, আমার সম্ভবত এই সমস্ত মন্তব্য একটি উত্তরে রূপান্তর করা উচিত ...
chl

আমার উদাহরণে একটি ভেক্টর আছে প্রতিক্রিয়া এবং একটি দুই কলাম ম্যাট্রিক্স এক্স ভবিষ্যতবক্তা ও আমি সাধারণ সংস্করণ ব্যবহার ~ ওয়াই এর ওয়াই এবং সাধারণ সংস্করণ ~ এক্স এর এক্স (কেন্দ্রিক এবং স্ট্যান্ডার্ড ডেভিয়েশন দ্বারা বিভক্ত)। প্রথম পিএলএস উপাদানের আমার সংজ্ঞা টন 1 হয় T 1 = একটি ~ এক্স 1 + + ~ এক্স 2 সঙ্গে একটি এবং অর্ডার স্কালে পণ্যের একটি সর্বোচ্চ মূল্য আছে করার জন্য মনোনীত টি 1 ,YXY~YX~Xt1t1=aX~1+bX~2ab। এটা কি ভাল সংজ্ঞা না? t1,Y~
স্টাফেন লরেন্ট

দুঃখিত, @ স্টাফেন, কারণ উপরের আমার মন্তব্যগুলি আপনি কেবলমাত্র একটি উপাদানটির জন্য অনুরোধ করেছেন তা বিবেচনায় নেই (সুতরাং এখানে ডিফ্লেশন গুরুত্বপূর্ণ ভূমিকা পালন করে না)। তবে মনে হচ্ছে আপনার অপ্টিমাইজেশান ফাংশনটি ইউনিট আদর্শ ওজন ভেক্টরকে আরোপ করে না, যেমন শেষ পর্যন্ত । (বিটিডব্লিউ, আপনাকে এই ' a2+b21?coef.mvr
গুণাগুণ

উত্তর:


17

uv

maxcov(Xu,Yv).(1)
Yভার ( y ) x 2 ভার ( x 1 ) = ভার ( x 2 ) = 1 ভার ( এক্স u ) 1 ইউ
cov(Xu,y)Var(Xu)1/2×cor(Xu,y)×Var(y)1/2,st.u=1.
যেহেতু উপর নির্ভর করে না , আমরা পূর্ণবিস্তার আছে । আসুন বিবেচনা করা যাক , যেখানে ডেটা পৃথকভাবে মানক করা হয় (আমি প্রথমে পৃথকভাবে এবং পরিবর্তে আপনার লিনিয়ার সংমিশ্রণটি স্কেল করার জন্য ভুল করেছিলাম !), যাতে ; তবে এবং উপর নির্ভর করে । উপসংহারে, সুপ্ত উপাদান এবং প্রতিক্রিয়া ভেরিয়েবলের মধ্যে সর্বাধিক সম্পর্ক কার্যকরভাবে একই ফলাফল দেয় নাVar(y)Var স্বাগতম ( এক্স তোমার দর্শন লগ করা ) 1 / 2 × করি ( এক্স তোমার দর্শন লগ করা , Y ) এক্স 1uVar(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)। বিশেষ গুরুত্বের পাশাপাশি এটি হ'ল বেশিরভাগ পিএলএস রুটিনগুলি (কমপক্ষে একটিটি আমি আর এর মধ্যে জানি ass )।

বাধ্যতা দেওয়া , ভেক্টর হতে পাওয়া যায়ইউ ইউ = এক্স ওয়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]বিশেষত) আর প্যাকেজগুলি যা দেবে তার সাথে তুলনা করতে পারেন। যেমন, থেকে NIPALS ব্যবহার chemometrics প্যাকেজ (অন্য বাস্তবায়ন আমি জানি যে পাওয়া যায় mixOmics প্যাকেজ), আমরা প্রাপ্ত হবে:

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) যেহেতু সমতুল্য এর এসভিডি থেকে বাম একক ভেক্টর হিসাবে পাওয়া যাবে বৃহত্তম সাথে সম্পর্কিত:ইউ এক্স ওয়াই

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

আরও সাধারণ ক্ষেত্রে (পিএলএস 2), উপরোক্ত সংক্ষিপ্ত করার একটি উপায় বলা যায় যে প্রথম পিএলএস ক্যানোনিকাল ভেক্টরগুলি উভয় দিকের এক্স এবং ওয়াইয়ের কোভেরিয়েন্স ম্যাট্রিক্সের সর্বাধিক সন্নিকট।

তথ্যসূত্র

  1. টেনেনহাউস, এম (1999)। এল'প্রোচ পিএলএসরিভ্যু ডি স্ট্যাটিস্টিক অ্যাপ্লিকুই , 47 (2), 5-40।
  2. টের ব্রেক, সিজেএফ এবং ডি জং, এস (1993)। আংশিক সর্বনিম্ন স্কোয়ার রিগ্রেশনের উদ্দেশ্যগত কার্যকেমোমেট্রিক্স জার্নাল , 12, 41-55।
  3. আব্বি, এইচ (২০১০) আংশিক সর্বনিম্ন স্কোয়ারের রিগ্রেশন এবং প্রচ্ছন্ন কাঠামো রিগ্রেশন (পিএলএস রিগ্রেশন) -এর অভিক্ষেপউইলে আন্তঃবিষয়ক পর্যালোচনা: গণনা পরিসংখ্যান , 2, 97-106।
  4. বুলেস্টেক্স, এএল এবং স্ট্রাইমার, কে (2007)। আংশিক সর্বনিম্ন স্কোয়ারগুলি: উচ্চ-মাত্রিক জিনোমিক ডেটা বিশ্লেষণের জন্য একটি বহুমুখী সরঞ্জামবায়োইনফরম্যাটিকসে ব্রিফিংস, 8 (1), 32-44।

ধন্যবাদ চিএল আমি যখনই সম্ভব আপনার উত্তরটি পড়ব (এবং অবশ্যই উপরে উঠুন এবং চেক চিহ্নটি ক্লিক করুন!)
স্টাফেন লরেন্ট

আমি কেবল আপনার উত্তরটি পড়েছি - অভিনন্দন এবং আপনাকে অনেক ধন্যবাদ।
স্টাফেন লরেন্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.