Thursday, March 14, 2019

এর আগের লেখায় আমরা দেখেছিলাম, কোনো সংখ্যাকে শূন্য দিয়ে ভাগ দেওয়া যায় না। দিতে গেলে আসে অদ্ভুত সব ফলাফল। ১ = ১০০ ইত্যাদি। ওখানে আমরা $\frac{০}{০}$ নিয়ে কিছু বলিনি। এবার এটা দেখা যাক!

এখানেও ০-এর কাছাকাছি সংখ্যাদেরকে নিয়ে ভাগ করে দেখি।
$$\frac{০.১}{০.১}=১$$
আবার, একই উত্তর পাব ০.০১ নিলেও। কারণ,
$$\frac{০.০১}{০.০১}=১$$
একইভাবে,
$$\frac{০.০০০১}{০.০০০১}=১$$
এবং
$$\frac{০.০০০০০১}{০.০০০০০১}=১$$
তার মানে, মনে হচ্ছে $\frac{০}{০}$ হয়ত ১-ই হবে। কারণ, ঋণাত্মক সংখ্যা নিলেও একই ফল আসবে। 
$\frac{-০.১}{-০.১}=১$, $\frac{-০.০১}{-০.০১}=১$, $\frac{-০.০০০১}{-০.০০০১}=১$ এবং $\frac{-০.০০০০০১}{-০.০০০০০১}=১$

অতএব, মনে হচ্ছে যথেষ্ট শক্তিশালী যুক্তি পাওয়া গেছে। $\frac{০}{০}=১$ ই হওয়া উচিৎ। 

কিন্তু এবার মুদ্রার উল্টো পিঠটা একটু দেখি। ০-কে ০ দিয়ে ভাগ না দিয়ে ক্রমেই ০-এর কাছাকাছি সংখ্যা দিয়ে ভাগ করি। এই কাজটা আমরা আগেও করেছি। 

$$\frac{০}{০.১}=০$$
আবার, একই উত্তর পাব ০.০১ নিলেও। কারণ, 
$$\frac{০}{০.০১}=০$$
একইভাবে,
$$\frac{০}{০.০০০১}=০$$
এবং 
$$\frac{০}{০.০০০০০১}=০$$

তার মানে, যতই ছোট সংখ্যা দিয়ে ভাগ করব, মান পাব ০-এর তত কাছাকাছি। তাহলে, আগের মতো একই যুক্তিতে বলা যায়, $\frac{০}{০}$ এর মান হবে ০। এই যুক্তি আগের যুক্তির (যেখানে ভাগফল ১ হয়েছিল) চেয়ে কোনো অংশে কম দুর্বল নয়। 

এবং আগের মতোই, ০-কে ঋণাত্মক সংখ্যা দ্বারা ভাগ করলেও একই অবস্থা হবে। তাহলে কোনটা ঠিক? ০, নাকি ১? 

ফলাফল আসলে যে-কোনো অশূন্য সংখ্যাকে শূন্য দিয়ে ভাগ করার মতোই। $\frac{০}{০}$-কে সংজ্ঞায়িত করার উপায় নেই। ফলে, (কোনোকিছু÷০) এর মতোই $\frac{০}{০}$ও অসংজ্ঞায়িত। 
তবে গণিতের আরও গভীরে প্রবেশ করলে $\frac{০}{০}$ কে অনির্ণেয় (indeterminate) বলা হয়। সেটাও আমরা দেখব ইনশাআল্লাহ।

আরও পড়ুন:
Category: articles
প্রথমে একটি মজার ফলাফল দেখি। চাতুরী খাটিয়ে দেখানো যায় ১ = ০। বা ১ = ১০০। অথবা আপনি যা চান তাই। এটা দেখানোর অনেকগুলো উপায়। অবশ্যই সবগুলো উপায় ভুল।


এর মধ্যে অন্যতম সহজ একটি উপায় এমন-

ধরি,
$$\begin{eqnarray}
x &=& 0      \nonumber \\
& \implies & x (x-1)=0 \nonumber \\
&\implies &(x-1)=0    \nonumber \\
&\implies &x=1   \nonumber
\end{eqnarray}$$
আমরা পেলাম x = 1, অথচ শুরুতে x = 0 ধরে নিয়েছিলাম।
মানে এখন ০ এবং ১ সমান। এখানে দ্বিতীয় লাইনে (x-1) এর বদলে (x-100) ধরলে 100 = 0 দেখানো যাবে। দেখানো যাবে অন্য যে-কোনো কিছুই। কিন্তু এটা আসলে ভুল।

ভুলটা হয়েছে তৃতীয় লাইনে। যেখানে আসলে আমরা উভয়পক্ষকে x দিয়ে ভাগ করেছি। কিন্তু x মানে আগেই ০ ধরে নিয়েছিলাম। আর ০ দিয়ে ভাগ দেবার নিয়ম নেই।

কিন্তু কেন? দিলে ক্ষতি কী? সেটাই আমরা দেখার চেষ্টা করব।

গণিতের গভীরে যাবার আগে প্রথমে একটু কমন সেন্স কাজে লাগাই। ভাগ দেওয়ার মানে আসলে কী? ধরুন, আপনার কাছে ২০টি আম আছে। ৫ জন বন্ধু এগুলো ভাগ করে খেতে চান। সবাইকে সমান আম দিলে সবাই $\frac{২০}{৫} = ৪$  টি করে পাবে। কিন্তু যদি বাকি ৪ বন্ধু খেতে না চায়, তাহলে একজনই ২০টি আম পেয়ে যাবে। কারণ, $\frac{২০}{১} =২০$।

এবার একটু ভাবুন: কেউই যদি খেতে না চায়, তাহলে কী হবে? ২০ টি আম ০ জন মানুষের কাছে কীভাবে বণ্টন করা যাবে? একটু ভাবুন। ভাগের ধারণাটাই কাজ করছে না।

আরেকভাবে দেখুন। ভাগ কিন্তু আবার গুণ করে মিলিয়ে নেওয়া যায়। $\frac{২০}{৫} = ৪$। এর মানে হলো, ৪-কে ৫ দিয়ে গুণ করলে ২০ পাওয়া যাবে। এবার $\frac{২০}{০}$ ভাগফলটি দেখুন। এটা সমান ধরুন 'ক' পাব। তার মানে 'ক'-কে ০ দিয়ে গুণ করলে ২০ পাওয়ার কথা। এবার একটু গভীরভাবে ভাবুন। এমন কোনো সংখ্যা আছে কি, যাকে ০ দিয়ে গুণ করলে ২০ পাব? ২০ এর বদলে অন্য যে-কোনো সংখ্যা (০ ছাড়া) নিয়ে ভাবলেও একই কথা পাওয়া যাবে।

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

যেমন ধরুন, আমরা কোনোকিছুকে শূন্য দিয়ে ভাগ দিলে যা হতে পারে সেটাকে ধরলাম 'ক'। এখন তাহলে $\frac{৯}{০}$ এর যে মান হবে, $\frac{১০০}{০}$ এর মানও তাই হবে। তাহলে তো মেনে নিতে হয় ৯ আর ১০০ সমান! এই অদ্ভুত ভাগটি করলে এমন অদ্ভুত সব ফলই আসবে। যেগুলো স্ত্যি হলে গণিতের ভিত্তিটাই ধসে পড়ে।

