Covariance, Correlation ও Distribution: feature-রা কীভাবে সম্পর্কিত

correlation ≠ causation (Series 04, Episode 05)

🟡 INTERMEDIATE Series 04 — Math, Statistics ও Probability Episode 05 / 07

📑 এই পর্বে যা যা আছে

🍦 ১. গল্প: আইসক্রিম বিক্রি বাড়লে ডুবে মৃত্যু বাড়ে?

Arif (একজন ML Engineer) Rahim-কে একটা মজার data দেখাল: গরমকালে আইসক্রিম বিক্রি বাড়ে, আবার একই সময়ে পানিতে ডুবে মৃত্যুও বাড়ে। data-তে দুটো প্রায় নিখুঁতভাবে একসাথে ওঠানামা করছে।

Arif জিজ্ঞেস করল: "তাহলে কি আমরা বলব — আইসক্রিম বিক্রি বন্ধ করলে মানুষ কম ডুববে?"

Rahim হাসল: "না না, দুটোই তো গরমের কারণে বাড়ছে! গরমে মানুষ বেশি আইসক্রিম খায়, আবার বেশি সাঁতার কাটে বলে ডুবেও বেশি।"

Arif: "একদম ঠিক। এই দুটো correlated — একসাথে চলে। কিন্তু একটা আরেকটার cause না। এই একটা ভুল — 'correlation মানেই causation' — junior-রা করে বসে, আর model থেকে ভয়ংকর ভুল সিদ্ধান্ত বেরিয়ে আসে। আজকে এটাই শিখব।"

এই পর্বে আমরা দেখব feature-রা কীভাবে একে অপরের সাথে সম্পর্কিত, কীভাবে সেটা মাপি, আর কোথায় সাবধান থাকি।

🎯 ২. আসল সমস্যা: দুটো জিনিস একসাথে চলে কি?

S04E04-এ আমরা একটা feature-কে বর্ণনা করা শিখেছি (mean, std)। কিন্তু ML-এ আসল প্রশ্ন প্রায়ই দুটো feature নিয়ে: "experience বাড়লে salary কি বাড়ে?", "বাড়ির আয়তন বাড়লে দাম কি বাড়ে?" — মানে দুটো variable একসাথে কীভাবে চলে। এটা মাপার হাতিয়ার covariance ও correlation।

🔗 ৩. Covariance — একসাথে ওঠানামা

Covariance বলে — দুটো variable একই দিকে চলে না উল্টো দিকে। একটা বাড়লে অন্যটাও বাড়লে covariance ধনাত্মক; একটা বাড়লে অন্যটা কমলে ঋণাত্মক; কোনো সম্পর্ক না থাকলে প্রায় শূন্য।

Covariance-এর সমস্যা: এর মান নির্ভর করে একক-এর উপর (টাকা vs বছর)। ফলে "৫০০০" মানে সম্পর্ক শক্ত না দুর্বল বোঝা যায় না। এই সমস্যা সমাধান করে correlation — covariance-কে দুই variable-এর std দিয়ে ভাগ করে একটা তুলনাযোগ্য সংখ্যায় (-1 থেকে +1) আনা হয়।

🤝 ৪. Level 1 — correlation মানে "হাত ধরাধরি"

Correlation-কে ভাবুন দুই বন্ধুর হাত ধরাধরি করে হাঁটা হিসেবে:

+1 (নিখুঁত positive): একজন সামনে গেলে অন্যজনও ঠিক সমানভাবে সামনে যায়। যেমন আয়তন ↑ হলে দাম ↑।

0 (সম্পর্কহীন): একজন যা করে অন্যজনের তার সাথে কোনো সম্পর্ক নেই। যেমন জুতোর সাইজ ও IQ।

-1 (নিখুঁত negative): একজন সামনে গেলে অন্যজন ঠিক সমানভাবে পেছনে যায়। যেমন গাড়ির গতি ↑ হলে গন্তব্যে পৌঁছানোর সময় ↓।

⚙️ ৫. Level 2 — correlation coefficient (-1 থেকে +1)

