ল্যাসো কখন সম্পর্কিত সম্পর্কযুক্ত ভবিষ্যদ্বাণী নির্বাচন করে?


13

আমি নিম্নলিখিত কোড সহ আর-তে প্যাকেজ 'লারস' ব্যবহার করছি:

> library(lars)
> set.seed(3)
> n <- 1000
> x1 <- rnorm(n)
> x2 <- x1+rnorm(n)*0.5
> x3 <- rnorm(n)
> x4 <- rnorm(n)
> x5 <- rexp(n)
> y <- 5*x1 + 4*x2 + 2*x3 + 7*x4 + rnorm(n)
> x <- cbind(x1,x2,x3,x4,x5)
> cor(cbind(y,x))
            y          x1           x2           x3          x4          x5
y  1.00000000  0.74678534  0.743536093  0.210757777  0.59218321  0.03943133
x1 0.74678534  1.00000000  0.892113559  0.015302566 -0.03040464  0.04952222
x2 0.74353609  0.89211356  1.000000000 -0.003146131 -0.02172854  0.05703270
x3 0.21075778  0.01530257 -0.003146131  1.000000000  0.05437726  0.01449142
x4 0.59218321 -0.03040464 -0.021728535  0.054377256  1.00000000 -0.02166716
x5 0.03943133  0.04952222  0.057032700  0.014491422 -0.02166716  1.00000000
> m <- lars(x,y,"step",trace=T)
Forward Stepwise sequence
Computing X'X .....
LARS Step 1 :    Variable 1     added
LARS Step 2 :    Variable 4     added
LARS Step 3 :    Variable 3     added
LARS Step 4 :    Variable 2     added
LARS Step 5 :    Variable 5     added
Computing residuals, RSS etc .....

আমি 5 ধারাবাহিক ভেরিয়েবল সহ একটি ডেটাসেট পেয়েছি এবং আমি একটি একক (নির্ভরশীল) ভেরিয়েবল y এর সাথে একটি মডেল ফিট করার চেষ্টা করছি। আমার দুজন ভবিষ্যদ্বাণী একে অপরের সাথে অত্যন্ত সংযুক্ত (x1, x2)।

আপনি উপরের উদাহরণে দেখতে পাচ্ছেন যে 'ধাপে ধাপে' বিকল্পের সাহায্যে লার্স ফাংশন প্রথমে y এর সাথে সর্বাধিক সম্পর্কযুক্ত চলকটি চয়ন করে। মডেলটি প্রবেশের পরবর্তী পরিবর্তনশীলটি হল অবশিষ্টাংশগুলির সাথে সর্বাধিক সম্পর্কযুক্ত lated আসলে এটি এক্স 4:

> round((cor(cbind(resid(lm(y~x1)),x))[1,3:6]),4)
    x2     x3     x4     x5 
0.1163 0.2997 0.9246 0.0037  

এখন, আমি যদি 'লাসো' বিকল্পটি করি:

> m <- lars(x,y,"lasso",trace=T)
LASSO sequence
Computing X'X ....
LARS Step 1 :    Variable 1     added
LARS Step 2 :    Variable 2     added
LARS Step 3 :    Variable 4     added
LARS Step 4 :    Variable 3     added
LARS Step 5 :    Variable 5     added

এটি প্রথম দুটি পদক্ষেপে মডেলটির সাথে সম্পর্কযুক্ত দুটি পরিবর্তনশীল যুক্ত করে। আমি বেশ কয়েকটি গবেষণাপত্রে যা পড়েছি তার থেকে এটি বিপরীত। তারপরে বেশিরভাগই বলে থাকেন যে যদি কোনও ভেরিয়েবলের একটি গ্রুপ থাকে যার মধ্যে পারস্পরিক সম্পর্ক খুব বেশি থাকে, তবে 'লাসো' এলোমেলোভাবে গ্রুপ থেকে কেবল একটি ভেরিয়েবল নির্বাচন করে।

কেউ কি এই আচরণের উদাহরণ দিতে পারে? বা ব্যাখ্যা করুন, কেন আমার ভেরিয়েবল x1, x2 একের পর এক মডেলটিতে যুক্ত করা হয় (একসাথে)?


এটি সর্বনিম্ন কোণ রিগ্রেশন যা লাসো পদক্ষেপগুলির ব্যাখ্যা দেয়।
মাইকেল আর চেরনিক

@ মিশেল চের্নিক: Rওপি যে কলটি করছে এবং তার সরবরাহিত সম্পর্কিত আউটপুটটি যদি আপনি লক্ষ্য করেন তবে দেখতে পাবেন যে তিনি আসলেই লাসো ব্যবহার করছেন। আমি নিশ্চিত যে আপনি জানেন, লারস অ্যালগরিদমের একটি সামান্য সাম্প্রতিক লাসো নিয়মিতকরণের পথ দেয়।
কার্ডিনাল

