একাধিক রিগ্রেশনে ভেরিয়েবলের সংখ্যা হ্রাস করা


9

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

এটি করার জন্য কিছু (সম্ভবত নিষ্পাপ) ধারণা:

  1. প্রতিটি ভেরিয়েবলের সাথে একটি সাধারণ লিনিয়ার রিগ্রেশন সঞ্চালন করুন এবং বৃহত্তম মান সহ দশটি চয়ন করুন । অবশ্যই, এর কোনও নিশ্চয়তা নেই যে দশটি সেরা স্বতন্ত্র ভেরিয়েবলগুলি দশের সেরা গ্রুপ হবে beR2
  2. একটি প্রধান উপাদান বিশ্লেষণ সম্পাদন করুন এবং প্রথম কয়েকটি প্রধান অক্ষের সাথে বৃহত্তম সংঘের সাথে দশটি মূল ভেরিয়েবলগুলি সন্ধান করার চেষ্টা করুন।

ভেরিয়েবলগুলি আসলে বাসা বাঁধে না বলে আমি একটি শ্রেণিবিন্যাসিক রিগ্রেশন করতে পারি বলে আমি মনে করি না। দশটি ভেরিয়েবলের সমস্ত সম্ভাব্য সংমিশ্রণ চেষ্টা করে নিরীক্ষণভাবে অপরিবর্তনীয় কারণ এখানে অনেকগুলি সংমিশ্রণ রয়েছে।

একাধিক রিগ্রেশনে ভেরিয়েবলের সংখ্যা হ্রাস করার এই সমস্যাটি মোকাবিলার জন্য কি কোনও স্ট্যান্ডার্ড পদ্ধতি রয়েছে?

দেখে মনে হচ্ছে এটি যথেষ্ট পরিমাণে সাধারণ সমস্যা হবে যে কোনও মানক পদ্ধতি থাকবে।

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

নীচে whuber এর মন্তব্য ইঙ্গিত দেয় যে শেষ অনুচ্ছেদে অনুরোধটি খুব বিস্তৃত। পরিবর্তে, আমি প্রতিটি উত্তরের সংক্ষিপ্ত বিবরণ সহ একটি ভাল উত্তর হিসাবে প্রধান পন্থাগুলির একটি তালিকা হিসাবে গ্রহণ করব। আমার শর্তাদি একবার আসার পরে আমি নিজেই প্রত্যেকের বিশদটি খনন করতে পারি।


1
মাইক, আপনি যদি এটির সাথে পরিচিত না হন তবে আপনি ESL এর 3 য় অধ্যায়টি দিয়ে ব্রাউজ করতে পারেন । লিঙ্কের পৃষ্ঠাটি পাঠ্যের একটি নিখরচায়, আইনি পিডিএফ নির্দেশ করে।
কার্ডিনাল

আপনি যদি স্পষ্ট করে বলতে পারেন যে আপনি দশটি মূল ভেরিয়েবল রাখছেন, বলুন বা মূল ভেরিয়েবলের রৈখিক সংমিশ্রণের একটি ছোট উপসেট ব্যবহার করা পদ্ধতিগুলির মধ্যে আগ্রহী (পরেরটি হ'ল traditionalতিহ্যবাহী মূল-উপাদানগুলির রিগ্রেশন জাতীয় কিছু) আপনাকে দিতে হবে)।
কার্ডিনাল

3
এই উত্তরটি পদ্ধতিটি 1 (অনেক) সমস্যার মধ্যে একটির একটি নিদর্শন উদাহরণ দেয় Frank নির্ভরশীল পরিবর্তনশীলের সাথে সম্পর্ক, অপ্রাসঙ্গিক বা আরও খারাপ হওয়ার ঝুঁকি। স্ট্যান্ডার্ড বা "ক্যানোনিকাল" উত্তরগুলি যতদূর যায়, এখানে একটি জিজ্ঞাসা করা তার উপকারিতা এবং বিপরীতে :-) সহ উপবৃত্তাকার বক্ররেখগুলিতে যৌক্তিক পয়েন্টগুলি অনুসন্ধান করার জন্য সমস্ত পদ্ধতির আলোচনা জিজ্ঞাসা করার মতো is
whuber

2
এখানে অন্যদের দ্বারা উল্লিখিত হিসাবে, পদ্ধতি 1 সমস্যাগুলির দিকে পরিচালিত করবে। কেন এটি সত্য / তার এই পদ্ধতির সাথে আরও একটি সমস্যার বিবরণ স্বজ্ঞাতভাবে অ্যাক্সেসযোগ্য চিকিত্সার জন্য আপনি এটি পড়তে চাইতে পারেন: stats.stackexchange.com/questions/20836/…
গুং -

