Home »
Blog »
AI/ML Engineer সিরিজ » Series 04 » Episode 05
Covariance, Correlation ও Distribution: feature-রা কীভাবে সম্পর্কিত
correlation ≠ causation (Series 04, Episode 05)
🟡 INTERMEDIATE
Series 04 — Math, Statistics ও Probability
Episode 05 / 07
📑 এই পর্বে যা যা আছে
- ১. গল্প: আইসক্রিম বিক্রি বাড়লে ডুবে মৃত্যু বাড়ে?
- ২. আসল সমস্যা: দুটো জিনিস একসাথে চলে কি?
- ৩. Covariance — একসাথে ওঠানামা
- ৪. Level 1 — correlation মানে "হাত ধরাধরি"
- ৫. Level 2 — correlation coefficient (-1 থেকে +1)
- ৬. correlation ≠ causation (সবচেয়ে গুরুত্বপূর্ণ)
- ৭. Level 3 — ML-এ feature selection ও multicollinearity
- ৮. Distribution ও feature সম্পর্ক
- ৯. Visual: বিভিন্ন correlation
- ১০. Code: correlation matrix ও heatmap
- ১১. বাংলাদেশের context
- ১২. Boss Question
- ১৩. Job Requirement Decoder
- ১৪. সাধারণ ভুল ধারণা
- ১৫. Interview Prep
- ১৬. হাতে-কলমে (Mini Exercise)
- ১৭. Project Connection
- ১৮. সারসংক্ষেপ ও পরবর্তী পর্ব
🍦 ১. গল্প: আইসক্রিম বিক্রি বাড়লে ডুবে মৃত্যু বাড়ে?
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 দুই কাজে ব্যবহার করে:
-
Feature vs target: কোন feature target-এর সাথে বেশি correlated, সেটা model-এ
গুরুত্বপূর্ণ হতে পারে। যেমন "বাড়ির আয়তন" দামের সাথে শক্ত correlated — ভালো feature।
-
Feature vs feature (multicollinearity): দুটো feature নিজেদের মধ্যে খুব বেশি
correlated (যেমন "আয়তন বর্গফুটে" ও "আয়তন বর্গমিটারে") হলে একটা প্রায় redundant। Linear model-এ
এটা সমস্যা করে; সাধারণত একটা বাদ দিই।
সতর্কতা: 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 করবেন: experience ও salary-র 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 বোঝার ভিত্তি।