সবচেয়ে প্রচলিত হলো Pearson correlation coefficient (সাধারণত r)। এটা সবসময় -1 থেকে +1-এর মধ্যে থাকে:

r-এর মানমানে
+0.7 থেকে +1.0শক্তিশালী positive সম্পর্ক
+0.3 থেকে +0.7মাঝারি positive
-0.3 থেকে +0.3দুর্বল / নেই বললেই চলে
-0.7 থেকে -1.0শক্তিশালী negative সম্পর্ক
জরুরি সীমাবদ্ধতা: Pearson শুধু linear (সরলরৈখিক) সম্পর্ক মাপে। দুটো variable-এর মধ্যে শক্ত কিন্তু বাঁকা (non-linear) সম্পর্ক থাকলেও r প্রায় ০ দেখাতে পারে। তাই সংখ্যার পাশাপাশি scatter plot দেখা জরুরি।

⚠️ ৬. correlation ≠ causation (সবচেয়ে গুরুত্বপূর্ণ)

এই একটা লাইন গোটা career জুড়ে মনে রাখবেন: দুটো জিনিস একসাথে চলা মানে একটা আরেকটার কারণ নয়। আইসক্রিম-ডোবা গল্পটাই উদাহরণ — আসল কারণ (গরম) লুকানো ছিল, একে বলে confounding variable

তিনটা সম্ভাবনা যখন A ও B correlated:
১. A → B ঘটায় (সত্যিকারের causation)।
২. B → A ঘটায় (উল্টো দিক)।
৩. তৃতীয় কিছু C দুটোকেই ঘটায় (confounder — আইসক্রিমের গরম)।

শুধু correlation দেখে বলা যায় না কোনটা সত্য। Causation প্রমাণে দরকার নিয়ন্ত্রিত experiment (যেমন A/B test)।

👷 ৭. Level 3 — ML-এ feature selection ও multicollinearity

একজন AI Engineer correlation দুই কাজে ব্যবহার করে:

সতর্কতা: correlation কম মানেই feature অকেজো নয় — non-linear model (Random Forest, XGBoost) বাঁকা সম্পর্কও ধরতে পারে যা Pearson মিস করে। তাই correlation একটা ইঙ্গিত, চূড়ান্ত রায় নয়।

🔔 ৮. Distribution ও feature সম্পর্ক

S04E04-এর distribution এখানে আবার কাজে আসে। দুটো feature-এর যৌথ আচরণ (joint distribution) বোঝা মানে শুধু correlation সংখ্যা নয়, তাদের scatter plot-এর আকৃতিও দেখা। অনেক সময় একটা outlier গুচ্ছ পুরো correlation-কে বিভ্রান্ত করে — যেমন কয়েকটা বিলাসবহুল বাড়ি পুরো "আয়তন vs দাম" সম্পর্ককে ঘুরিয়ে দিতে পারে। তাই সংখ্যা + ছবি, দুটোই দেখতে হয়।

📊 ৯. Visual: বিভিন্ন correlation

r ≈ +1 r ≈ 0 r ≈ -1 y| . y| . . . y|. | . | . . . | . | . | . . . . | . |. |. . . . | . +--------- x +--------- x +--------- x একসাথে বাড়ে কোনো pattern নেই একটা বাড়লে অন্যটা কমে সাবধান: r ≈ 0 কিন্তু শক্ত non-linear সম্পর্ক (U-আকৃতি) y| . . | . . | . . | . . ← Pearson এখানে ~0 দেখাবে, তবু সম্পর্ক শক্ত! +--------------- x

💻 ১০. Code: correlation matrix ও heatmap

Pandas দিয়ে সব feature-এর জোড়ায়-জোড়ায় correlation এক লাইনে বের করা যায়। এটা EDA-র একটা প্রধান ধাপ।