তবুও ধরা যাক, আমরা (কোনোকিছু ÷ ০) এর একটি মান বের করতেই চাই। তাহলে কী ঘটে দেখা যাক। সহজভাবে চিন্তা করতে আমরা ১-কে শূন্য এর কাছাকাছি বিভিন্ন সংখ্যা দিয়ে ভাগ করে দেখি।

  • ১-কে ০.১ দিয়ে ভাগ করলে পাব ১০
  • ১-কে ০.০১ দিয়ে ভাগ করলে পাব ১০০
  • ১-কে ০.০০০১ দিয়ে ভাগ করলে পাব ১০,০০০
  • ১-কে ০.০০০০০১ দিয়ে ভাগ করলে পাব ১০০,০০,০০
একটা বিষয় নিশ্চয়ই খেয়াল করেছেন। আমরা ০-এর যত কাছের সংখ্যা দিয়ে ভাগ দিচ্ছি, ভাগফল তত বেশি হচ্ছে। একই ব্যাপার ঘটবে আমরা ১-এর বদলে অন্য কোনো সংখ্যাকে ভাগ দিতে থাকলে। যেমন ১ এর বদলে ৭-কে ভাগ দিলে হত যথাক্রমে ৭০; ৭০০; ৭০,০০,০০ ও ৭০, ০০, ০০, ০০। 

তার মানে শূন্য দিয়ে ভাগ দিলে আমরা অনেক বিশাল একটি সংখ্যা পাব। যাকে অন্য অর্থে বলা চলে অসীম। এর জন্য একটি চিহ্নও আছে বটে। চিহ্নটা হলো ∞। অনেক সময় আমরা গাণিতিক কাজ করতে গিয়ে ব্যবহার করিও (সতর্কতার সাথে)। কিন্তু (কোনোকিছু ÷ ০) এর মান ∞ ধরে নিলে সমস্যা আছে। কারণ হলো এই কোনোকিছু যদি ঋণাত্মক হয়, তাহলে উত্তর আর ∞ হয় না। দেখুন না! 
  • ১-কে - ০.১ দিয়ে ভাগ করলে পাব - ১০
  • ১-কে - ০.০১ দিয়ে ভাগ করলে পাব - ১০০
  • ১-কে - ০.০০০১ দিয়ে ভাগ করলে পাব - ১০,০০০
  • ১-কে - ০.০০০০০১ দিয়ে ভাগ করলে পাব - ১০০,০০,০০

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

উপরের আলোচনা গ্রাফে বসালে এমন হয়। দেখুন x এর মান ধনাত্মক দিক থেকে ০-এর দিকে যেতে থাকলে $\frac{1}{x}$ এর মান ∞ এর দিকে যেতে থাকে। আবার ঋণাত্মক দিক থেকে ০-এর দিকে যেতে থাকলে $\frac{1}{x}$ এর মান -∞ এর দিকে যেতে থাকে।
ছবি: উইকিপিডিয়া কমন্স
এখন তাহলে (ঋণাত্মক সংখ্যা ÷ ০) এর মান আমরা ধরতে পারি ঋণাত্মক অসীম (-∞)। খেয়াল করুন, ধনাত্মক বা ঋণাত্মক, দুই ক্ষেত্রেই আমরা ভাগ দিতে দিতে ০-এর কাছাকাছি যাওয়ার চেষ্টা করেছি। কিন্তু দুই ক্ষেত্রে ফল এসেছে আলাদা। একবার পাচ্ছি ∞। আবার পাচ্ছি -∞। দুটো সংখ্যার মধ্যে সর্বোচ্চ দূরত্বের উদাহরণ এই দুটি সংখ্যা। থুক্কু! এদেরকে গণিতে সংখ্যা হিসেবে গণ্যই করা হয় না। এর আসলে শুধুই 'অনেক বড়' বা 'অনেক ছোট' ধারণাগুলো প্রকাশ করার একটি উপায় মাত্র। 

অসীম ও ঋণাত্মক অসীমকে সংখ্যারেখায় বসিয়ে দেখি-

তার মানে কী দাঁড়াল? (কোনোকিছু ÷ ০) এর কোনো ভাল উত্তর আমরা পাচ্ছি না। এ জন্যেই আগে বলেছি, এই না পাওয়ার বিষয়টি গণিতবিদদের কোনো দুর্বলতা নয়। এই ভাগফলটিই এমন। তাই গণিতবিদরা এর নাম দিয়েছেন অসংজ্ঞায়িত।

এ কারণেই কৌতুকবিদ স্টিভেন রাইট বলেছিলেন, "ব্ল্যাক হোলে ঈশ্বর শূন্য দিয়ে ভাগ দিয়েছেন ।" এটি বলার কারণ আসলে ব্ল্যাক হোলে ভেতরে পদার্থবিদ্যার সূত্রগুলো ভেঙে পড়ে। ওখানে ঠিক কী ঘটে তা সঠিক করে বলার উপায় নেই। যেভাবে বলার উপায় নেই শূন্য দিয়ে ভাগের ভাগফল।

সূত্র
১। খান অ্যাকাডেমি
২। উইকিপিডিয়া
Category: articles

Sunday, January 27, 2019

পরিসংখ্যান নিয়ে কথা বলতে গেলে এই দুজন মানুষের কথা আসবেই। দুজনেই ইংরেজ। বয়সে পিয়ারসন বড়। জন্ম ১৮৫৭ সালে। ফিশারের জন্মসাল ১৮৯০। কার্ল পিয়ারসনকে বলা হয় গাণিতিক পরিসংখ্যানের জনক। লন্ডনের ইউনিভার্সিটি কলেজে তিনিই বিশ্বের প্রথম কোনো পরিসংখ্যান বিভাগ প্রতিষ্ঠা করেন। অন্য দিকে ফিশারকে বলা হয় আধুনিক পরিসংখ্যানিক বিজ্ঞানের জনক। এছাড়াও তাকে বলা হয় বিংশ শতকের সবচেয়ে গুরুত্বপূর্ণ পরিসংখ্যানবিদ।



আরও পড়ুন
রোনাল্ড ফিশার কে ছিলেন?

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

ফিশার ছিলেন একটু রাগী। আর পিয়ারসন ছিলেন আবেগপ্রবণ ও কলহপ্রিয়। কারও জন্যেই ব্যাপারটা সুবিধার ছিল না। ১৯২৯ সালে ফিশার রয়েল সোসাইটিতে যোগ দেন। এবার তার কাজ আরও বেগবান হলো। অনেকগুলো বিষয়ে পেপার লিখতে শুরু করলেন। কিছু কিছু পেপার এত নতুন ও অসাধারণ ধারণা নিয়ে আসতে যে পেপারের রেফারিরা সেগুলো রিভিউ করতে রাজি হতেন না। কারণ আর কিছুই নয়, তারা নিজদেরকে ওই বিষয়গুলো রিভিউ করার অযোগ্য মনে করতেন।

ওদিকে পিয়ারসন তখন বায়োমেট্রিকার মতো জার্নালের সম্পাদক। তিনি আবার জার্নালটির সহ-প্রতিষ্ঠাতাও। সেই সময় এটিই ছিল পরিসংখ্যানের সেরা জার্নাল। এই ক্ষমতা ব্যবহার করে তিনি ফিশারের বিরুদ্ধে লাগলেন। ফিশারের পেপার পেলেই নাকচ। এমনকি তিনি ব্যক্তিগত আক্রমণ করে এটাও বলে বসলেন যে নিজের অদক্ষতার মাধ্যমে ফিশার নাকি পরিসংখ্যান পেশাটার সুনাম নষ্ট করছেন। সে সময় যুক্তরাজ্যের পরিসংখ্যানের জগতে পিয়ারসন সবচেয়ে বড় নাম। ফলে অন্য জায়গায়ও ফিশার প্রায় একই রকম আচরণ পেতে শুরু করলেন। রয়েল পরিসংখ্যান সোসাইটিও ফিশারের পেপার ছাপতে অস্বীকৃতি জ্ঞাপন করল। কী আর করা! ফিশার সোসাইটির পদই ছেড়ে দিলেন।

