Showing posts with label Regression. Show all posts
Showing posts with label Regression. Show all posts



রিগ্রেশন এনালাইসিস এ R-squared এবং Adjusted R-squared
এর গুরুত্ব অপরিসীম। আজকে আমরা R-squared এবং Adjusted R-squared কি এবং এদের পার্থক্য কোথায় সেটা নিয়ে আলোচনা করবো। 


R-squared (R²) 
একটি মডেল এ সব গুলো ইন্ডেপেন্ডেন্ট ভ্যারিয়াবল দ্বারা ডিপেন্ডেন্ট ভ্যারিয়াবল এর কতটুকু variation প্রকাশিত হচ্ছে সেটা পরিমাপ করাই হচ্ছে  R-squared এর কাজ। এটাতে ধরে নেওয়া হয় যে  মডেল এর প্রত্যেকটি ইন্ডেপেন্ডেন্ট  ভ্যারিয়াবল ডেপেন্ডেন্ট ভ্যারিয়াবল এর variation এক্সপ্লাইন করে ।  মূলত একটা মডেল কত ভালভাবে ফিট হচ্ছে সেটা R-squared এর দ্বারা পরিমাপ করা হয়। R-squared মান যত বেশী হবে, মডেলটি তত ভালোভাবে  ফিট  হবে।
Mathematically, R² SSres + SSreg = SStot 
                       R² = Explained variation / Total Variation 





R-squared Equation
R-Squared 'coefficient of determination' নামেও পরিচিত . এটার মান 0 থেকে 1 পর্যন্ত .  
R-squared মান 1মানে হচ্ছে 
                                   ' the model explains all the variation of the target variable'. 
এবং  ০ মানে হচ্ছে  
                                  'zero predictive power of the model'. 
        
                                 Higher R-squared value, better the model.


"R-square is 0.8, it means 80% of the variation in the dependent variable is explained by the independent variables"

কিন্তু সমস্যা হল ভ্যারিয়াবল বাড়াতে থাকলে  R-squared এর মান কমে না বরং বাড়তে থাকে । এমন হতে পারে যে, একটা  মডেল এ  কিছু নতুন ভ্যারিয়াবল যুক্ত করা হল কিন্তু সে ভ্যারিয়াবল গুলো ডিপেন্ডেট ভ্যারিয়াবল এর variation এক্সপ্লাইন করে না । কিন্তু  তা সত্যেও R-squared এর মান কমে না বরং বাড়তে থাকে । এক্ষেত্রে "Higher R-squared value, better the model" কথাটি গ্রহণযোগ্যতা হারাবে ।  

Adjusted R-Squared
একটি মডেল এ শুধুমাত্র যেসব ইন্ডেপেন্ডেন্ট ভ্যারিয়াবল সত্যিকারার্থে  ডিপেন্ডেন্ট ভ্যারিয়াবল এর variation প্রকাশ করে তাদের ক্ষেত্রে কতটুকু variation প্রকাশিত সেটা পরিমাপ করাই হচ্ছে Adjusted R-squared এর কাজ।
Adjusted R-Squared Equation
 dft is the degrees of freedom n– 1 of the estimate of the population variance , and dfe is the degrees of freedom n – p – 1 of the estimate of the underlying population error variance.

উপরের Equation simplify করলে আমরা পাব -




Difference between R-square and Adjusted R-square
  1. Independent variable বাড়াতে থাকলে  R-squared এর মান কমে না বরং বাড়তে থাকে  এমন কি independent variable insignificant থাকলেও এটা কমে না. অন্যদিকে  Adjusted R-squared এর মান বাড়ে  শুধুমাত্র যদি  independent variable significant  হয় এবং dependent variable এর variation প্রকাশ করে। 
  2. R-Squared vs. Adjusted R-Squared
      adjusted r-squared is maximum when we included two variables. It declines when third variable is added. Whereas r-squared increases when we included third variable. It means third variable is insignificant to the model.
  3. R- squared কখনই negative হয় না, অন্যদিকে r-squared এর মান যখন 0 এর কাছাকাছি হয় তখন adjusted r-squared negative হয় 
  4. Adjusted r-squared value সবসময়ই r-squared value এর চেয়ে ছোট বা তার সমান হয়.



Which is better?
Adjusted R-square should be used to compare models with different numbers of independent variables. Adjusted R-square should be used while selecting important predictors (independent variables) for the regression model. 

Programming



R Script : Calculate R-Squared and Adjusted R-Squared

মনে কর, তুমার কাছে actual and predicted dependent variable এর values আছে । এখন আমরা নিচের Script এ এই values গুলোর sample বানাব - 
y = c(21, 21, 22.8, 21.4, 18.7, 18.1, 14.3, 24.4, 22.8, 19.2)
yhat = c(21.5, 21.14, 26.1, 20.2, 17.5, 19.7, 14.9, 22.5, 25.1, 18)
R.squared = 1 - sum((y-yhat)^2)/sum((y-mean(y))^2)
print(R.squared)
Final  : R-Squared = 0.6410828 
n = 10
p = 3
adj.r.squared = 1 - (1 - R.squared) * ((n - 1)/(n-p-1))
print(adj.r.squared)
In this case, adjusted r-squared value is 0.4616242 assuming we have 3 predictors and 10 observations.