1
প্রথম ধারণাটি দিয়ে সমস্যার ব্যাখ্যা দেওয়ার জন্য হুইল ও গংকে ধন্যবাদ।
মাইক স্পাইভে

উত্তর:


1

এই সমস্যাটিকে সাধারণত উপসেট নির্বাচন বলা হয় এবং বেশ কয়েকটি পৃথক পদ্ধতি রয়েছে। সম্পর্কিত নিবন্ধগুলির ওভারভিউয়ের জন্য গুগল স্কলারকে দেখুন ।


ধন্যবাদ. সমস্যার নাম জানা বেশ সহায়ক!
মাইক স্পিভে

6

পদ্ধতি 1 কাজ করে না। পদ্ধতি 2 আপনি কীভাবে এটি করবেন তার উপর নির্ভর করে আশা রয়েছে। বোঝানো বৈকল্পিকের উত্থানের ক্রমে মূল উপাদানগুলি প্রবেশ করা ভাল। আরও ব্যাখ্যাযোগ্য পদ্ধতির পরিবর্তনশীল ক্লাস্টারিং করা, তারপরে প্রতিটি ক্লাস্টারকে একক স্কোর (Y ব্যবহার করে না) হ্রাস করে ক্লাস্টার স্কোরগুলির সাথে একটি মডেল ফিট করুন।


+1 টি। "ভেরিয়েবল ক্লাস্টারিং" দ্বারা, আপনি কী ফ্যাক্টর এনালাইসিস বলতে চাচ্ছেন - এটি এমন একটি কৌশল যা আমি ব্যবহার করতে পারি (y এর দিকে দেখার আগেও)। আমি ক্লাস্টার বিশ্লেষণকে ভেরিয়েবলের চেয়ে গ্রুপিং পর্যবেক্ষণ হিসাবে ভাবি, তবে আমার কাছে ক্লাস্টার বিশ্লেষণের মাত্রাতিরিক্ত জ্ঞান আছে।
গুং - মনিকা পুনরায়

1
ভবিষ্যদ্বাণীকারীদের সর্বাধিক বৈকল্পিকের দিকনির্দেশগুলি অবশ্যই প্রতিক্রিয়ার সাথে উচ্চতর সম্পর্কযুক্ত বলে বিশ্বাস করার কোনও প্রাইরি কারণ রয়েছে বলে মনে হয় না । সম্ভবত আমি ভুল করে ফেলেছি বা আপনার মন্তব্যটি ভুল বুঝেছি। আপনি কি স্পষ্ট করতে পারেন?
কার্ডিনাল

1
এছাড়াও, শোনা যাচ্ছে যে ওপি তার পদ্ধতি 2-তে মূল উপাদানগুলির রিগ্রেশন বর্ণনা করছে না (যথেষ্ট)
কার্ডিনাল

আমি আমার মূল পোস্টে সম্পূর্ণ পরিষ্কার ছিলাম না, তবে আমার মূল ভেরিয়েবলগুলির একটি উপসেট দরকার । সুতরাং একটি সরাসরি প্রধান উপাদান বিশ্লেষণ বা ক্লাস্টারিং আসলে আমি যা করছি তা নয়।
মাইক স্পাইভে

1
ভেরিয়েবল ক্লাস্টারিং ফ্যাক্টর বিশ্লেষণের সাথে সম্পর্কিত তবে এটি সহজ is ভেরিয়েবলগুলি কীভাবে একে অপরের সাথে সম্পর্ক স্থাপন করে তা গোষ্ঠীভুক্ত হয়। varclusআর Hmiscপ্যাকেজে ফাংশনটি দেখুন , বা এসএএস-তে প্রোসি ভার্কেলাস। আপনি যদি কিছুটা সাবধানতা অবলম্বন করেন তবে ডেটা হ্রাস ভেরিয়েবলগুলি সাবসেটিংয়ে সহায়তা করতে পারে; আপনি যদি একটি সম্পূর্ণ ক্লাস্টার অপসারণ করতে পারেন তবে এর ভ্যালু 0.3 হয়। প্রধান উপাদানগুলির সাথে ব্যাটারি হ্রাস করার মতো কৌশল রয়েছে যেখানে আপনি পিসিগুলির মূল উপাদানগুলির ভেরিয়েবলগুলির একটি উপসেট সহ আনুমানিকভাবে আনুমানিক। P
ফ্রাঙ্ক হ্যারেল

