Opeাল সীমাবদ্ধতার সাথে লিনিয়ার রিগ্রেশন


18

আমি একটি খুব সাধারণ লিনিয়ার রিগ্রেশন সম্পাদন করতে চাই R। সূত্রটি মতো সহজ । তবে আমি চাই theাল ( ) একটি বিরতিতে থাকা উচিত, যাক, যাক, 1.4 এবং 1.6 এর মধ্যে।Y=একটিএক্স+ +একটি

কিভাবে এই কাজ করা যেতে পারে?

উত্তর:


24

আমি পারফর্ম করতে চাই ... আরে লিনিয়ার রিগ্রেশন ... আমি চাই theালটি একটি বিরতির মধ্যে থাকা উচিত, যাক, যাক, 1.4 এবং 1.6 এর মধ্যে between কিভাবে এই কাজ করা যেতে পারে?

(i) সহজ উপায়:

  • রিগ্রেশন ফিট। যদি এটি সীমানা হয়, আপনি সম্পন্ন।

  • যদি এটি সীমানায় না থাকে তবে opeালটিকে নিকটতম সীমানায় সেট করুন এবং

  • সমস্ত পর্যবেক্ষণের উপরে গড় হিসাবে বিরতি অনুমান করুন ।(Y-একটিএক্স)

(ii) আরও জটিল উপায়: slালের বাক্স সীমাবদ্ধতার সাথে কমপক্ষে স্কোয়ারগুলি করুন; অনেক অপ্টিমাইজটনের রুটিন বক্স সীমাবদ্ধতাগুলি প্রয়োগ করে, যেমন nlminb(যা আর এর সাথে আসে) তা করে।

সম্পাদনা করুন: আসলে (নীচের উদাহরণে উল্লিখিত হিসাবে), ভ্যানিলা আর-তে, nlsবাক্স সীমাবদ্ধতাগুলি করতে পারে; যেমন উদাহরণে দেখানো হয়েছে, এটি করা খুব সহজ।

আপনি সীমিত প্রতিরোধকে আরও সরাসরি ব্যবহার করতে পারেন; আমি মনে করি pclsপ্যাকেজ "এমজিসিভি" nnlsথেকে ফাংশন এবং প্যাকেজ "এনএনএলএস" উভয়ই ফাংশন করে।

-

ফলোআপ প্রশ্নের উত্তর দিতে সম্পাদনা করুন -

আমি আপনাকে এটি প্রদর্শন করতে যাচ্ছি nlminbযেহেতু এটি আর এর সাথে আসে তবে আমি বুঝতে পেরেছিলাম যে nlsসীমাবদ্ধ ন্যূনতম স্কোয়ারগুলি বাস্তবায়নের জন্য ইতিমধ্যে একই রুটিনগুলি (পোর্ট রুটিন) ব্যবহার করে, তাই আমার নীচের উদাহরণটি সেই ক্ষেত্রে কাজ করে।

নোট: নীচে আমার উদাহরণে, হ'ল ইন্টারসেপ্ট এবং হ'ল (পরিসংখ্যানগুলিতে আরও সাধারণ কনভেনশন)। আমি এটি এখানে রাখার পরে আমি বুঝতে পেরেছিলাম যে আপনি অন্য পথে শুরু করেছিলেন; যদিও আপনার প্রশ্নের তুলনায় আমি 'পশ্চাদপদ' উদাহরণটি রেখে যাচ্ছি।একটি

প্রথমে ব্যাপ্তির ভিতরে 'সত্য' opeালু সহ কিছু ডেটা সেট আপ করুন:

 set.seed(seed=439812L)
 x=runif(35,10,30)
 y = 5.8 + 1.53*x + rnorm(35,s=5)  # population slope is in range
 plot(x,y)
 lm(y~x)

Call:
lm(formula = y ~ x)

Coefficients:
(Intercept)            x  
     12.681        1.217  

... তবে এলএস অনুমানটি এর বাইরে খুব ভাল, কেবল এলোমেলো পরিবর্তনের কারণে ঘটে। সুতরাং এগুলিতে সীমাবদ্ধ প্রতিরোধটি ব্যবহার করতে দিন nls:

 nls(y~a+b*x,algorithm="port",
   start=c(a=0,b=1.5),lower=c(a=-Inf,b=1.4),upper=c(a=Inf,b=1.6))

Nonlinear regression model
  model: y ~ a + b * x
   data: parent.frame()
    a     b 
9.019 1.400 
 residual sum-of-squares: 706.2

Algorithm "port", convergence message: both X-convergence and relative convergence (5)

যেমন আপনি দেখতে পাচ্ছেন, আপনি ঠিক সীমানায় একটি opeাল পাবেন। যদি আপনি summaryএটিতে লাগানো মডেলটি পাস করেন তবে এটি স্ট্যান্ডার্ড ত্রুটি এবং টি-মানও তৈরি করতে পারে তবে এগুলি কতটা অর্থবহ / ব্যাখ্যাযোগ্য তা আমি নিশ্চিত নই।

তাহলে আমার পরামর্শ (1) কীভাবে তুলনা করে? (অর্থাত্ নির্ধারণ করুন এবং বিরতি অনুমান করার জন্য গড় গড়ে )Y-এক্স

 b=1.4
 c(a=mean(y-x*b),b=b)
       a        b 