Shawon Sikder
Dept. of Statistics
Bangabandhu Sheikh Mujibur Rahman Science & Technology University(BSMRSTU)



ANIRUDDHA ADHIKARY যখন কলেজে পড়তেন , তার বাসা থেকে কলেজের রাস্তার মধ্যখানে ধানমন্ডি-১৫ নম্বর। ওই জায়গাটাতে সবসময় কিভাবে যেন জ্যাম লেগে যেত।সে কয়েকদিন ধরে ব্যাপারটা দেখতে লাগল দাঁড়িয়ে, জ্যামটা লাগে কেন! তো সে কয়েকটা জ্যামের উপসর্গ বের করে ফেলল:
if not bus.angle == 90: raise JamLagbe
if left_road.rickshaw_density > 0.6: raise JamLagbe
সিটিবাস একটু কাত হয়ে থেকে যাত্রী উঠায়, তখন রাস্তায় সব লেন বন্ধ হয়ে জ্যাম লাগে। হাতের বাম দিকে থেকে রায়ের বাজারের ট্রাফিক আসে, ওইখানে রিক্সা বেশি থাকলে জ্যাম লাগে। ইত্যাদি।
এখন সে জ্যামের আগে সাধারণত কি কি ঘটনা ঘটে, বা জ্যাম ঘটানোর জন্য কি কি ঘটনা দায়ী তার একটা লিস্ট বানিয়ে ফেলল। এরপর একদিন তার বন্ধুর সাথে রিক্সায় যেতে যেতে বলল, “মামা দেখিস, এখনই জ্যাম লাগবে”। ও অবাক হয়ে দেখল আসলেই সব গাড়ি ঘোড়া দাঁড়িয়ে গেছে (কারণ একটা সিটিবাস যাত্রী তোলার জন্য ৪৫ ডিগ্রি অ্যাঙ্গেলে কাত হয়ে থেমে গেছে)! কিভাবে বলল? সে অবজার্ভ করে ডাটা থেকে ধরে নিয়েছিল
এরকম অনেক লক্ষণ দেখে বোঝা সম্ভব যে, জ্যাম লাগতে চলেছে। Statistics এর Regression analysis (computer এর ক্ষেত্রে বলে মেশিন লার্নিং ) এর অধিকাংশ সমস্যা কিন্তু এটাই – ডাটা থেকে সম্পর্ক বের করা (কিসের প্রভাবে আসলে ঘটনা ঘটছে) এবং সেই সম্পর্ক থেকে ভবিষ্যতে প্রেডিকশন করা। কিন্তু, জ্যামের লক্ষণ তো মাত্র এই কয়টা না, প্রত্যেকটা লক্ষণ বের করে আলাদা করে বারবার প্রোগ্রাম লেখা সম্ভব না। এরকম সমস্যা সমাধানের একটা উপায় হল ডিসিশন ট্রি, সাপোর্ট ভেক্টর মেশিন বা নিউরাল নেটওয়ার্ক ডিজাইন করা। প্রত্যেকটা টার্ম, অন্তত ডিসিশন ট্রি অবশ্যই গুগলে সার্চ করে দেখবেন 🙂




১৮০০ সালের দিকে Degrees of Freedom বা  স্বাধীনতার মাত্রা  সম্বন্ধে সর্বপ্রথম যিনি মৌলিক ধারণা দেন তিনি হচ্ছেন জার্মান গণিতবিদ ও জ্যোতির্বিদ কার্ল ফ্রেডরিক গাউস। এরপর ১৯০৮ সালে William Sealy Gosset তার Biometrika নামের আর্টিকেল এর "The probable error of a mean" নামের কলামে স্বাধীনতার মাত্রা (Degrees of Freedom) এর সংজ্ঞা প্রকাশ করেন । কিন্তু তিনি সেখানে সুনির্দিষ্ট ভাবে স্বাধীনতার মাত্রা (Degrees of Freedom) নামে প্রকাশ করেন নি । এরপর ১৯২২ সালে ইংরেজ পরিসংখ্যানবিদ Ronald Fisher তার Chi-square test ডেভোলপ করতে গিয়ে 'স্বাধীনতার মাত্রা' (Degrees of Freedom) শব্দটি ব্যবহার করেন । 



স্বাধীনতার মাত্রা (Degrees of Freedom) এর সংজ্ঞা এভাবে দেওয়া যায় ,

"In statistics, the number of degrees of freedom is the number of values in the final calculation of a statistic that are free to vary"