এভাবে চলল কিছু দিন। আস্তে আস্তে পিয়ারসনের প্রভাব কমে এল। আর ফিশার হয়ে উঠলেন প্রভাবশালী। ১৯৩৬ সালে পিয়ারসন মারা গেলেন। তত দিনে তার প্রভাব এতই কমে গেছে যে মানুষ তাকে প্রায় ভুলেই গিয়েছে। অথচ ফিশার তখন ক্যারিয়ারের সেরা সময় অতিক্রম করছেন।

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

তবে আরেক ইংরেজি পরিসংখ্যানবিদ উইলিয়াম গসেট দুজনের সাথেই সুসম্পর্ক রক্ষা করে চলেছিলেন। এতে করে তাঁর অনেক গবেষণার কাজ সহজ হয়েছিল। মারামারির চেয়ে যে বোঝাপড়া ভালো তারই এক উজ্জ্বল হয়ে থাকলে গসেট!

সূত্র: The Lady Tasting Tea by David Salsburg
Category: articles

Sunday, January 20, 2019

যে-কোনো গবেষণা বা স্টাডি পরিচালনা করতে গেলেই দরকার হয় ডেটা। ডেটা সংগ্রহ করতে গেলেই প্রশ্ন দাঁড়ায়, কত সাইজের স্যাম্পল নেব? লাখ টাকার প্রশ্ন। আক্ষরিক অর্থেই লাখ টাকার প্রশ্ন। কারণ আপাত দৃষ্টিতে সরল এই প্রশ্নটির জবাব আসলে অনেক জটিল। আর জটিল হিসাবটি সহজ করে দিয়ে পরিসংখ্যানবিদরা আসলেই লাখ লাখ টাকা কামান।

অনেকের কাছে মনে হতেই পারে, ইচ্ছা মতো যে-কোনো একটা সাইজের স্যাম্পল নিলেই তো হলো। এতে কী আর আসে-যায়?
অনেক কিছু আসে যায়। আপনার স্যাম্পল (sample) বা নমুনা যদি খুব ছোট হয়, তবে সেটা থেকে পাওয়া ফলাফলের ওপর ভরসা রাখা মুশকিল। কেউ কেউ বলবেন, ওকে, তাহলে ভুল এড়াতে বড়সড় একটা স্যাম্পল নিয়ে নেব। কিন্তু বুঝতে হবে বড় স্যাম্পল নিতে গেলে আপনার বিপুল পরিমাণ অর্থ, সময় ও লোকবল অপচয় হবে। অথচ হয়ত আসলে অত বড় স্যাম্পল নেবার কোনো দরকারই ছিল না। যেমন, আপনি ভাবলেন, আমার অনেক টাকা আছে। নিয়ে নিলাম দশ হাজার সাইজের একটি স্যাম্পল। অথচ এমন হওয়া অসম্ভব নয় যে দশ হাজার সাইজের স্যাম্পল নিয়ে যে ফল পাবেন, মাত্র ৪০০ সাইজের স্যাম্পলও প্রায় একই পরিমাণ নির্ভুল ফল দেবে। কেন তাহলে বোকার মতো সময় আর শিক্ত ক্ষয় করবেন?



আজকে আমরা স্যাম্পল সাইজ পরিমাপের একবারে সাধারণ একটা উদাহরণ দেখব। ধরা যাক, আমার দেখতে চাই ঢাকার আরামবাগ এলাকায় কত শতাংশ মানুষের ডায়াবেটিস রোগ আছে? আমরা ধরে নিচ্ছি এক্ষেত্রে সরল দৈব নমুনায়ন (simple random sampling) পদ্ধতি কাজ করবে। এর মানে হলো আমরা যে মানুষদেরকে তথ্য নেবার জন্য বাছাই করব, বাছাইকৃত হবার সম্ভাবনা তাদের প্রত্যেকের ক্ষেত্রে সমান। ধরুন, আরামবাগ এলাকায় ১০,০০০ মানুষ আছেন। হয়ত আমরা স্যাম্পল নেব ৪০০ সাইজের। এখন এই ৪০০ জনের মধ্যে আসার সম্ভাবনা দশ হাজার মানুষের সবার জন্য সমান। অন্য কথায়, প্রত্যেকের সম্ভাবনা $\frac{১}{১০০০০}$।

এখন আমরা কত সাইজের নমুনা নেব? এর উত্তর জানতে হলে তার আগে আরেকটি প্রশ্নের উত্তর পেতে হবে। আমরা কতটা নির্ভুল পরিমাপ চাচ্ছি। ধরা যাক, আমরা যে পরিমাপ পাব, বাস্তব হার (ডায়াবেটিসের) সেটার ৫ শতাংশ এদিক-ওদিক হলেও কিছু মনে করব না। এর মানে হলো, ধরা যাক, আমরা স্যাম্পল নিয়ে হিসাব করে পেলাম ৩৫ শতাংশ। তাহলে সত্যিকার ডায়াবেটিস রোগীর হার (P) ৩০ থেকে ৪০ শতাংশের মধ্যে থাকবে।

এখানে আরেকটা কথা বলে না রাখলেই নয়। এই যে বললাম, ৩০ থেকে ৪০ এর মধ্যে থাকবে এটা পুরোপুরি নিশ্চিত কিছু নয়। তবে স্যাম্পল বড় হলে এর চেয়ে বেশি এদিক-সেদিক হবে না বলে আশা করা যায়। সাধারণভাবে বলা চলে ৫ শতাংশ ভুল মানে হলে প্রতি ২০টা নমুনার মাত্র একটায় ফল ৩০ থেকে ৪০ এর বাইরে চলে যাবে।

স্যাম্পল সাইজের হিসাবকে আরেকটু সরল করার জন্যে আমরা আরও ধরে নিচ্ছি শতাংশের পরিমাপটা পরিমিত বিন্যাস মেনে চলে। কথাটি অপরিচিত হলে এই লেখাটায় ঢুঁ মেরে আসতে পারেন। এছাড়াও আমরা আপাতত FPC (Finite population correction) কে বিবেচনা থেকে বাদ দিচ্ছি।

যেহেতু আমরা ধরে নিলাম p পরিমিত বিন্যাস মেনে চলবে, তাহলে এই লেখা অনুসারে p সত্যিকার হারের (P) ২ পরিমিত ব্যবধানের ($\sigma$) মধ্যে থাকবে। ২ পরমিত ব্যবধানে থাকবে বলার কারণ হলো ৫ শতাংশ এদিক-সেদিক মেনে নিয়েছি বলে। মাত্র এক শতাংশেরও কম এদিক-সেদিক মেনে নিতে চাইলে পরিমিত ব্যবধান নেব ৩ পর্যন্ত। যাই হোক, আপাতত আমরা জানলাম, আমাদের পরিমাপ $P \pm 2 \sigma$ এর মধ্যে থাকবে। ২০ বার পরিমাপ করলে একবার এর বিপরীত হয়ে যেতে পারে।

আবার আমরা জানি, $\sigma _p = \sqrt{\frac{PQ}{n}}$।

এখানে $Q = 100- P$ আর $n$ হলো আমাদের কাঙ্খিত স্যাম্পল সাইজ।

এখন, আগের কথা অনুসারে $\sigma _p$ এর দ্বিগুণ সমান 5 হবে। যেহেতু আমরা 5 শতাংশ কম-বেশি হওয়া মেনে নিয়েছি।

তাহলে,  $2 \sqrt{\frac{PQ}{n}} = 5$