আমার "অনুমান "টি হ'ল, যেহেতু x2 এর সাথে x1 এর 4 ইউনিট রয়েছে, x1 এবং x2 মিলিত আসলে সবচেয়ে বৈকল্পিক (9 ইউনিট) থাকে। যদি আপনি x2 এর সহগ কম করে 2, আপনার দেখতে হবে যে x 4 x1 এবং x2 এর আগে নির্বাচিত হয়েছে।

আপনি কি "এলোমেলো" এর প্রমাণের জন্য কিছু রেফারেন্স সরবরাহ করতে পারেন? ধন্যবাদ.
ziyuang

আমি অনুমান করি আপনি এই কাগজে আপনার উত্তরটি খুঁজে পেতে পারেন: arxiv.org/pdf/1204.1605.pdf
টিপিআরো

উত্তর:


15

কোলিনারিটির সমস্যাটি ওভাররেটেড!

থমাস, আপনি একটি সাধারণ দৃষ্টিকোণটি ব্যাখ্যা করেছেন যে, ভবিষ্যদ্বাণীকারীদের যদি পারস্পরিক সম্পর্ক হয় তবে সর্বোত্তম পরিবর্তনশীল নির্বাচন কৌশলও গুচ্ছের বাইরে এলোমেলোভাবে একটি বেছে নেয়। সৌভাগ্যক্রমে, এইভাবে সত্যের উদঘাটন করার জন্য রিগ্রেশনটির ক্ষমতাকে নিম্নরূপ করা হচ্ছে! আপনি যদি সঠিক ধরণের ব্যাখ্যামূলক ভেরিয়েবলগুলি (বহির্মুখী) পেয়ে থাকেন তবে একাধিক প্রতিরোধের প্রতিশ্রুতি দেয় যে প্রতিটি ভেরিয়েবলের প্রভাব অন্যদেরকে স্থির রাখে holding এখন যদি ভেরিয়েবলগুলি নিখুঁতভাবে সম্পর্কিত হয় তবে এর চেয়ে আক্ষরিক অসম্ভব। যদি ভেরিয়েবলগুলি পারস্পরিক সম্পর্কযুক্ত হয় তবে এটি আরও শক্ত হতে পারে তবে আজ সাধারণ ডেটার সেট আকারের সাথে এটি এতটা শক্ত নয়।

প্রান্তিকতা একটি নিম্ন-তথ্য সমস্যা information ডেভ গিলসের ব্লগে আর্ট গোল্ডবার্গারের সহপাঠীর এই প্যারোডিটি দেখুন । আংশিক রিগ্রেশন সহগের পরিবর্তে কোনও অর্থ প্রয়োগ করা হলে আমরা কোলিনারিটির বিষয়ে যেভাবে কথা বলি তা নির্বোধ শোনায়।

তবুও কি বিশ্বাস হচ্ছে না? এটি কিছু কোডের জন্য সময়।

set.seed(34234)

N <- 1000
x1 <- rnorm(N)
x2 <- 2*x1 + .7 * rnorm(N)
cor(x1, x2) # correlation is .94
plot(x2 ~ x1)

আমি অত্যন্ত সংযুক্ত ভেরিয়েবলগুলি এক্স 1 এবং এক্স 2 তৈরি করেছি, তবে আপনি নীচের প্লটে দেখতে পাচ্ছেন যে যখন এক্স 1 -1 এর কাছাকাছি হয়, তখনও আমরা এক্স 2 এর পরিবর্তনশীলতা দেখতে পাই। এখানে চিত্র বর্ণনা লিখুন

এখন এটি "সত্য" যুক্ত করার সময় এসেছে:

y <- .5 * x1 - .7 * x2 + rnorm(N) # Data Generating Process

শক্তিশালী কোলাইনারিটির সমস্যার মধ্যেও কি সাধারণ প্রতিরোধ সফল হতে পারে?

summary(lm(y ~ x1 + x2))

ওহ হ্যাঁ এটা করতে পারে:

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.0005334  0.0312637  -0.017    0.986    
x1           0.6376689  0.0927472   6.875 1.09e-11 ***
x2          -0.7530805  0.0444443 -16.944  < 2e-16 ***

এখন আমি লাসো সম্পর্কে কথা বলিনি, যা আপনার প্রশ্নকে কেন্দ্র করে। তবে আমাকে এই জিজ্ঞাসা করুন। যদি পুরাতন-স্কুল রিগ্রেশন ডাব্লু / পশ্চাৎপদ নির্মূলকরণ কোলিনারিটি দ্বারা বোকা না হয় তবে আপনি কী ভাবেন যে অত্যাধুনিক লাসো করবে?