উদাহরণ দিলে ব্যাপারটা সহজে বোঝা যাবে। মনে করুন আপনি  মোট নতুন ৭ টি শার্ট উপহার পেয়েছেন । এখন আপনি চাচ্ছেন সপ্তাহে সাতদিন আপনি প্রতিদিন একটি করে নতুন শার্ট পড়বেন , মানে শনিবার এ যেটা পড়বেন সেটা অন্য কোন বারে পড়বেন নাহ । 
তাহলে শনিবার থেকে শুরু করুন , শনিবারে আপনার কাছে অপশন আছে মোট ৭ টি , রবিবারে থাকবে ৬ টি , সোমবারে ৫ টি .........। কিন্তু শুক্রবারে আপনার কাছে ১ টি ছাড়া আর কোন অপশন থাকছে না। সো আপনি মোট ৬ বার আপনার ইচ্ছে মতো নিতে পারছেন । এই ৬  হলো Degrees of Freedom বা  স্বাধীনতার মাত্রা । 
আবার ধরি, মোট ১০ টি সংখ্যা নিয়ে দেখাতে হবে যে তার যোগফল ৩০। 
এখন আমরা সংখ্যা নেয়া শুরু করলাম নিজের ইচ্ছে মত ২+৪+৩+(-২)+......... এভাবে নয়টি সংখ্যা আমরা নিজের ইচ্ছে মত নিতে পারবো কিন্তু ১০ নাম্বার সংখ্যাটি নিতে গেলে আমরা ইচ্ছে মত আর নিতে পারবো না কারণ শর্ত হচ্ছে যোগফল ৩০ হতে হবে । 
একইভাবে আমাদের যদি  n=২০  টি সংখ্যা  থাকতো তাহলে ১৯টি  ইচ্ছেমত নিতে পারতাম। কিন্তু শেষেরটি পূরণ করতে গেলে আমাদের কোন স্বাধীনতা অবশিষ্ট থাকতো না। 
অর্থাৎ আমাদের স্বাধীনতার মাত্রা এক্ষেত্রে ২০-১ =১৯
মানে n-1 হচ্ছে Degrees of Freedom

অন্যকথায় বলা যায় , 

''The number of degrees of freedom equals the number of "observations" minus the number of required relations among the observations (e.g., the number of parameter estimates). For a 1-sample t-test, one degree of freedom is spent estimating the mean, and the remaining n - 1 degrees of freedom estimate variability.''

Chi-Square Test of Independence এর জন্যে  Degrees of Freedom  (স্বাধীনতার মাত্রা):

Chi-Square Test of Independence ব্যবহার  করা হয় মূলত দুটো ক্যাটাগরিক্যাল ভেরিয়াবলস গুলা ডিপেন্ডেন্ট কিনা তা নির্ণয় করার জন্য । 

একটা ২*২ টেবিল চিন্তা করি 

এখানে আমরা ইন্ডিপেন্ডেন্টলি সর্বোচ্চ একটা মান বসাতে পারবো কারণ পরের মান গুলো টোটাল মানের উপর নির্ভর করবে । তাহলে এখানে Degrees of Freedom  (স্বাধীনতার মাত্রা) হচ্ছে ১ 

এখন যদি আমরা ৩*২ টেবিল চিন্তা করি তাহলে দেখতে পাবো 

এখানে আমরা ইন্ডিপেন্ডেন্টলি সর্বোচ্চ দুইটা মান বসাতে পারবো কারণ পরের মান গুলো টোটাল মানের উপর নির্ভর করবে।  তাহলে এখানে Degrees of Freedom  (স্বাধীনতার মাত্রা) হচ্ছে ২




এভাবে যদি আমরা বিভিন্ন  আকারের টেবিল চিন্তা করি তাহলে আমরা  একটা general pattern পাবো . একটা  table এর   r রো স  এবং c কলামস  এর জন্যে  সর্বোচ্চ  (r-1)(c-1) সংখ্যক  Degrees of Freedom  (স্বাধীনতার মাত্রা) পাবো । 

ANOVA TABLE এর  Degrees of Freedom  (স্বাধীনতার মাত্রা):


  • যদি  মোট  n সংখ্যক  ডাটা পয়েন্ট থাকে  , তাহলে  Degrees of Freedom হবে  n-1
  • যদি  m সংখ্যক  গ্রুপ  নিয়ে  তুলনা  করা  হয় , তাহলে  Degrees of Freedom হবে  m-1
  • যদি  মোট  n সংখ্যক  ডাটা পয়েন্ট  থাকে এবং  m সংখ্যক  গ্রুপ  নিয়ে  তুলনা  করা  হয় তাহলে  error এর  Degrees of Freedom হবে  (n-1)-(m-1)=n-m
                                                                                                                       



রেফারেন্স : 
  • http://blog.minitab.com/blog/statistics-and-quality-data-analysis/what-are-degrees-of-freedom-in-statistics
  • https://onlinecourses.science.psu.edu/stat414/node/218
  • wikipedia



লিখেছেন  - শাওন  শিকদার