বা, $n = \frac{4PQ}{25}$

এবার আমরা স্যাম্পল সাইজ বের করার একটা ফর্মুলা পেয়ে গেলাম। কিন্তু একটি সমস্যা রয়ে গেছে। স্যাম্পল সাইজ বের করতে গেলেই এই সমস্যার মুখে পড়তে হয়। এখানে $n$ বের করতে গেলে $P$ জানা দরকার হচ্ছে। অথচ $P$ জানার জন্যেই $n$ নিয়ে এত কিছু। ব্যাপারটা অনেকটা এই রকম। আপনি বাসার ছাদে বসে আছেন। নামতে হলে মই লাগবে। অথচ মইটা খাড়া করা নেই। তার মানে মই খাড়া করার জন্যে আপনাকে নামতে হবে। আহা! নামতে পারলে তো আর মইয়ের দরকারই হতো না। তাহলে উপায়?

উপায় আছে। অন্য কাউকে দিয়ে যেমন মইটা দাঁড় করিয়ে নেওয়া যায়, তেমনি অন্য কোনো উপায়ে $P$ জানারও বুদ্ধি বের করতে হবে। আগের তথ্য থেকে বা অন্য কোনোভাবে আমাদেরকে $P$ সম্পর্কে একটা মোটামুটি অনুমান তৈরি করে নিতে হবে। যেমন আমরা ধরে নিতে পারি আরামবাগে ডায়াবেটিস রোগীদের হার ৩০ শতাংশ থেকে ৬০ শতাংশের বাইরে হবে না। সেক্ষেত্রে $P = 30$ বা $60$ হবে। আপনি যুক্তি দেখাতেই পারেন, $P$ যদি ৮০, ৯০ হয়ে যায় তাহলে তার দায় কে নেবে?

আসলে সেটার দায় নেওয়া কঠিন কিছু না। উপরের সূত্রে খেয়াল করুন। P এর মান ৩০ ধরলে Q হবে ৭০। গুণফল হবে ২১০০। আর এদের মান যথাক্রমে ৮০ আর ২০ হলে গুণফল দাঁড়ায় ১৬০০, যা আগের চেয়েও ছোট। তার মানে $P$ আর $Q$ এর পার্থক্য যত বেশি হবে আমাদের তত ছোট স্যাম্পল লাগবে। তার মানে সবচেয়ে বড় স্যাম্পল লাগবে যদি $P$ আর $Q$ সমান হয়। মানে দুটোই ৫০। আর সেক্ষেত্রে $PQ$ হবে 2500।

তাহলে স্যাম্পল সাইজ, $n = \frac{4 \times 2500}{25} = 400$

তার মানে এক্ষেত্রে ৪০০ সাইজের স্যাম্পল নেওয়ায় যথেষ্ট। আর সত্যিকারের $P$ যদি ৩০ হয় (৭০ হলেও একই কথা) তাহলে লাগবে ৩৩৬ সাইজের স্যাম্পল। নিরাপদ থাকতে চাইলে ৪০০ নিয়ে ফেলাই যায়।

আপাতত এই $n$ দিয়েই কাজ চালানো যায়। তবে সমগ্রক (সকল মানুষের সংখ্যা) যদি ৮,০০০ এর কম হয় তবে আগে বাদ দিয়ে রাখা FPC নিয়েও চিন্তা করা দরকার হবে। আর বাকি ক্ষেত্রে ৪০০ দিয়েই মোটামুটি ঠিকঠাক কাজ চলবে। বাকি অনুমানগুলো সঠিক না হলে কীভাবে কী করা লাগবে সেটা আমরা অন্য কোনো সময় দেখব, ইনশাআল্লাহ।

সূত্র: Sampling Techniques (3rd edition) by William G. Cochran
Category: articles

Sunday, January 6, 2019

হুম, আমরা নীচের চিত্রটিই আঁকতে চাই। এতে প্রয়োজন হবে R এর অন্যতম জনপ্রিয় প্যাকেজ ggplot2। হ্যাঁ, প্যাকেজ ছাড়াই আপনি এমন গ্রাফ আঁকতে পারেন। তবে দেখতে সেটা এতটা দৃষ্টিনন্দন নাও হতে পারে।

R প্রোগ্রামিং প্যাকেজ ggplot2 এর কারসাজি 

তাহলে প্যাকেজটি না থাকলে ইনস্টল করে নিন। library ফাংশন দিয়ে লোড করতেও ভুলবেন না কিন্তু!
install.packages("ggplot2")
library(ggplot2)

বরাবরের মতোই আগে একটি ডেটা লাগবে। বানিয়ে নেই তাহলে। 
x <- sample(10)
y <- sample(10)
z <- sample(10)

তবে এটাকে ggplot2 পরিচ্ছন্ন (tidy) ডেটা বলতে রাজি না। তাহলে ডেটাকে পরিশুদ্ধ করে নেই। পরিচ্ছন্ন ডেটা সম্পর্কে আরও জানতে এই লিঙ্কটা ঘুরে আসুন। রেফারেন্সে থাকা লিঙ্কগুলোয়ও ঢুঁ মেরে আসতে পারেন। 
যাই হোক, পরিচ্ছন্ন হবে এভাবে:
dt <- data.frame(var=rep(c("x","y","z"), each=10), val=c(x,y,z),
                 crit=1:10)

উল্লেখ্য, এটা আমি নিজের মতো করে বানিয়েছি। tidy করার ফর্মাল উপায়ের জন্যে tidy প্যাকেজে gather নামে একটা ফাংশন আছে। আপনার ইচ্ছা আপনি কীভাবে করবেন। নিয়ম মেনে করাই ভাল। যাই হোক, সামনে যাওয়া যাক। বড় কোড দেখে ঘাবড়াবেন না! কোডের শেষের তিন লাইনই অপশনাল। করলে ভালো, না করলে নাই। 

ggplot(data=dt, aes(crit, val, color=var))+
  geom_line()+geom_point(size=2)+
  xlab("Criteria")+
  ylab("Value")+
  ggtitle("My title")

আমরা পেয়ে গেলাম উপরের গ্রাফের মতো গ্রাফ। 

চাইলে কাজটি আপনি ggplot2 ব্যবহার না করেও করতেই পারেন। এর আগে আমরা টাইম সিরিজ ডেটার জন্যে এমন গ্রাফ দেখেছিও। তবে এবার দেখব যে-কোনো রকম ডেটার জন্যে। 

ধরে নিলাম আগের x, y, z চলক তিনটা স্টোর করা আছে। 

এবার আগে তিনটা কালার বানিয়ে রেখে দেই। 
col <- c("blue", "black", "green4")
এবার একে একে তিনটা চলক প্লট করা:
plot(x, col=col[1], pch=19, xlab="Some text", ylab="other text")
lines(x, col=col[1])
points(y, col=col[2], pch=15)
lines(y, col=col[2])
points(z, col=col[3], pch=18)
lines(z, col=col[3])
legend("topright", legend=c("x", "y", "z"), col=col, pch=c(19,15,18),
       ncol=3)

পাওয়া গেল গ্রাফখানি
বেইজ R দিয়ে মাল্টিপল লাইন প্লটিং। বড় করে দেখতে ক্লিক করুন এখানে
এই কোডটিকে নানানভাবে কাস্টোমাইজ করে প্লট আরও সুন্দর করে নিতে পারেন। তবে আমার মতে ggplot-ই ভালো। নিজে নিজে সব করতে গেলেই ঝামেলা বাঁধে। আমার খুব প্রিয় একটা কথা হলো:
Category: articles

Thursday, November 15, 2018

