আমি দেখতে কিনা যাওয়ার জন্য চেষ্টা করছি শৈলশিরা রিগ্রেশন , Lasso , প্রধান উপাদান রিগ্রেশন (পিসিআর), অথবা আংশিক লিস্ট স্কোয়ার যেখানে ভেরিয়েবল / বৈশিষ্ট্য (এর সংখ্যক আছে একটি পরিস্থিতির মধ্যে (পিএলএস) ) এবং নমুনা ছোট নম্বর ( এন < পি ), এবং আমার উদ্দেশ্যটি পূর্বাভাস।
এটি আমার বোঝার:
রিজ রিগ্রেশন রিগ্রেশন কোফিয়েনিয়েন্টগুলি সঙ্কুচিত করে, কিন্তু সমস্ত সহগকে সেগুলি ।
লাসো সহগকে সংকুচিত করে, তবে তাদের তোলেযার অর্থ এটি পরিবর্তনশীল নির্বাচনও করতে পারে।
অধ্যক্ষ উপাদান উপাদান রিগ্রেশন উপাদানগুলি কেটে দেয় যাতে এন থেকে কম হয় ; এটি পি - এন উপাদানগুলি ফেলে দেবে ।
আংশিক সর্বনিম্ন বর্গক্ষেত্রও রিগ্রেশনের জন্য ইনপুটগুলির লিনিয়ার সংমিশ্রণের একটি সেট তৈরি করে, তবে পিসিআর এর বিপরীতে এটি মাত্রা হ্রাসের জন্য ( এক্স ছাড়াও ) ব্যবহার করে। পিসিআর এবং পিএলএস রিগ্রেশন-এর মধ্যে প্রধান ব্যবহারিক পার্থক্য হ'ল একই পূর্বাভাস ত্রুটি অর্জনের জন্য পিসিআর প্রায়শই পিএলএসের চেয়ে বেশি উপাদান প্রয়োজন ( এখানে দেখুন )।
নিম্নলিখিত ডামি ডেটা বিবেচনা করুন (আমি যে আসল ডেটা নিয়ে কাজ করার চেষ্টা করছি তা একই রকম):
#random population of 200 subjects with 1000 variables
M <- matrix(rep(0,200*100),200,1000)
for (i in 1:200) {
set.seed(i)
M[i,] <- ifelse(runif(1000)<0.5,-1,1)
}
rownames(M) <- 1:200
#random yvars
set.seed(1234)
u <- rnorm(1000)
g <- as.vector(crossprod(t(M),u))
h2 <- 0.5
set.seed(234)
y <- g + rnorm(200,mean=0,sd=sqrt((1-h2)/h2*var(g)))
myd <- data.frame(y=y, M)
চারটি পদ্ধতির প্রয়োগ:
require(glmnet)
# LASSO
fit1=glmnet(M,y, family="gaussian", alpha=1)
# Ridge
fit1=glmnet(M,y, family="gaussian", alpha=0)
# PLS
require(pls)
fit3 <- plsr(y ~ ., ncomp = 198, data = myd, validation = "LOO")
# taking 198 components and using leave-one-out cross validation
summary(fit3)
plot(RMSEP(fit3), legendpos = "topright")
# PCR
fit4 <- pcr(y ~ ., ncomp = 198, data = myd, validation = "LOO")
তথ্যটির সর্বোত্তম বিবরণ হ'ল:
, বেশিরভাগ বার p > 10 এন ;
ভেরিয়েবল ( এবং ওয়াই ) একে অপরের সাথে বিভিন্ন ডিগ্রি সহ সম্পর্কযুক্ত ।
আমার প্রশ্ন এই কৌশলটির জন্য কোন কৌশলটি সেরা হতে পারে? কেন?