import pandas as pd df = pd.DataFrame({ "experience": [1, 2, 3, 4, 5, 6, 7, 8], "salary": [25, 30, 40, 45, 55, 60, 72, 80], # experience-এর সাথে ↑ "shoe_size": [40, 42, 39, 41, 43, 40, 42, 41], # সম্পর্কহীন }) corr = df.corr(numeric_only=True) # correlation matrix print(corr.round(2)) # target (salary)-এর সাথে সবচেয়ে correlated feature কোনটা? print() print(corr["salary"].sort_values(ascending=False))

কী observe করবেন: experiencesalary-র correlation ১-এর কাছাকাছি (শক্ত), কিন্তু shoe_size-এর সাথে প্রায় ০। বাস্তব project-এ এই matrix seaborn-এর heatmap দিয়ে ছবিতে দেখানো হয়, যাতে redundant feature চোখে পড়ে।

🇧🇩 ১১. বাংলাদেশের context

একটা local e-commerce (যেমন Daraz-ধাঁচের) team ভাবতে পারে — "যারা বেশি review দেয়, তারাই বেশি কেনে; তাহলে সবাইকে review দিতে জোরাজুরি করি।" কিন্তু হয়তো আসল কারণ — সক্রিয় (loyal) user-রাই বেশি কেনে এবং বেশি review দেয় (confounder = loyalty)। correlation ≠ causation না বুঝলে টাকা খরচ করে ভুল campaign চালানো হবে। ঠিক এভাবে fintech-এ "feature A ও default একসাথে চলে" দেখে সিদ্ধান্ত নেওয়ার আগে causation যাচাই করতে হয়।

💼 ১২. Boss Question

💼 Boss Question

Boss: "data-তে দেখলাম যারা আমাদের newsletter পড়ে তারা বেশি কেনে। তাহলে সবাইকে জোর করে newsletter পাঠাই — বিক্রি বাড়বে, তাই না?"

উত্তর: সাবধান — এটা correlation, causation নাও হতে পারে। সম্ভবত যারা এমনিতেই আগ্রহী (engaged) customer, তারাই newsletter পড়ে এবং বেশি কেনে — newsletter নিজে বিক্রি বাড়াচ্ছে কিনা নিশ্চিত নয়। এটা প্রমাণ করতে একটা A/B test চালাই: এলোমেলোভাবে কিছু customer-কে newsletter দিই, কিছুকে দিই না, তারপর তুলনা করি। তাহলে টাকা ঢালার আগে জানব সত্যিই কাজ করে কিনা। correlation দিয়ে অনুমান, causation দিয়ে সিদ্ধান্ত।

🔎 ১৩. Job Requirement Decoder

"Ability to analyze feature relationships and perform correlation analysis."
প্রশ্নউত্তর
এর মানে কী?feature-রা একে অপরের ও target-এর সাথে কীভাবে সম্পর্কিত তা মাপতে ও ব্যাখ্যা করতে পারেন।
কোম্পানি কেন চায়?ভালো feature বাছা, redundant feature বাদ, ভুল "cause" দাবি এড়ানো।
কোন সমস্যা সমাধান করে?multicollinearity, misleading conclusion, দুর্বল feature selection।
junior-এর কী জানা লাগে?correlation coefficient পড়া, correlation ≠ causation, scatter দেখা।
এখনই কী master লাগে না?partial correlation, causal inference-এর গভীর তত্ত্ব, structural models।
GitHub-এ কীভাবে দেখাবেন?EDA notebook-এ correlation heatmap, redundant feature বাদ দেওয়ার সিদ্ধান্ত ব্যাখ্যা।
Interview-তে কী জিজ্ঞেস করতে পারে?"correlation vs causation?", "multicollinearity সমস্যা কেন?", "r=0 মানে কি সম্পর্ক নেই?"

⚠️ ১৪. সাধারণ ভুল ধারণা

ভুল ১: "correlation থাকলেই একটা আরেকটার কারণ।" → ঠিক: correlation ≠ causation; confounder থাকতে পারে।

ভুল ২: "r = 0 মানে কোনো সম্পর্ক নেই।" → ঠিক: Pearson শুধু linear মাপে; non-linear সম্পর্ক থাকতে পারে।

ভুল ৩: "target-এর সাথে কম correlated feature বাদ দিয়ে দেব।" → ঠিক: tree-based model বাঁকা সম্পর্ক ধরতে পারে; correlation একমাত্র মাপকাঠি নয়।

ভুল ৪: "covariance আর correlation একই।" → ঠিক: correlation হলো normalize করা covariance (-1..+1), তুলনাযোগ্য।

🎤 ১৫. Interview Prep

প্রশ্ন ১: correlation ও causation-এর পার্থক্য?
উত্তর: correlation = একসাথে চলা; causation = একটা আরেকটাকে ঘটায়। correlation causation প্রমাণ করে না।

প্রশ্ন ২: multicollinearity কী ও কেন সমস্যা?
উত্তর: feature-রা নিজেদের মধ্যে খুব correlated; linear model-এ coefficient অস্থির/অর্থহীন হয়ে যায়।

প্রশ্ন ৩: Pearson correlation-এর সীমাবদ্ধতা?
উত্তর: শুধু linear সম্পর্ক মাপে, outlier-এ sensitive; scatter plot-ও দেখা উচিত।

প্রশ্ন ৪: correlation দেখে কি feature select করবেন?
উত্তর: ইঙ্গিত হিসেবে হ্যাঁ, কিন্তু একমাত্র ভিত্তি নয় — model-based importance-ও দেখব।

✍️ ১৬. হাতে-কলমে (Mini Exercise)

১. উপরের df-এ একটা নতুন column years_since_school = experience + 18 যোগ করে df.corr() দেখুন — experience-এর সাথে এর correlation কত হলো, কেন?
২. নিজের জীবন থেকে এমন দুটো জিনিসের উদাহরণ দিন যারা correlated কিন্তু একটা আরেকটার কারণ নয়।
৩. এক লাইনে লিখুন: multicollinearity থাকলে কেন একটা feature বাদ দেওয়া যায়?

🚀 ১৭. Project Connection

আমাদের flagship "Bangladesh Tech Career Assistant"-এর data analysis (V2) ও পরবর্তী ML model (V3)-এ correlation সরাসরি লাগবে: কোন skill-এর সাথে বেশি বেতন correlated, কোন feature redundant (যেমন "years of experience" ও "number of past jobs" হয়তো একসাথে চলে)। আজকের correlation ≠ causation পাঠটা আমাদের রক্ষা করবে "এই skill শিখলেই বেতন বাড়বে" — এমন ভুল দাবি করা থেকে।

📌 ১৮. সারসংক্ষেপ ও পরবর্তী পর্ব

এই পর্বে আমরা শিখলাম:

✓ covariance দুটো variable একই/উল্টো দিকে চলে কিনা বলে; correlation সেটাকে -1..+1-এ normalize করে
✓ correlation coefficient r পড়া ও তার শক্তি বোঝা
correlation ≠ causation — confounder থাকতে পারে; causation-এ experiment লাগে
✓ Pearson শুধু linear মাপে — scatter plot-ও দেখতে হয়
✓ ML-এ feature selection ও multicollinearity ধরতে correlation লাগে, তবে একমাত্র মাপকাঠি নয়
✓ business সিদ্ধান্তে correlation = অনুমান, causation = A/B test দিয়ে নিশ্চিত
পরবর্তী Episode (S04E06): "Probability ও Bayes: 'কতটা নিশ্চিত' — AI-এর হৃদয়"। Series 04-এর চতুর্থ ও শেষ স্তম্ভ Probability। দেখব spam filter কীভাবে "কতটা সম্ভাবনা spam" হিসাব করে, conditional probability ও Bayes theorem-এর সহজ intuition — যা classifier বোঝার ভিত্তি।
© 2025 Sheikh Thanbir Alam. All Rights Reserved. thanbirtamim.github.io
এই লেখা মূল লেখকের সম্পত্তি — লিখিত অনুমতি ছাড়া কপি করে অন্য কোনো ওয়েবসাইট, ব্লগ, বই বা প্ল্যাটফর্মে প্রকাশ/বিতরণ করা কঠোরভাবে নিষিদ্ধ। Content may not be copied or republished without permission.