কাজটা করার অনেকগুলো উপায় আছে। সবচেয়ে ভালো উপায় হলো readxl প্যাকেজ ব্যবহার করা। তবে এমন যদি হয় যে শুধু অল্প কিছু ডেটা লাগবে, মানে অল্প কয়টি row আর কলাম, তাহলে? এক্ষেত্রে প্যাকেজ ব্যবহার করে করা বা ফাইলকে csv বানিয়ে কাজ করা বেশ সময়সাপেক্ষ। আমরা চাই ১ সেকেন্ডে করে ফেলতে।


যেমন ধরুন, আমরা এ রকম একটা এক্সেল ডেটাকে R-এ নিয়ে আসতে চাই।

এক্সেল ডেটা 

প্রথমেই আমরা R-এ সামান্য একটু কাজ করে রাখি। নীচের ফাংশনটি এক্সিকিউট করাতে হবে।

excelr <- function(header=TRUE,...) {
  read.table("clipboard",sep="\t",header=header,...)
}

এই ফাংশনটা কিন্তু বারবার রান করাতে হবে না। এক সেশনে বা Rstudio এর এক প্রোজেক্টে একবার রান করালেই হবে। আর অবশ্যই excelr এর বদলে R এর নিয়ম মেনে যে-কোনো নাম দিতে পারেন। নামটা মনে রাখলেই হবে।

এবার এক্সেলে গিয়ে নির্দিষ্ট অংশটিকে হাইলাইট করে কপি করতে হবে। রাইট ক্লিক দিয়ে copy বা ctrl + C চাপুন। এটা তাহলে কম্পিউটারের ক্লিপবোর্ডে থাকবে।

এবার R-এ এসে নীচের কোড রান করার। যতবার কপি করা দরকার হবে, শুধু এক্সেলে কপি করে এটা রান দিলেই কেল্লাফতে!

new_data <- excelr()

ব্যস! এক্সেলের ডেটাটুকু new_data নামে একটি ডেটাফ্রেইমে সেইভ হয়ে যাবে। তবে মনে রাখতে হবে, শুরুতে ফাংশনের নাম যেটা দিয়েছেন এখানেও সেটাই দিতে হবে।

চাইলে Rstudio তে View() ফাংশন কাজে লাগিয়ে দেখে নিতে পারেন কী পেলেন!

নিশ্চয়ই ভাবছেন, তাহলে উল্টো কাজটা কীভাবে হবে? R থেকে এক্সেলে কীভাবে নেব? এটাও আগেরটার মতোই সহজ কাজ। মনে করুন, আপনি my_data অংশটিকে এক্সেলে নিয়ে যেতে চান। তাহলে আগের মতোই আগে একটা ফাংশন রান করে রাখুন।

write.excel <- function(x,row.names=FALSE,col.names=TRUE,...) {  write.table(x,"clipboard",sep="\t",row.names=row.names,col.names=col.names,...)
}
এবার রান করুন
write.excel(dat)

এবার এক্সেলে গিয়ে Ctrl+V চাপুন। বা মাউসে রাইট ক্লিক করে paste অপশনে ক্লিক করুন। আবার চাইলে এটাকে সরাসরি ওয়ার্ড ফাইলেও পেস্ট করতে পারেন।

 সূত্র
১। R-Bloggers
Category: articles

Saturday, August 4, 2018

মনে করুন, এমন একটি জরিপ চালানো হলো, যেখানে মানুষের আয়, বয়স, শিক্ষাগত যোগ্যতা, লিঙ্গ, ধর্ম ইত্যাদি অনেকগুলো চলক (variable) নিয়ে তথ্য সংগ্রহ করা হল। আরও ধরা যাক, কাজটি করা হলো অনেকগুলো আলাদা আলাদা সময়ের জন্য। এভাবে পাওয়া ডেটাকেই আমরা বলব প্যানেল ডেটা। অর্থাৎ, যেখানে অনেকগুলো আলাদা আলাদা চলক সম্পর্কে আলাদা আলাদা সময়ের বিচারে তথ্য নেওয়া হবে সেটাই হবে প্যানেল ডেটা (panel data)।

প্যানেল ডেটার একটি উদাহরণ দেখুন:
\begin{array}{|c|c|c|c|c|}
\hline
person & year & income& age & gender\\ \hline
1&2001& 24000&28 &male\\ \hline
1& 2002& 24500 & 29&male\\ \hline
1&2003 & 28000&30&male\\ \hline
2&2001& 34000&35 &male\\ \hline
2& 2002& 37500 &36&male\\ \hline
2&2003 & 40000&37&male\\ \hline
3&2001& 40000&40 &male\\ \hline
3& 2002& 45500 &41&male\\ \hline
3&2003 & 50000&42&male\\ \hline
\end{array}
প্যানেল ডেটার আরেক নাম লনজিটিউডিনাল (longitudinal) ডেটা।


এবার তাহলে ক্রস-সেকশনাল (cross-sectional) ও টাইম সিরিজ (time series) ডেটা বুঝে নেওয়া যাক।

একই চলকের তথ্য যখন বিভিন্ন সময়ে নেওয়া হবে তখন সেটাই হয়ে যাবে টাইম সিরিজ ডেটা। 

টাইম সিরিজ ডেটা বা কালীন সারির একটি উদাহরণ:
\begin{array}{|c|c|}
\hline
year & income\\ \hline
2001& 24000\\ \hline
2002& 24500\\ \hline
2003& 25000\\ \hline
2004& 27000\\ \hline
2005& 28000\\ \hline
2006& 30000\\ \hline
2007& 33000\\ \hline
2008& 33400\\ \hline
2009& 35000\\ \hline
2010& 45000\\ \hline
2011& 46000\\ \hline
2012& 46800\\ \hline
2013& 50000\\ \hline
2014& 55000\\ \hline
2015& 67000\\ \hline
\end{array}
আবার একটি নির্দিষ্ট সময়ে যখন অনেকগুলো আলাদা চলকের তথ্য নেওয়া হবে, সেটা হয়ে যাবে ক্রস-সেকশনাল ডেটা। যেমন আমাদের প্রথম টেবিলে আমরা যদি প্রত্যেক person এর জন্য শুধু ২০০১ সালের ডেটা চিন্তা করি, তাহলে সেটা ক্রস-সেকশনাল ডেটা হবে। একইভাবে শুধু ২০০২ বা ২০০৩ চিন্তা করলেও একই কথা। কিন্তু একই সাথে একাধিক সময় বিবেচনায় নিলেই সেটা হয়ে যাবে প্যানেল ডেটা।

একটি সহজ বিষয়। একদম উপরের টেবিলটার কথা ভাবুন। এখান থেকে একটি কলাম আর সাথে বছর- এই দুটি চলক নিয়ে নতুন একটি ডেটাসেট তৈরি করলেই সেটা হবে টাইম সিরিজ ডেটা। তবে একাধিক ব্যক্তির জন্য চিন্তা করলে, মানে একই বছর একাধিক বার নিলে সেক্ষেত্রে দুটো আলাদা টাইম সিরিজ ডেটা হবে।

আবার ঐ টেবিলেই কলামের পরিবর্তে একটি সারি (row) নিয়ে নিলে (সাথে টেবিলের হেডার, যেখানে আছে চলকগুলোর নাম) পাওয়া যাবে ক্রস-সেকশনাল ডেটা। অনেকগুলো সারি নিলেও সমস্যা নেই, যদি না আলাদা আলাদা সময় চলে আসে।