3

আর এর সাথে ডেটা মাইনিংয়ের অধ্যায় 5 এ, লেখক সর্বাধিক দরকারী ভবিষ্যদ্বাণীকারীদের বেছে নেওয়ার কিছু উপায় দেখায়। (বায়োইনফরম্যাটিক্সের প্রসঙ্গে, যেখানে প্রতিটি নমুনা সারিটিতে 12,000+ কলাম রয়েছে!)

তিনি প্রথমে পরিসংখ্যান বিতরণের ভিত্তিতে কিছু ফিল্টার ব্যবহার করেন। উদাহরণস্বরূপ, যদি আপনার কাছে একই মত এবং এসডি সহ অর্ধ ডজন পূর্বাভাসকারী থাকে তবে আপনি কেবল সেগুলির একটি রেখেই পালিয়ে যেতে পারেন।

তারপরে কোনটি সবচেয়ে কার্যকর ভবিষ্যদ্বাণীকারী তা নির্ধারণ করার জন্য তিনি এলোমেলো বন কীভাবে ব্যবহার করবেন তা দেখায়। এখানে একটি স্ব-সংযুক্ত বিমূর্ত উদাহরণ রয়েছে। আপনি দেখতে পাচ্ছেন আমি 5 টি ভাল ভবিষ্যদ্বাণী পেয়েছি, 5 টি খারাপ আছে। কোডটি দেখায় যে কীভাবে সেরা 3 রাখা যায়।

set.seed(99)

d=data.frame(
  y=c(1:20),
  x1=log(c(1:20)),
  x2=sample(1:100,20),
  x3=c(1:20)*c(11:30),
  x4=runif(20),
  x5=-c(1:20),
  x6=rnorm(20),
  x7=c(1:20),
  x8=rnorm(20,mean=100,sd=20),
  x9=jitter(c(1:20)),
  x10=jitter(rep(3.14,20))
  )

library(randomForest)
rf=randomForest(y~.,d,importance=T)
print(importance(rf))
#         %IncMSE IncNodePurity
# x1  12.19922383    130.094641
# x2  -1.90923082      6.455262
# ...

i=importance(rf)
best3=rownames(i)[order(i[,"%IncMSE"],decreasing=T)[1:3]]
print(best3)
#[1] "x1" "x5" "x9"

reduced_dataset=d[,c(best3,'y')]

লেখকের শেষ পদ্ধতির অনুরূপ ভবিষ্যদ্বাণীকারীদের বলুন, 30 টি গ্রুপে ক্লাস্টার করতে একটি শ্রেণিবিন্যাসিক ক্লাস্টারিং অ্যালগরিদম ব্যবহার করা হচ্ছে। যদি আপনি 30 টি বিবিধ ভবিষ্যদ্বাণী চান তবে আপনি এলোমেলোভাবে 30 30 টি গ্রুপের একটি থেকে বেছে নিন।

উপরের মত একই নমুনা ডেটা ব্যবহার করে এখানে 10 টি কলামের মধ্যে 3 টি চয়ন করার জন্য এখানে কিছু কোড দেওয়া হয়েছে:

library(Hmisc)
d_without_answer=d[,names(d)!='y']
vc=varclus(as.matrix(d_without_answer))
print(cutree(vc$hclust,3))
# x1  x2  x3  x4  x5  x6  x7  x8  x9 x10 
#  1   2   1   3   1   1   1   2   1   3 

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


2

আপনি পরামিতিগুলির ভেক্টরের এক আদর্শকে ন্যূনতম সমাধান নির্বাচন করে ন্যূনতম স্কোয়ারগুলিকে নিয়মিত করে এমন লাসোর মতো একটি পদ্ধতি ব্যবহার করার বিষয়ে বিবেচনা করতে পারেন। দেখা যাচ্ছে যে প্যারামিটার ভেক্টরের ননজারো এন্ট্রিগুলির সংখ্যা হ্রাস করার অনুশীলনে এটির প্রভাব রয়েছে। যদিও কিছু স্ট্যাটিস্টিকাল সার্কেলগুলিতে লাসো জনপ্রিয়, তবে অন্যান্য অনেকগুলি সম্পর্কিত পদ্ধতি সংবেদনশীল সংবেদনশীল বিশ্বে বিবেচিত হয়েছে।


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