আপনার শেষ পয়েন্টে, যখন ওএলএস ঘূর্ণনশীল সমতুল্য হয়, আমি আদর্শের কারণে ল্যাসো থেকে একই সম্পত্তি আশা করবো না । লাসো অভিনব কিনা বা সম্ভবত এটি প্রাসঙ্গিক নয়। L1
স্টিভো'আমেরিকা

ধারণাটি ছিল যে ওপি'র বর্ণিত ঘটনাটি ব্যাখ্যা করার জন্য সহজ ধারণাগুলি ব্যবহার করা যেতে পারে এবং ডেটা-চালিত নিয়মিতকরণের পদটি যুক্ত করে এই ধারণাগুলি মৌলিকভাবে পরিবর্তিত হয় না।
বেন ওগোরেক

7

বেনের উত্তর আমাকে প্রদত্ত পথে আরও এক ধাপ এগিয়ে যেতে অনুপ্রাণিত করেছিল, যদি "সত্য", y অন্য পরিস্থিতিতে হয় তবে কী হবে।

আসল উদাহরণে, y দুটি অত্যন্ত নির্ভরশীল ভেরিয়েবল x1 এবং x2 এর উপর নির্ভরশীল। ধরে নিচ্ছি আরও একটি পরিবর্তনশীল আছে, এক্স 3, বলুন

x3 = সি (1: এন) / 250 # এন এর আগে সংজ্ঞায়িত করা হয়েছে, এন = 1000, এক্স 3 এক্স 1 এর সমান স্কেলে এবং এক্স 3 এর স্কেলটি নীচে রৈখিক রিগ্রেশন ফলাফলগুলিতে প্রভাব ফেলে।

"সত্য" y এখন অনুসরণ হিসাবে সংজ্ঞায়িত করা হয়েছে

y = .5 * x1 - .7 * x3 + rnorm (N) # ডেটা উত্পাদন প্রক্রিয়া

রিগ্রেশন কি হবে?

সারাংশ (এলএম (y ~ x1 + x2))

শক্তিশালী কোলাইনারিটি প্রভাব বিদ্যমান। X2 এর স্ট্যান্ডার্ড ত্রুটিটি খুব বড়। তবে, লিনিয়ার রিগ্রেশন x2 কে একটি অ-উল্লেখযোগ্য পরিবর্তনশীল হিসাবে চিহ্নিত করে।

     Coefficients:
        Estimate Std. Error t value Pr(>|t|)    
(Intercept) -1.39164    0.04172 -33.354  < 2e-16 ***
x1           0.65329    0.12550   5.205 2.35e-07 ***
x2          -0.07878    0.05848  -1.347    0.178 

ভিআইএফ (এলএম (y ~ x1 + x2))

x1       x2 
9.167429 9.167429 

আর একটি রিগ্রেশন কেসের কী হবে?

সারাংশ (এলএম (y ~ x1 + x2 + x3))

Coefficients:
        Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.02100    0.06573   0.319    0.749    
x1           0.55398    0.09880   5.607 2.67e-08 ***
x2          -0.02966    0.04604  -0.644    0.520    
x3          -0.70562    0.02845 -24.805  < 2e-16 ***

ভেরিয়েবল এক্স 2 তাত্পর্যপূর্ণ নয় এবং লিনিয়ার রিগ্রেশন দ্বারা অপসারণের প্রস্তাব দেওয়া হয়।

ভিআইএফ (এলএম (y ~ x1 + x2 + x3))

x1       x2       x3 
9.067865 9.067884 1.000105 

উপরের ফলাফলগুলি থেকে, লিনিয়ার রিগ্রেশনটিতে কোলাইনারিটি কোনও সমস্যা নয় এবং ভিআইএফ পরীক্ষা করা খুব বেশি সহায়ক নয়।

আরেকটি পরিস্থিতি দেখুন। x3 = সি (1: এন) # এন এর আগে সংজ্ঞায়িত করা হয়েছে, এন = 1000, এক্স 3 এক্স 1 এর মতো স্কেলে নেই।

"সত্য" y উপরের মত একই সংজ্ঞায়িত করা হয়

y = .5 * x1 - .7 * x3 + rnorm (N) # ডেটা উত্পাদন প্রক্রিয়া

রিগ্রেশন কি হবে?

সারাংশ (এলএম (y ~ x1 + x2))

শক্তিশালী কোলাইনারিটি প্রভাব বিদ্যমান। X1, x2 এর স্ট্যান্ডার্ড ত্রুটিগুলি খুব বড়। লিনিয়ার রিগ্রেশন গুরুত্বপূর্ণ ভেরিয়েবল x1 সনাক্ত করতে ব্যর্থ।

   Coefficients:
        Estimate Std. Error t value Pr(>|t|)    