ক্রস-সেকশনাল ডেটার উদাহরণ
\begin{array}{|c|c|c|c|c|c|c|}
\hline
person & year & income& age & gender&height (cm)&weight(kg)\\ \hline
1&2001& 24000&28 &male&172&76\\ \hline
2&2001& 34000&35 &male&171&81\\ \hline
3&2001& 40000&40 &male&165&65\\ \hline
\end{array}
ডেটার উপর ভিত্তি করেই আবার অ্যানালাইসিসির নাম হয়। যেমন প্যানেল ডেটা নিয়ে কাজ করলে বলা হয় প্যানেল অ্যানালাইসিস। টাইম সিরিজ ডেটা নিয়ে টাইম সিরিজ অ্যানালাইসি। আবার দুটোর সমন্বয় নিয়ে হতে পারে ক্রস-সেকশনাল স্টাডি। আবার উল্টোটাও হয়। স্টাডি কেমন হবে সেটার উপর নির্ভ করে সংগ্রহ করা হয় ডেটা। প্রতিটি স্টাডিরই কিছু সুবিধা-অসুবিধা আছে।

এ বিষয়ে বিস্তারিত জানতে নীচের বইগুলো সহায়ক হতে পারে:

১। Fitzmaurice, Garrett M.; Laird, Nan M.; Ware, James H. (2004). Applied Longitudinal Analysis. Hoboken: John Wiley & Sons. p. 2.
২। Epidemiology for the Uninitiated by Coggon, Rose, and Barker, Chapter 8, "Case-control and cross-sectional studies", BMJ (British Medical Journal) Publishing, 1997
৩। Baltagi, Badi H. (2008). Econometric Analysis of Panel Data (Fourth ed.). Chichester: John Wiley & Sons.
৪। Diggle, Peter J.; Heagerty, Patrick; Liang, Kung-Yee; Zeger, Scott L. (2002). Analysis of Longitudinal Data (2nd ed.). Oxford University Press. p. 2.
Category: articles

Saturday, July 28, 2018

[স্টিফেন হকিং এর লেখা ও আব্দুল্যাহ আদিল মাহমুদ অনূদিত অ্যা ব্রিফার হিস্ট্রি অব টাইম বই অবলম্বনে]  

বিজ্ঞানী হতে হলে জানতে হবে বিজ্ঞান বা বৈজ্ঞানিক তত্ত্ব কাকে বলে।


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

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

যে কোনো ভৌত তত্ত্বই (physical theory)এই অর্থে অস্থায়ী যে এটি শুধুই একটি অনুমান। একে কখোনই পুরোপুরি প্রমাণ করা যাবে না। পরীক্ষার ফলাফলের সাথে হাজারবার মিলে গেলেও আপনি কখোনই নিশ্চিত করে বলতে পারবেন না এটি পরের বার বিপরীত ফলাফল দেবে না। উল্টো দিকে একটি তত্ত্বকে ভুল বলার জন্যে এর বিপক্ষে একটি মাত্র পর্যবেক্ষণই যথেষ্ট। বিজ্ঞানের দার্শনিক কার্ল পপার যেমন জোর দিয়ে বলেছেন,
একটি ভালো তত্ত্বের বৈশিষ্ট্য হচ্ছে, এতে এমন অনেকগুলো পূর্বাভাস থাকবে যাদেরকে পর্যবেক্ষণের মাধ্যমে ভুল বা মিথ্যা প্রমাণ করার সুযোগ থাকবে। 

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

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

বিজ্ঞানের চূড়ান্ত লক্ষ্য হচ্ছে এমন একটি তত্ত্ব প্রদান করা,  যা সমগ্র মহাবিশ্বকে ব্যাখ্যা করতে পারবে। অবশ্য অধিকাংশ বিজ্ঞানীই বাস্তবে সমস্যাটিকে দুই ভাগে বিভক্ত করে কাজ করেন। প্রথমত, কিছু সূত্র আমাদেরকে বলছে যে সময়ের সাথে সাথে মহাবিশ্বের কীরূপ পরিবর্তন ঘটছে। (আমরা যদি কোনো একটি সময়ে মহাবিশ্বের অবস্থা জানি, এই ভৌত সূত্রগুলো আমাদের বলবে পরবর্তী কোনো সময়ে মহাবিশ্ব কী অবস্থায় থাকবে।) দ্বিতীয় প্রশ্নটি হল মহাবিশ্বের আদি অবস্থা নিয়ে। কেউ কেউ মনে করেন, বিজ্ঞানের উচিত শুধু প্রথম অংশটি নিয়ে কাজ করা। তাদের মতে, মহাবিশ্বের আদি অবস্থার বিষয়টি অধিবিদ্যা[২] বা ধর্মের আলোচ্য বিষয়। তাদের মতে, সর্বশক্তিমান ঈশ্বর মহাবিশ্বের সূচনা নিজের যেভাবে ইচ্ছা সেভাবেই করেছেন[৩]। তা হলেও হতেও পারে, কিন্তু সেক্ষেত্রে ঈশ্বর মহাবিশ্বকে কোনো অনির্দিষ্ট প্রক্রিয়াতেই বিবর্তিত হতে দিতেন। কিন্তু বাস্তবে দেখা যাচ্ছে তিনি একে কিছু নির্দিষ্ট নিয়মের অধীন করেছেন, যা কিছু সূত্র মেনে চলছে। কাজেই মহাবিশ্বের আদি অবস্থাও কিছু নিয়ম মেনে চলছিল মনে করাটাই যুক্তির দাবি।

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

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

বর্তমানে মহাবিশ্বের ব্যাখ্যায় বিজ্ঞানীরা দুটি মৌলিক আংশিক তত্ত্ব কাজে লাগাচ্ছেন। এরা হল জেনারেল থিওরি অব রিলেটিভিটি বা সার্বিক আপেক্ষিক তত্ত্ব ও কোয়ান্টাম মেকানিক্স। এই দুটি তত্ত্ব বিংশ শতাব্দীর প্রথমার্ধের বুদ্ধির জগতের এক বিরাট অর্জন। সার্বিক আপেক্ষিক তত্ত্ব মহাকর্ষ বল ও মহাবিশ্বের বড় দৈর্ঘ্যের কাঠামোকে (Large scale structure) ব্যাখ্যা করে। মাত্র কয়েক মাইল থেকে শুরু করে অন্তত এক হাজার কোটি কোটি কোটি (১ এর পরে ২৪ টি শুন্য) মাইল তথা পর্যবেক্ষণযোগ্য মহাবিশ্বের আকারের সমপরিমাণ অংশ এই তত্ত্বের আওতায় আছে। অন্য দিকে কোয়ান্টাম মেকানিক্স কাজ করে এক ইঞ্চির এক লক্ষ কোটি ভাগের এক ভাগের মতো অত্যন্ত ক্ষুদ্র দৈর্ঘ্যের জগতে।

পরমাণু থেকে মহাবিশ্ব। [বিংশ শতকের প্রথমার্ধ পর্যন্ত নিউটনীয় পদার্থবিদ্যার সূত্রগুলো কাজ করত শুধু দৈনন্দিন জীবনের ক্ষেত্রগুলোতে। এরপরে এসে পদার্থবিদ্যার পরিধি বিস্তৃত হয়ে পৌঁছায় মহাবিশ্বের ক্ষুদ্রতম থেকে বৃহত্তম চৌহদ্দি পর্যন্ত। ] 

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

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

