আমি নিম্নলিখিত কোড সহ আর-তে প্যাকেজ 'লারস' ব্যবহার করছি:
> 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
ওপি যে কলটি করছে এবং তার সরবরাহিত সম্পর্কিত আউটপুটটি যদি আপনি লক্ষ্য করেন তবে দেখতে পাবেন যে তিনি আসলেই লাসো ব্যবহার করছেন। আমি নিশ্চিত যে আপনি জানেন, লারস অ্যালগরিদমের একটি সামান্য সাম্প্রতিক লাসো নিয়মিতকরণের পথ দেয়।