(Intercept) -350.347      6.395 -54.783   <2e-16 ***
x1            25.207     19.237   1.310    0.190    
x2           -12.212      8.963  -1.362    0.173  

ভিআইএফ (এলএম (y ~ x1 + x2))

    x1       x2 
9.167429 9.167429 

আর একটি রিগ্রেশন কেসের কী হবে?

সারাংশ (এলএম (y ~ x1 + x2 + x3))

Coefficients:
          Estimate Std. Error   t value Pr(>|t|)    
(Intercept)  0.0360104  0.0610405     0.590    0.555    
x1           0.5742955  0.0917555     6.259 5.75e-10 ***
x2          -0.0277623  0.0427585    -0.649    0.516    
x3          -0.7000676  0.0001057 -6625.170  < 2e-16 ***

ভেরিয়েবল এক্স 2 তাত্পর্যপূর্ণ নয় এবং লিনিয়ার রিগ্রেশন দ্বারা অপসারণের প্রস্তাব দেওয়া হয়।

ভিআইএফ (এলএম (y ~ x1 + x2 + x3))

x1       x2       x3 
9.182507 9.184419 1.001853 

দ্রষ্টব্য: x1 এবং x3 এ y এর রিগ্রেশন। লক্ষ্য করুন যে x1 এর স্ট্যান্ডার্ড ত্রুটিটি কেবল 0.03।

সারাংশ (lm (y ~ x1 + x3))

Coefficients:
              Estimate Std. Error   t value Pr(>|t|)    
(Intercept) -0.1595528  0.0647908    -2.463    0.014 *  
x1           0.4871557  0.0321623    15.147   <2e-16 ***
x3          -0.6997853  0.0001121 -6240.617   <2e-16 ***

উপরের ফলাফলের ভিত্তিতে, আমার উপসংহারটি সেটাই

  • যখন ভবিষ্যদ্বাণীকারী ভেরিয়েবলগুলি একই স্কেলগুলিতে থাকে, লিনিয়ার রিগ্রেশনটিতে কোলাইনারিটি কোনও সমস্যা হয় না;
  • যখন ভবিষ্যদ্বাণীকারী ভেরিয়েবলগুলি একই স্কেলে হয় না,
    • যখন দুটি অত্যন্ত স্বীকৃত ভেরিয়েবলগুলি সত্যই মডেলটিতে থাকে তখন কোলাইনারিটি কোনও সমস্যা হয় না;
    • যখন দুটি অত্যন্ত সংযুক্ত ভেরিয়েবলের মধ্যে একটিই সত্য মডেলটিতে থাকে,
      • অন্যান্য "সত্য" ভেরিয়েবলগুলি লিনিয়ার রিগ্রেশন-এ অন্তর্ভুক্ত করা হলে লিনিয়ার রিগ্রেশন উল্লেখযোগ্য পরিবর্তনশীলগুলির সাথে সম্পর্কিত যা অ-উল্লেখযোগ্য ভেরিয়েবলগুলি সনাক্ত করবে।
      • যদি অন্যান্য "সত্য" ভেরিয়েবলগুলি লিনিয়ার রিগ্রেশনটিতে অন্তর্ভুক্ত না করা হয় তবে কোলাইনারিটির সমস্যা মারাত্মক হয়, ফলে স্ট্যান্ডার্ড ত্রুটি মুদ্রাস্ফীতি হয়।

আকর্ষণীয়, যদিও এই ফলাফলগুলি ভবিষ্যদ্বাণী / বৈশিষ্ট্যগুলি এবং y এর মধ্যে লিনিয়ার সম্পর্ক ধরে নিয়েছে। তারা বিস্তৃত থেকে অনেক দূরে। যদি আপনার ভবিষ্যদ্বাণীকারীদের মধ্যে শক্তিশালী অ-রৈখিক সম্পর্ক থাকে (উদাহরণস্বরূপ মিথস্ক্রিয়া শর্তাবলী x1 * x2, ধাপের ফাংশন বৈশিষ্ট্য / ডামি ওয়ার্স (1 যদি কিছু ধ্রুবকের জন্য x1> সি) ইত্যাদি থাকে)? আপনি যদি অ্যালগরিদমিক ট্রেডিংয়ের জন্য বৈশিষ্ট্য তৈরির মতো শব্দের অনুপাতের ডেটাতে কম সংকেত নিয়ে কাজ করেন, আপনি ওভারফিটিং হ্রাস করার জন্য সর্বদা পার্সিমোনিয়াস মডেলগুলি (কারণ আপনার সিগন্যালগুলি দুর্বল) তাই ডব্লিউ
মাল্টিকলাইনারিটি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.