অনুবাদকের নোটঃ
১। যেমন আইনস্টাইনের জেনারেল থিওরি অব রিলেটিভিটি বা সার্বিক আপেক্ষিক তত্ত্ব। ১০০ বছর আগে এর মহাকর্ষ তরঙ্গের পূর্বাভাস ২০১৬ এসে প্রমাণিত হয়। ফলে এটি ভালো তত্ত্ব হিসেবে আরো জোরালো স্বীকৃতি লাভ করে।
২। অধিবিদ্যা (Metaphysics) হল দর্শনের একটি শাখা। অন্য অনেক কিছুর মতো এরও জনক এরিস্টটল। বিশ্বের অস্তিত্ব, আমাদের অস্তিত্ব, সত্যের ধারণা, বস্তুর গুণাবলী, সময়, স্থান, সম্ভাবনা ইত্যাদি এর আলোচ্য বিষয়।
৩। অর্থ্যাৎ,তাদের মতে নির্দিষ্ট কোনো সূত্র প্রয়োগ করে মহাবিশ্ব সৃষ্টি করা হয়নি, তাই সেই আদি অবস্থার ব্যাখ্যা দেবার মত কোনো নির্দিষ্ট সূত্রের ব্যাখ্যা খোঁজা অনর্থক।
৪। মহাকর্ষ বল বস্তুদের দূরত্বের উপরও নির্ভরশীল- এটা ঠিক, কিন্তু দূরত্বতো আর বস্তুর নিজস্ব কোনো বৈশিষ্ট্য নয়।
৫। কারণ আমরাওতো মহাবিশ্বেরই একটি অংশ।
Category: articles

Thursday, July 26, 2018

একটি উদাহরণ চিন্তা করি। আমরা দেহের ওজোনের সাথে উচ্চতার সম্পর্ক দেখতে চাই। উচ্চতার উপর ওজোনের (ভর) প্রভাব কতটা সেটা জানতে চাই। ব্যাপারটার যৌক্তিকতা নিয়ে প্রশ্ন তোলা যেতেই পারে। আপাতত আমাদের উদ্দেশ্য রিগ্রেশন লাইন আঁকা বলে সে বিতর্ক তোলা থাকল।

তাহলে শুরুতেই আমরা গ্রাফের মাধ্যমে দুটো চলকের সম্পর্ক দেখব। ধরা যাক আমাদের কাছে নীচের ডেটা আছে।

আরও পড়ুন
R প্রোগ্রামিং: কীভাবে ইনস্টল ও ব্যবহার করবেন?

height = c(176, 154, 138, 196, 132, 176, 181, 169, 150, 175)
bodymass = c(82, 49, 53, 112, 47, 69, 77, 71, 62, 78) 

এবার এ দুটো নিয়ে একটি Scatter plot বা বিক্ষেপণ চিত্র আঁকা যাক।
plot(bodymass, height)

প্লটটিকে চাইলে আরেকটু স্টাইলিশ করে নেওয়া যায়। 
 plot(bodymass, height, pch=19, col="blue", xlab="Body Mass (kg)",
     ylab="Height (cm)", main="Bodymass vs Height")

এগুলোর মধ্যে কোন argument কেন ব্যবহার করা হল জানতে হেল্প সেকশন দেখতে পারেন। 
?plot

এবার আমরা কাঙ্খিত রিগ্রেশন লাইন আঁকব। আপাতত আমরা লিনিয়ার রিগ্রেশন লাইন নিয়ে কাজ করছি। 

আরও পড়ুন

এক্ষেত্রে আমরা ব্যবহার করছি abline() ফাংশন। এ ফাংশনটি দিয়ে প্লটে অনুভূমিক (horizontal) বা উলম্ব (vertical) রেখা টানা হয়। যেমন উপরের প্লটে আমরা এভাবে বিভিন্ন রেখা টেনে বিন্দুগুলোর অবস্থান বুঝতে পারি। 
abline(h=155
abline(v=87))
এখানে h ও v বোঝাচ্ছে যে যথাক্রমে x ও y অক্ষের কোন পয়েন্ট দুটিতে রেখা আঁকা হবে। তবে ফাংশনটির প্রথম দুটি আর্গুমেন্ট হলো a ও b। এগুলো হলো রেখার যথাক্রমে ইন্টারসেপ্ট ও ঢাল। lm(height ~ bodymass) কমান্ডের মাধ্যমে আমরা এই a ও b এর মানই পাব। 
abline(lm(height ~ bodymass))
ব্যস রেখা হয়ে গেল। চাইলে এটাকে কাস্টোমাইজও করতে পারেন। কালার দিতে পারেন। 

আরও পড়ুন

পুনশ্চ: 
যারা বুঝতে চান উপরের রিগ্রেশন রেখা কীভাবে এল। 

উপরের lm(height ~ bodymass) কমান্ড থেকে আমরা নীচের মডেলের মান পাব। 
$$Y=\alpha + \beta X + \epsilon$$
কমান্ডটির ফলাফল: 
Call:
lm(formula = height ~ bodymass)
Coefficients:
(Intercept)     bodymass
    98.0054       0.9528

এখানে $\alpha$ এর পরিমাপকৃত মান (a) 98.0054 আর $\beta$ এর মান (b) 0.9528। এরা হলো যথাক্রমে রিগ্রেশন লাইনের ইন্টারসেপ্ট বা x অক্ষ থেকে কর্তিত অংশ ও রেখার ঢাল। ঢাল মানে হলো x এক একক বাড়লে y কত একক বাড়ে। তার মানে আমাদের মডেলে ভর এক কেজি বাড়ালে উচ্চতা গড়ে ০.৯৫২৮ সেমি. বাড়ে। 

abline(lm(height ~ bodymass)) কমান্ডের মাধ্যমে এই দুটি মানই কাজে লেগেছে। উপরের প্লটের দিকে তাকালে খেয়াল করবেন, রেখাটিকে পেছন দিকে বাড়িয়ে দিলে বিন্দুতে গিয়ে 98.0054 বিন্দুতে গিয়ে x অক্ষকে ছেদ করবে। 
Category: articles
রিগ্রেশন অ্যানালাইসিসের বড় একটি সমস্যা হলো লিনিয়ার ও নন-লিনিয়ার রিগ্রেশন মডেল আলাদা করে চিনতে পারা। সাধারণ ডেটা অ্যানালাইসিস বা মেশিন লার্নিং অ্যালগোরিদম প্রয়োগ করা-দুই ক্ষেত্রেই লিনিয়ার ও নন-লিনিয়ার মডেল চেনা খুব জরুরি।

বিষয়টি বলার আগে রিগ্রেশন (regression) আমরা কেন করি বা কী কাজে সে সম্পর্কে একটু বলে নেই।

একটি দৈব চলককে (random variable) আরেকটি চলকের মাধ্যমে প্রেডিক্ট বা অনুমান করার জন্য আমরা রিগ্রেশন মডেল ব্যবহার করি। রিগ্রেশনের মাধ্যমে প্রতিটি স্বাধীন (independent) চলক অধীন (dependent) চলককে কতটুকু প্রভাবিত করে সেটা জানা যায়। আর অধীন চলক সম্পর্কে অনুমানও করা হয় এই তথ্য কাজে লাগিয়েই।

যেমন ধরা যাক, আমরা জানতে চাই, মানুষের মাসিক আয় বাড়লে মাসিক খরচের কী অবস্থা হয়। অর্থাৎ কতটুকু আয় বাড়লে গড়ে কতটুকু খরচ বাড়ে। এবার ধরা যাক, দুটো চলকের সম্পর্ক তুলে ধরার জন্য আমরা একটি মডেল চিন্তা করলাম। যেটা এ রকম:
$$Y=\alpha + \beta X + \epsilon$$
এখানে Y হলো অধীন চলক। মানুষের আয়। আর X হলো স্বাধীন চলক। মাসিক খরচ। আর $\epsilon$ হলো ভ্রান্তি পদ (error term)। এই পদটি থাকার কারণ হলো আমরা আয় থেকে খরচ পুরোটা অনুমান করতে পারব না। অনুমান একটু এদিক-ওদিক হবে। $\epsilon$ এই "এদিক-ওদিক" বিষয়টিই দেখে। আর $\alpha$ ও $\beta$ নিয়ে একটু পরে বলছি।

