অধ্যায় 4 · পরিসংখ্যান: সৎভাবে ডেটা পড়া
কোরিলেশন মানেই কারণ নয়
- পৃষ্ঠা 11 / 17
- 3 মিনিট পড়া
দুটো জিনিস যখন একসাথে ওঠানামা করে, তখন তারা কোরিলেটেড। কোরিলেশন ডেটার সবচেয়ে কাজের প্যাটার্নগুলোর একটা — আর সবচেয়ে অপব্যবহৃতগুলোরও একটা, কারণ "এরা একসাথে চলে" আর "এটা ওটার কারণ" এক কথা নয়।
Pearson-এর r
Pearson কোরিলেশন সহগ, r, মাপে দুটো চলক সরলরেখার সম্পর্কের কতটা কাছে। এটা −১ থেকে +১ পর্যন্ত:
import numpy as np
rng = np.random.default_rng(1)
x = rng.uniform(0, 10, 500)
strong = 2 * x + rng.normal(0, 2, 500)
none = rng.normal(0, 5, 500)
negative = -x + rng.normal(0, 3, 500)
curved = (x - 5) ** 2 # পুরোপুরি সম্পর্কিত, কিন্তু সরলরেখায় নয়
for name, y in [("strong", strong), ("none", none), ("negative", negative), ("curved", curved)]:
print(f"{name:9} r = {np.corrcoef(x, y)[0, 1]:+.2f}")strong r = +0.94
none r = -0.03
negative r = -0.68
curved r = +0.00| r | মানে |
|---|---|
| +১-এর কাছে | একটা বাড়লে অন্যটাও বাড়ে, প্রায় সরলরেখায় |
| ০-এর কাছে | কোনো সরলরেখার সম্পর্ক নেই |
| −১-এর কাছে | একটা বাড়লে অন্যটা কমে |
curved দেখুন: y পুরোপুরি x দিয়ে নির্ধারিত, তবু r শূন্য, কারণ সম্পর্কটা U-আকৃতির, রেখা নয়। শূন্য কোরিলেশন মানে "সম্পর্কহীন" নয়। একটা সংখ্যায় ভরসা করার আগে ডেটার চার্ট আঁকুন।
লুকানো কারণ: কনফাউন্ডার
আইসক্রিমের বিক্রি আর সাঁতার কাটা মানুষের সংখ্যা জোরালোভাবে কোরিলেটেড। আইসক্রিম কি মানুষকে সাঁতার কাটায়? না — গরম আবহাওয়া দুটোকেই চালায়। যে লুকানো চলক দুটোকেই চালায়, সেটা একটা কনফাউন্ডার:
import numpy as np
rng = np.random.default_rng(3)
temperature = rng.uniform(15, 40, 1000) # প্রতিদিনের তাপমাত্রা, °C
ice_cream = 20 * temperature + rng.normal(0, 60, 1000) # গরমের সাথে বিক্রি বাড়ে
swimmers = 3 * temperature + rng.normal(0, 15, 1000) # সাঁতারও বাড়ে
print("ice cream vs swimmers:", np.corrcoef(ice_cream, swimmers)[0, 1].round(2))
hot = (temperature > 30) & (temperature < 32) # তাপমাত্রা (প্রায়) স্থির রাখা
print("on days of 30–32 °C only:", np.corrcoef(ice_cream[hot], swimmers[hot])[0, 1].round(2))ice cream vs swimmers: 0.73
on days of 30–32 °C only: -0.09সব দিন মিলিয়ে r = ০.৭৩। কিন্তু প্রায় একই তাপমাত্রার দিনগুলো শুধু তুলনা করলে কোরিলেশন উধাও। আসল যোগসূত্র শুরু থেকেই তাপমাত্রা।
AI-তে এটা কেন গুরুত্বপূর্ণ
- মডেল কোরিলেশন শেখে, কারণ নয়। যে মডেল পোস্টকোড থেকে ঋণখেলাপি অনুমান করে, সে আসলে আয় বা জাতিগোষ্ঠী নিয়ে শিখছে হতে পারে — অন্যায্য পক্ষপাতের একটা উৎস (Level 0, বিষয় ৭)।
- শর্টকাট লার্নিং: নিউমোনিয়া শনাক্তের একটা ছবি-মডেল একবার শিখে ফেলেছিল কোন হাসপাতালের স্ক্যানারে এক্স-রেটা হয়েছে, কারণ এক হাসপাতালে অসুস্থ রোগী বেশি ছিল। টেস্টে ভালো করেছিল, অন্য জায়গায় ব্যর্থ।
- কারণ প্রমাণ করতে পরীক্ষা লাগে: ব্যবহারকারীদের এলোমেলোভাবে ভাগ করুন, শুধু এক দলের জন্য একটা জিনিস বদলান (A/B টেস্ট), আর তুলনা করুন। এলোমেলো ভাগ প্রতিটা লুকানো কনফাউন্ডারের সাথে যোগসূত্র ভেঙে দেয়।
নিজে চেষ্টা করুন
- পাতা ৭-এর
hoursআরmarks-এর মধ্যে r হিসাব করুন। xশুধু ০ থেকে ১০ (৫-কে কেন্দ্র না করে) রেখেy = x ** 2বানান। এখন r কত, আরcurvedথেকে কেন আলাদা?- দৈনন্দিন জীবনে কোরিলেটেড দুটো জিনিস ভাবুন। কনফাউন্ডার কী হতে পারে?