9.019376 1.400000

এটি একই অনুমান ...

নীচের প্লটটিতে নীল রেখাটি সর্বনিম্ন স্কোয়ার এবং লাল রেখাটি সীমাবদ্ধ ন্যূনতম স্কোয়ারগুলি:

সীমাবদ্ধ এবং এলএস লাইন


এই উত্তরের জন্য আপনাকে ধন্যবাদ কিন্তু ... আপনি এই ফাংশনগুলির ব্যবহার করে একটি উদাহরণ দিতে পারেন?
আইজিগো হার্নেজ কোরেস

1
+1 পরামিতি অনুমানের উপর আত্মবিশ্বাসের ব্যবধানগুলি খুঁজে পাওয়া যে কোনও ইভেন্টে চ্যালেঞ্জ হতে চলেছে।
হোবার

@ আইজিগো হার্নেজ কোরিস আমার উত্তরের আপডেট দেখতে পাচ্ছে, যেখানে আমি nlsএটি করার মাধ্যমে চিত্রিত করেছি।
গ্লেন_বি -রিনস্টেট মনিকা

এটি করার দুটি উপায়ের সাথে সংযোগগুলি সহ +1 দুর্দান্ত উত্তর!
হাইতাও ডু

15

গ্লেন_ বি এর দ্বিতীয় পদ্ধতি, একটি বাক্স সীমাবদ্ধতার সাথে কমপক্ষে স্কোয়ার ব্যবহার করে রিজ রিগ্রেশন মাধ্যমে আরও সহজেই প্রয়োগ করা যেতে পারে। রিজ রিগ্রেশনের সমাধানটিকে ওয়েট ভেক্টরের আদর্শের (এবং তার slাল) এর আদর্শের প্রস্থের উপর আবদ্ধ একটি রিগ্রেশনটির জন্য লাগাগঞ্জিয়ান হিসাবে দেখা যেতে পারে। সুতরাং নীচে whuber এর পরামর্শ অনুসরণ করে, পদ্ধতির (1.6 + 1.4) / 2 = 1.5 এর একটি ধারাটি বিয়োগ করা হবে এবং তারপরে রিজ রিগ্রেশন প্রয়োগ করা হবে এবং ধীরে ধীরে রিজ প্যারামিটারটি বাড়ানো হবে যতক্ষণ না opeালের পরিধি 0.1 এর চেয়ে কম বা সমান হয়।

এই পদ্ধতির সুবিধাটি হ'ল কোনও অভিনব অপ্টিমাইজেশন সরঞ্জামের প্রয়োজন হয় না, কেবল রিজ রিগ্রেশনন, যা ইতিমধ্যে আরে উপলব্ধ রয়েছে (এবং অন্যান্য অনেকগুলি প্যাকেজ)।

তবে গ্লেন_ বি এর সহজ সমাধান (i) আমার কাছে বোধগম্য মনে হচ্ছে (+1)


5
এটি চালাক, তবে আপনি কি নিশ্চিত যে এটি বর্ণিত হিসাবে কাজ করবে? আমার কাছে মনে হয় উপযুক্ত পন্থাটি হ'ল (1.6 + 1.4) / 2 = 1.5 এর একটি প্রবণতা সরিয়ে ফেলা হবে এবং তারপরে রিজ প্যারামিটারটি নিয়ন্ত্রণ করবে যতক্ষণ না opeালের পরিপূর্ণ মান 0.1 এর চেয়ে কম বা সমান হয়।
হোবার

1
হ্যাঁ, এটি আসলেই আরও ভাল পরামর্শ tion রিজ রিগ্রেশন অ্যাপ্রোচ সত্যিই আরও উপযুক্ত তবে যদি সীমাবদ্ধতার !ালের পরিধি থাকে তবে এটি একটি দুর্দান্ত বিজোড় সমস্যা বলে মনে হচ্ছে! আমার উত্তরটি প্রাথমিকভাবে বক্স প্রতিবন্ধকতা সম্পর্কে গ্লেন_ বিয়ের মন্তব্য দ্বারা অনুপ্রাণিত হয়েছিল, রিজ রিগ্রেশন মূলত বাক্স সীমাবদ্ধতাগুলি বাস্তবায়নের এক সহজ উপায়।
ডিকরান মার্সুপিয়াল

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

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

10

একটি

একটি

এই ফলাফলটি এখনও আগ্রহের প্যারামিটারগুলির বিশ্বাসযোগ্য ব্যবস্থাগুলি দেবে (অবশ্যই এই অন্তরগুলির সার্থকতা slাল সম্পর্কে আপনার পূর্ববর্তী তথ্যের যুক্তিসঙ্গততার ভিত্তিতে হবে)।


+1, এটি আমার প্রথম চিন্তাও ছিল। আমি অন্যান্য পরামর্শগুলি পছন্দ করি তবে এটি আমার কাছে সেরা বলে মনে হয়।
গুং - মনিকা পুনরায়

0

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

http://zoonek.free.fr/blosxom/R/2012-06-01_Optimization.html

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