এখানে আমাদের হাতে অনেকগুলো X ও Y এর মান থাকবে। যেমন ধরুন
\begin{array}{|c|c|}
\hline
X, & Y \\ \hline
৩০০০০ & ২৫০০০\\ \hline
৫০০০০ & ৪৩০০০ \\ \hline
১০০০০০ & ৮৬০০০\\ \hline
৫৫০০০ & ৪৯০০০ \\ \hline
৭৫৯০০ & ৬৭৫৫০\\ \hline
...& ...\\ \hline
\end{array}
এবার এই টেবিলের মানগুলো ব্যবহার করে আমরা উপরের মডেলের $\alpha$ ও $\beta$র মান পাব।  এখানে $\alpha$ ও $\beta$ হলো মডেলের প্যারামিটার (parameter)। $\alpha$ মানে হল X না থাকলে Y এর মান কত হবে। যেমন আমাদের মডেলে এর মানে হলো আয় না থাকলেও কত খরচ হবে। $\alpha$ এর মান সব সময় যৌক্তিক নাও হতে পারে।যেমন ধরুন X ও Y যদি হয় যথাক্রমে তুলা ও সুতার পরিমাণ, তাহলে $\alpha$ মানে হবে সুলা ছাড়াই কতটুকু সুতা পাওয়া যাবে। এই উদাহরণে এটার বাস্তব কোনো ভিত্তি নেই। তাই এক্ষেত্রে $\alpha$কে মডেল থেকে বাদ দিতে হবে।

আর $\beta$ মানে হলো X এক একক বাড়লে Y কতটুকু বাড়বে বা কমবে। যেমন উপরের মডেলে যদি আমরা $\beta$র মান পাই ০.২৫, তাহলে এর মানে হবে আয় ১ টাকা বাড়লে গড়ে খরচ বাড়বে ২৫ পয়সা।

এবার আজকের আলোচনার মূল বিষয়।
উপরে আমরা যে মডেলটা করলাম এটাকে বলে সিম্পল লিনিয়ার বা সরল রৈখিক রিগ্রেশন (simple linear)। কিন্তু এখানে X এর উপর যে-কোনো পাওয়ার থাকতে পারত। $\beta$ ও X এর সম্পর্কের রূপ হতে পারত কিম্ভুতকিমাকার।

তাহলে কীভাবে বুঝব কোন মডেলটা লিনিয়ার বা রৈখিক (linear) আর কোনটা নন-লিনিয়ার?

এখানে আরেকটি বিষয় মাথায় রাখতে হবে। রিগ্রেশনের ক্ষেত্রে মডেলকে লিনিয়ার বা নন-লিনিয়ার বলা হয় প্যারামিটারের সাপেক্ষে। গাণিতিকভাবে দেখলে নীচের সমীকরণটি নন-লিনিয়ার।
$$Y=\alpha + \beta X^2$$
কারণ X এর পাওয়ার এক (১) নয়। কিন্তু এই সমীকরণের সাথে $\epsilon$ যোগ করে রিগ্রেশন মডেল বানালে সেটি হবে লিনিয়ার মডেল।

তাহলে কখন নন-লিনিয়ার চিনব কীভাবে? 
তার জন্য আগে লিনিয়ার মডেল চিনতে হবে। একটি মডেল লিনিয়ার হবে যদি মডেলের প্রতিটি পদ হয় ধ্রুবক হয়, অথবা একটি প্যারামিটার ও একটি স্বাধীন চলকের (X) গুণফল হয়। আর সাথে ভ্রান্তি পদ তো থাকবেই। অতএব লিনিয়ার মডেলের সাধারণ রূপ হলো এ রকম:
$$Y=\alpha + \beta _1 X_1 + \beta _2 X_2 +\beta _k X_k + \epsilon \tag{1}$$
X এর পাওয়ার কম-বেশিও হতে পারে। কিন্তু প্যারামিটারের সাথে সম্পর্ক এই সমীকরণের মতো হলেই কেবল তাকে আমরা লিনিয়ার রিগ্রেশন বলব। এখন X এর জায়গায় যদি $X^2$ বা $X^3$ থাকে তাতেও লিনিয়ারই হবে। মানে নীচের মডেলও লিনিয়ার:
$$Y=\alpha + \beta _1 X_1 + \beta _2 {X_2}^2 + \epsilon$$
অনেকে আবার বলে থাকেন প্যারামিটারের ওপর পাওয়ার একের বেশি হলে নন-লিনিয়ার হবে। যেমন:
 $Y=\alpha + {\beta _1}^2 X_1 + \beta _2 {X_2}^2 + \epsilon$
কিন্তু এটি আসলে লিনিয়ার-ই। খেয়াল করে দেখুন $\beta$ এর উপর পাওয়ার হলেও পাওয়ার করে পাওয়া মান একটি ধ্রুবক-ই হবে। সেই ধ্রুবককে আমরা $\gamma$ বলতে পারি। ফলে সমীকরণ কিন্তু সেই "$X \times$" ধ্রুবক-ই হলো। ফলে এটিও লিনিয়ার-ই।

তার মানে লিনিয়ার রিগ্রেশনেও সরল রেখার বদলে কার্ভও পাওয়া যেতে পারে। নীচের ছবিতে শরীরের চর্বি ও বিএমআই (BMI = Body Mass Index) এর জন্য মডেল দেখানো হয়েছে। মডেল করা হয়েছে লিনিয়ার রিগ্রশন দিয়েই।

এ ছবিতে BMI ও চর্বির পরিমাণের সম্পর্কের নন-লিনিয়ার (অরৈখিক) রূপ দেখে মনে হতে পারে নন-লিনিয়ার রিগ্রেশন করতে হবে। আসলে এই অরৈখিক সম্পর্কের জন্যেও লিনিয়ার রিগ্রেশন যথেষ্ট। ছবির সোর্স: MiniTab ব্লগ। 

এবার তাহলে নন-লিনিয়ার মডেল কারা?
খুব সহজ। যে মডেলে উপরের ১ নং সমীকরণের মতো আকৃতি থাকবে না তারাই নন-লিনিয়ার। মানে লিনিয়ার মডেল মূলত এক রকম হলেও নন-লিনিয়ার মডেল নানা আকৃতিতে থাকতে পারে।

নিচে এমন কিছু উদাহরণ দেওয়া হলো।
$Y=\theta _1 \times X^{\theta _2} + \epsilon\\
Y=\theta _1 + (\theta _1 -\theta _2) \times e^{\theta _3 \times {\theta _4}}  + \epsilon\\
Y=\sqrt{\beta _1 + \beta _2 X} + \epsilon\\
Y=\sqrt{\beta _1 + \beta _2 X^2} + \epsilon
$

নন-লিনিয়ার রিগ্রেশনের এমন হাজারও উপায় থাকতে পারে। 

শেষ একটি বিষয়। উপরে আমরা দেখলাম, লিনিয়ার মডেলেরও কার্ভ থাকতে পারে। তাহলে কখন আমরা নন-লিনিয়ার মডেল ব্যবহার করব? এটা নিয়ে ভবিষ্যতে বিস্তারিত লিখব ইনশাআল্লাহ। আপাতত এই লেখাটি পড়তে পারেন। 

সূত্র
১। মিনিট্যাব ব্লগ
২। Johnson, J., Econometric Methods, 3rd Edition. 
Category: articles