লিনিয়ার রিগ্রেশন ক্যালকুলেটরের কার্যপ্রণালী
লিনিয়ার রিগ্রেশন ক্যালকুলেটর হলো একটি অনলাইন টুল যা ব্যবহারকারীদের সরাসরি তাদের ওয়েব ব্রাউজারে জোড় ডেটা পয়েন্টের জন্য একটি ন্যূনতম-বর্গ রেখা (least-squares regression line) ফিট করতে সাহায্য করে। ব্যবহারকারীরা তাদের ডেটা জোড় সারি হিসেবে অথবা দুটি পৃথক তালিকা হিসেবে ইনপুট দিতে পারেন। ইনপুট দেওয়ার সাথে সাথে টুলটি রেখাটির ঢাল (slope), ইন্টারসেপ্ট (intercept), কোরিলেশন r (correlation coefficient), R² (coefficient of determination), অ্যাডজাস্টেড R², স্ট্যান্ডার্ড এরর, p-মান, কনফিডেন্স ব্যবধান, রেসিডিউয়াল এবং পূর্বাভাসসমূহ গণনা করে।
এছাড়াও, এই টুলটি ফিট করা রেখা এবং এর রেসিডিউয়ালের ভিজ্যুয়াল চার্ট তৈরি করে এবং ব্যবহৃত সূত্রগুলোর ধাপে ধাপে গাণিতিক প্রতিস্থাপন প্রদর্শন করে। এই ক্যালকুলেটরে কোনো গণনা বোতাম নেই; ব্যবহারকারী টাইপ করার সাথে সাথেই ফলাফলগুলো স্বয়ংক্রিয়ভাবে পুনরায় গণনা করা হয়।
ইনপুট ও কনফিগারেশন
ক্যালকুলেটরটি ব্যবহারের জন্য নিম্নলিখিত ইনপুট এবং সেটিংসের সুবিধা রয়েছে:
- লেআউট নির্বাচন (Layout selection): ব্যবহারকারী "জোড় সারি" (প্রতি সারিতে একটি x এবং y) অথবা "দুটি তালিকা" (x এবং y মান পৃথক ইনপুটে) এর মধ্যে যেকোনো একটি বেছে নিতে পারেন।
- ডেটা পয়েন্ট (Data points):
- জোড় সারি: x এবং y জোড়, যেখানে প্রথমে x এবং তারপর y লিখতে হয়। স্প্রেডশীট থেকে কপি করা দুটি কলাম সরাসরি এখানে পেস্ট করা যায়, যার মধ্যে হেডার সারিও অন্তর্ভুক্ত থাকতে পারে। প্রথম সারির দুটি এন্ট্রিই যদি সংখ্যা না হয়, তবে সেটিকে স্প্রেডশীটের কলাম হেডার হিসেবে গণ্য করে এড়িয়ে যাওয়া হয়।
- দুটি তালিকা: "x মানসমূহ (predictor)" এবং "y মানসমূহ (response)"-এর জন্য দুটি পৃথক তালিকা। দশমিকের সেটিংসের ওপর ভিত্তি করে মানগুলো স্পেস, কমা, সেমিকোলন বা নতুন লাইন দিয়ে আলাদা করা যায়। উভয় তালিকায় সমান সংখ্যক মান থাকতে হবে।
- সীমাবদ্ধতা: ন্যূনতম ২টি বিন্দু ইনপুট দিতে হবে। সর্বোচ্চ ৫০,০০০টি বিন্দু এবং ১ মেগাবাইট পর্যন্ত পেস্ট করা টেক্সট নিরাপদে ইনপুট দেওয়া যায়।
- x-এ y-এর পূর্বাভাস দিন: নির্দিষ্ট x স্থানাঙ্কে y-এর মান পূর্বাভাস দেওয়ার একটি ঐচ্ছিক ইনপুট। এখানে স্পেস বা কমা দিয়ে আলাদা করে সর্বোচ্চ ৫০টি মান দেওয়া যায়।
- কনফিডেন্স লেভেল: সহগ ব্যবধান, পূর্বাভাসের ব্যবধান এবং চার্ট ব্যান্ডের জন্য ৯০%, ৯৫% বা ৯৯% লেভেল নির্বাচন করা যায়।
- প্রদর্শিত দশমিক স্থান: প্রতিটি প্রাপ্ত সংখ্যার জন্য ২, ৪ বা ৬ দশমিক স্থান নির্ধারণ করা যায়।
- দশমিক বিভাজক কনভেনশন: দশমিক মানের জন্য ডট (যেমন
১২.৫) অথবা কমা (যেমন১২,৫) উভয় পদ্ধতিই সমর্থিত। ডট দশমিক লেআউটে মানগুলো স্পেস, কমা বা নতুন লাইন দিয়ে আলাদা করতে হয়। কমা দশমিক লেআউটে মানগুলো স্পেস, সেমিকোলন বা নতুন লাইন দিয়ে আলাদা করতে হয়।
"x এবং y অদলবদল করুন" অ্যাকশনটির মাধ্যমে ইনপুট করা ডেটার কলাম দুটিকে নিজেদের মধ্যে বিনিময় করা যায়। যেহেতু ন্যূনতম-বর্গ পদ্ধতি উল্লম্ব ব্যবধানকে সর্বনিম্ন করে, তাই কলাম অদলবদল করলে একটি ভিন্ন ঢাল এবং ইন্টারসেপ্ট পাওয়া যায়; কেবল কোরিলেশন r এবং R² অপরিবর্তিত থাকে।
গাণিতিক সূত্র ও গণনা পদ্ধতি
এই ক্যালকুলেটরটি NIST/SEMATECH e-Handbook of Statistical Methods (§1.3.5.x এবং §4.1.4.1) অনুসরণ করে অর্ডিনারি লিস্ট স্কয়ারস (OLS) পদ্ধতিতে গণনা সম্পন্ন করে। গণনা নির্ভুল রাখতে দুই ধাপে ক্ষতিপূরণমূলক যোগফল (compensated summation) ব্যবহার করা হয়, যাতে মানের বড় পার্থক্যের কারণে নির্ভুলতা নষ্ট না হয়।
ব্যবহৃত সূত্রসমূহ নিচে দেওয়া হলো:
- গড় এবং বিস্তার:
- গড়: x̄ = Σ xᵢ ÷ n এবং ȳ = Σ yᵢ ÷ n
- Sxx = Σ(xᵢ − x̄)²
- Syy = Σ(yᵢ − ȳ)²
- Sxy = Σ(xᵢ − x̄)(yᵢ − ȳ)
- সহগসমূহ:
- ঢাল b = Sxy ÷ Sxx
- ইন্টারসেপ্ট a = ȳ − b · x̄
- ভেদাঙ্ক এবং কোরিলেশন:
- SSE = Σ(yᵢ − ŷᵢ)²
- SST = Syy
- SSR = SST − SSE
- R² = SSR ÷ SST
- কোরিলেশন r = √(R²) (ঢালের চিহ্নের ওপর ভিত্তি করে ধনাত্মক বা ঋণাত্মক হয়, যা Sxy ÷ √(Sxx · Syy) এর সমতুল্য)
- অ্যাডজাস্টেড R² = 1 − (1 − R²)(n − 1) ÷ (n − 2)
- রেসিডিউয়াল বিস্তার s = √(SSE ÷ (n − 2))
- স্ট্যান্ডার্ড এরর এবং পরীক্ষা:
- ঢালের স্ট্যান্ডার্ড এরর: SE(b) = s ÷ √
‹Sxx› - ইন্টারসেপ্টের স্ট্যান্ডার্ড এরর: SE(a) = s · √(1÷ n + x̄² ÷ Sxx)
- t =
‹estimate›÷ এর স্ট্যান্ডার্ড এরর, যা n − 2 ডিগ্রি অব ফ্রিডমে দুই-মুখী পরীক্ষা করা হয়। p-মান হলো রেগুলারাইজড ইনকমপ্লিট বিটা I_{ u/( u+t^2)}( u/2, 1/2)। - একটি মাত্র প্রেডিক্টরের ক্ষেত্রে সামগ্রিক F-এর মান ঢালের t-এর বর্গের সমান হয়, তাই F পরীক্ষা এবং ঢালের t পরীক্ষা সর্বদা একই p-মান প্রদর্শন করে।
- ঢালের স্ট্যান্ডার্ড এরর: SE(b) = s ÷ √
- পূর্বাভাস এবং ব্যবধান:
- x₀ বিন্দুতে পূর্বাভাস: ŷ₀ = a + b · x₀
- গড় রেসপন্সের স্ট্যান্ডার্ড এরর: s · √(1÷ n + (x₀ − x̄)² ÷ Sxx)
- একটি নতুন পর্যবেক্ষণের স্ট্যান্ডার্ড এরর: s · √(1 + 1÷ n + (x₀ − x̄)² ÷ Sxx)
আউটপুট ও ফলাফল বিশ্লেষণ
ক্যালকুলেটরটি গণনার পর বেশ কয়েকটি টেবিল এবং চার্ট প্রদর্শন করে:
১. রিগ্রেশন রেখা সারসংক্ষেপ
এখানে "ন্যূনতম-বর্গ রেখা" এর সমীকরণসহ নিম্নলিখিত তথ্যগুলো থাকে:
- "গড়ে x-এর প্রতি ১ বৃদ্ধির জন্য y-এর মান
‹slope›পরিবর্তিত হয়।" - "যেখানে x হলো ০, সেখানে রেখাটি y =
‹intercept›-এ অবস্থান করে।" - কোরিলেশন r, R², অ্যাডজাস্টেড R², রেসিডিউয়াল বিস্তার s এবং বিন্দু n।
২. সহগসমূহ টেবিল
এই টেবিলে "পদ", "আনুমানিক মান", "স্ট্যান্ডার্ড এরর", "t", "p", এবং "‹level›% ব্যবধান" কলামের অধীনে "ঢাল b" এবং "ইন্টারসেপ্ট a" সারির মানগুলো দেখানো হয়।
৩. ভেদাঙ্কের বিভাজন
এই টেবিলে "উৎস", "df", "বর্গের সমষ্টি", "গড় বর্গ", "F", এবং "p" কলামের অধীনে "রেখা দ্বারা ব্যাখ্যা করা" (Regression), "অবশিষ্ট" (Residual), এবং "মোট" (Total) সারির মানগুলো থাকে।
৪. ফিট এবং রেসিডিউয়াল চার্ট
- ফিট করা রেখা: ন্যূনতম-বর্গ রেখা এবং এর গড়ের চারপাশের ব্যান্ডসহ বিন্দুগুলোর স্ক্যাটার প্লট।
- রেসিডিউয়াল: x-এর বিপরীতে প্লট করা রেসিডিউয়াল, যা শূন্য রেখার চারপাশে ছড়িয়ে রয়েছে।
- চার্টের লেজেন্ডে "বিন্দুসমূহ", "ফিট করা রেখা", "গড়ের জন্য
‹level›% ব্যান্ড", এবং "শূন্য রেখা" অন্তর্ভুক্ত থাকে।
৫. পূর্বাভাসসমূহ টেবিল
এখানে "x", "ŷ", "গড় ‹level›%", এবং "ব্যক্তিগত ‹level›%" কলাম থাকে। যদি কোনো পূর্বাভাসের x মান ইনপুট করা ডেটার সীমার বাইরে চলে যায়, তবে সেখানে "ডেটার বাইরে" লেবেলটি প্রদর্শিত হয় এবং একটি নোট দেওয়া থাকে: "চিহ্নিত সারিগুলো আপনার দেওয়া মানের বাইরের একটি x ব্যবহার করে, তাই রেখাটিকে ডেটা যা দেখায় তার চেয়েও বাড়িয়ে নেওয়া হচ্ছে।"। যদি কোনো পূর্বাভাস ইনপুট না করা হয়, তবে "উভয় ব্যবধানসহ y-এর পূর্বাভাস পেতে বামপাশে এক বা একাধিক x মান লিখুন।" বার্তাটি প্রদর্শিত হয়।
৬. বিন্দু ধরে ধরে টেবিল
ইনপুট করা প্রতিটি বিন্দুর জন্য "x", "y", "ŷ", এবং "y − ŷ" (অবশিষ্ট) এর মান এখানে তালিকাভুক্ত করা হয়।
৭. সূত্র এবং মান প্রতিস্থাপন
গণনার ধাপগুলো স্পষ্টভাবে বোঝার জন্য নিচের সূত্র প্রতিস্থাপনগুলো দেখানো হয়:
- "গড়: x̄ =
‹sumX›÷‹n›=‹meanX›এবং ȳ =‹sumY›÷‹n›=‹meanY›" - " বিস্তার এবং সহ-চলন: Sxx =
‹sxx›এবং Sxy =‹sxy›" - "ঢাল: b = Sxy ÷ Sxx =
‹sxy›÷‹sxx›=‹slope›" - "ইন্টারসেপ্ট: a = ȳ − b·x̄ =
‹meanY›− (‹slope›)·‹meanX›=‹intercept›" - "ব্যাখ্যা করা ভেদাঙ্কের অংশ: R² = SSR ÷ SST =
‹ssr›÷‹sst›=‹r2›" - "রেসিডিউয়াল বিস্তার: s = √(SSE ÷ (n − 2)) = √(
‹sse›÷‹df›) =‹s›" - "ঢালের স্ট্যান্ডার্ড এরর: SE(b) = s ÷ √Sxx =
‹s›÷ √‹sxx›=‹se›" - "t = b ÷ SE(b) =
‹slope›÷‹se›=‹t›, তাই‹df›ডিগ্রি অব ফ্রিডমে p =‹p›।"
বিশেষ পরিস্থিতি ও ত্রুটি বার্তা
ক্যালকুলেটরটি বিভিন্ন গাণিতিক সীমাবদ্ধতা এবং ইনপুট ত্রুটি সনাক্ত করতে পারে:
- দুটি বিন্দু: যদি ঠিক দুটি বিন্দু ইনপুট দেওয়া হয়, তবে রেখাটি নিখুঁতভাবে নির্ধারিত হয়। সেক্ষেত্রে বার্তা দেখায়: "দুটি বিন্দু রেখাটিকে নিখুঁতভাবে নির্ধারণ করে, তাই অনিশ্চয়তা অনুমান করার জন্য কিছুই অবশিষ্ট থাকে না।"।
- নিখুঁত ফিট: যদি সব বিন্দু রেখার ওপর থাকে, তবে কোনো রেসিডিউয়াল বিস্তার থাকে না। বার্তা দেখায়: "বিন্দুগুলো ঠিক রেখার ওপর অবস্থিত, তাই কোনো রেসিডিউয়াল বিস্তার নেই এবং কোনো ব্যবধান বা p-মান অনুমান করা যাবে না।"।
- ধ্রুবক Y মান: যদি প্রতিটি y-এর মান একই হয়, তবে রেখাটি সমতল হয়। বার্তা দেখায়: "প্রতিটি y-এর মান একই, তাই রেখাটি সমতল এবং r, R² ও তাৎপর্য পরীক্ষা অনির্ধারিত।"।
- উল্লম্ব রেখা (ধ্রুবক X মান): যদি প্রতিটি x-এর মান একই হয়, তবে রেখাটি উল্লম্ব হবে। ক্যালকুলেটরটি গণনা বন্ধ করে ত্রুটি দেখায়: "প্রতিটি x-এর মান একই, তাই রেখাটি উল্লম্ব হবে এবং ঢাল নির্ণয়ে শূন্য দিয়ে ভাগ করতে হবে।"।
অন্যান্য সাধারণ ত্রুটি বার্তা:
- কম ডেটা: "কমপক্ষে ২টি বিন্দু লিখুন; একটি বিন্দু কোনো রেখা নির্ধারণ করে না।"
- অসম্পূর্ণ জোড়: "সারি
‹position›-এ ঠিক দুটি সংখ্যা প্রয়োজন: প্রথমে x তারপর y।" - তালিকার দৈর্ঘ্যের অমিল: "এখানে
‹countX›টি x মান এবং‹countY›টি y মান রয়েছে — তালিকা দুটির দৈর্ঘ্য অবশ্যই সমান হতে হবে।" - ভুল ইনপুট: "“
‹token›” কোনো সংখ্যা নয় (সারি‹position›)।" অথবা "“‹token›” কোনো সংখ্যা নয় (মান‹position›)।" - ভুল পূর্বাভাস ইনপুট: "পূর্বাভাসে কেবল সংখ্যা গ্রহণযোগ্য; “
‹token›” কোনো সংখ্যা নয়।" - ডেটা সীমা অতিক্রম: "ডেটা
‹max›টি বিন্দুর নিচে রাখুন।" - পূর্বাভাস সীমা অতিক্রম: "একবারে সর্বোচ্চ
‹max›টি মানের পূর্বাভাস দিন।" - গাণিতিক ওভারফ্লো: "একটি মান বা মধ্যবর্তী ফলাফল সমর্থিত সংখ্যার সীমা অতিক্রম করেছে।"
গোপনীয়তা এবং প্রক্রিয়াকরণ
এই ক্যালকুলেটরে ডেটা প্রক্রিয়াকরণের বিষয়টি সম্পূর্ণ স্থানীয়ভাবে সম্পন্ন হয়। আপনার ডেটা পয়েন্ট এবং প্রতিটি পরিসংখ্যান এই ব্রাউজারেই থাকে এবং কখনোই কোনো বাহ্যিক সার্ভারে আপলোড করা হয় না।
সাধারণ জিজ্ঞাসা (FAQ)
প্রশ্ন: আমি কোন কলামটি x-এ রাখছি তা কি গুরুত্বপূর্ণ?
উত্তর: হ্যাঁ। ন্যূনতম-বর্গ পদ্ধতি উল্লম্ব ব্যবধানকে সর্বনিম্ন করে, তাই এটি y-কে ব্যাখ্যা করা বিষয় এবং x-কে ব্যাখ্যাকারী বিষয় হিসেবে বিবেচনা করে। এগুলো অদলবদল করলে আপনি একটি ভিন্ন ঢাল এবং একটি ভিন্ন ইন্টারসেপ্ট পাবেন — কেবল r এবং R² একই থাকে। আপনি যে চলকটির পূর্বাভাস দিতে চান তা y-তে রাখুন; যদি কলামগুলো ভুলভাবে প্রবেশ করানো হয়ে থাকে, তবে অদলবদল বোতামটি সেগুলোকে যথাস্থানে পুনর্লিখন করবে।
প্রশ্ন: R² আসলে আমাকে কী জানায়?
উত্তর: R² হলো y-এর ওঠানামার সেই অংশ যা রেখাটি ব্যাখ্যা করে: ০.৯৬ মানে এর ৯৬% অংশ x-এর সাথে সামঞ্জস্যপূর্ণ এবং ৪% অংশ নয়। এটি সোজা রেখাটি সঠিক আকৃতি ছিল কিনা সে সম্পর্কে কিছুই বলে না — একটি স্পষ্ট বক্ররেখাও উচ্চ স্কোর পেতে পারে — তাই রেসিডিউয়াল প্লটের পাশাপাশি এটি পড়ুন। কোরিলেশন r হলো R²-এর বর্গমূল যা ঢালের চিহ্ন বহন করে, এই কারণেই নিম্নগামী রেখার জন্য r ঋণাত্মক হয়।
প্রশ্ন: পূর্বাভাসে দুটি ব্যবধান থাকে কেন?
উত্তর: এগুলো ভিন্ন ভিন্ন প্রশ্নের উত্তর দেয়। গড় ব্যবধান জানতে চায় যে ওই x-এ সবার জন্য গড় y কোথায় অবস্থিত, তাই এখানে কেবল রেখাটির নিজস্ব অনিশ্চয়তা গণনা করা হয়। ব্যক্তিগত ব্যবধান জানতে চায় যে একটি নতুন পর্যবেক্ষণ কোথায় গিয়ে পড়বে, যা রেখার চারপাশে বিন্দুগুলোর ছড়িয়ে থাকাকেও যোগ করে — এই অতিরিক্ত পদের কারণেই এটি সর্বদা অন্যটির চেয়ে বেশি প্রশস্ত হয়। আপনার ডেটার মধ্যভাগ থেকে x যত দূরে যাবে, উভয় ব্যবধানই তত বেশি প্রশস্ত হবে।
প্রশ্ন: ছোট p-মান কি নির্দেশ করে যে x-এর কারণে y ঘটে?
উত্তর: না। p-মান কেবল একটি সংকীর্ণ প্রশ্নের উত্তর দেয়: যদি প্রকৃত ঢাল ০ হতো, তবে এই আকারের একটি নমুনা কত ঘন ঘন ০ থেকে অন্তত এত দূরে একটি ঢাল তৈরি করত? একটি ছোট মান কেবল “কোনো সম্পর্কই নেই” ব্যাখ্যাটিকে দুর্বল করে তোলে, এর বেশি কিছু নয়। কার্যকারণ সম্পর্কের জন্য গবেষণার নকশাটি সঠিক হওয়া প্রয়োজন — উভয় কলামকে প্রভাবিতকারী কোনো তৃতীয় উপাদান, অথবা স্বাধীনভাবে সংগ্রহ না করা নমুনাও খুব সহজেই ছোট p-মান তৈরি করতে পারে।