Mundarija (22)
- 1. Kirish va motivatsiya
- 2. Nazariya — chuqur tushuntirish
- 2.1. Son-son (scatter, korrelyatsiya)
- 2.2. Kategoriya-son (guruh box/o'rtacha)
- 2.3. Kategoriya-kategoriya (crosstab)
- 2.4. Aloqa yo'nalishi va kuchi
- 2.5. Aloqa vs sabab (4.10)
- 2.6. Bivariate amaliyoti
- 2.7. Bivariate tuzoqlari
- 2.8. Ikki o'zgaruvchi tahlil — ustunlar qanday bog'liq
- 3. Tez ma'lumotnoma
- 4. Batafsil misollar
- Misol 1 — Son-son (korrelyatsiya)
- Misol 2 — Kategoriya-son (guruh)
- Misol 3 — Kategoriya-kategoriya (crosstab)
- Misol 4 — Simpson paradoksi (guruh yashirin)
- 5. To'g'ri va noto'g'ri tushunishlar
- 6. Keng tarqalgan xatolar va yechimlari
- 7. Integratsiya — bu bilim qayerda kerak bo'ladi
- 8. Eng yaxshi amaliyotlar
- 9. Amaliy topshiriq
- Xulosa
8.4-dars: Ikki o'zgaruvchi tahlil (bivariate)
8-QISM — EDA (RAZVEDKA TAHLILI) · 4-dars
1. Kirish va motivatsiya
Univariate 8.3-bob har ustunni alohida ko'rdi — endi ustunlar orasidagi aloqa. Bu bivariate (ikki o'zgaruvchi) tahlil: "X va Y qanday bog'liq?". Bu EDA'ning eng qiziqarli qismi — naqshlar, aloqalar shu yerda topiladi. Uch turdagi juftlik bor: son-son (maydon vs narx — scatter, korrelyatsiya), kategoriya-son (shahar vs narx — guruh box/o'rtacha), kategoriya-kategoriya (shahar vs holat — crosstab). Har juftlik o'z usuli. Aloqa modelning asosi: qaysi xususiyat maqsadga (target) ta'sir qiladi. Bu darsda ikki o'zgaruvchi orasidagi aloqani turli usullar bilan o'rganish. Nega muhim? (1) Aloqa — ustunlar bog'liqmi (naqsh); (2) Uch tur — son-son/kat-son/kat-kat (usul); (3) Model asos — xususiyat → target. Bu dars bivariate tahlilni o'rgatadi — ustunlar qanday bog'liq.
Ikki o'zgaruvchi tahlil (bivariate) — ustunlar orasidagi aloqa: son-son (scatter — 5.4; korrelyatsiya — 4.9; maydon vs narx), kategoriya-son (guruh — box/o'rtacha; 5.6/3.8; shahar vs narx), kategoriya-kategoriya (crosstab — kesishma jadval; shahar vs holat), aloqa yo'nalishi (musbat/manfiy — 4.9), kuch (kuchli/kuchsiz). Foydalanish: ustunlar aloqasi, model uchun xususiyat. Bu 8.3 (univariate), 5.4 (scatter), 4.9 (korrelyatsiya), 3.8 (groupby) bilan bog'liq. Ikki o'zgaruvchi — aloqa (bivariate). Bivariate. Aloqa.
Real vaziyat. Data Scientist uy narxi EDA'sini davom ettiradi — aloqalar (bivariate): (1) son-son — "Maydon narxga bog'liqmi?" → scatter (musbat — maydon katta, narx yuqori; korrelyatsiya 0.7 — kuchli), (2) kategoriya-son — "Shaharlar narxi farqlimi?" → guruh box (Toshkent median 140, Samarqand 100 — farqli), (3) kategoriya-son — "Holat narxga?" → o'rtacha (yaxshi 150, o'rtacha 100 — ta'sir), (4) kategoriya-kategoriya — "Shahar va holat bog'liqmi?" → crosstab (Toshkentda yaxshi ko'p?). Data Scientist aloqalarni topdi (maydon narxga kuchli; shahar/holat muhim — model uchun xususiyat), keyingi (korrelyatsiya 8.5) uchun tayyorlandi. Ikki o'zgaruvchi — aloqa.
Bu darsda bivariate tahlilni o'rganamiz.
Bu darsda:
- Son-son (scatter, korrelyatsiya)
- Kategoriya-son (guruh box/o'rtacha)
- Kategoriya-kategoriya (crosstab)
- Aloqa yo'nalishi va kuchi
- Aloqa vs sabab (4.10)
- Bivariate amaliyoti
- Bivariate tuzoqlari
- Amaliy: bivariate tahlil
ℹ Misollar real pandas/numpy bilan (Python 3.14).
2. Nazariya — chuqur tushuntirish
2.1. Son-son (scatter, korrelyatsiya)
Ikki son ustun:
import pandas as pd
# SON-SON — aloqa:
df.plot.scatter("maydon", "narx") # scatter (aloqa shakli — 5.4)
df["maydon"].corr(df["narx"]) # korrelyatsiya (-1..+1; 4.9)
# ko'p juftlik
df[["maydon", "narx", "yosh"]].corr() # korrelyatsiya matritsasi Son-son (scatter, korrelyatsiya) — ikki son: son-son aloqa — scatter (5.4 — nuqta grafik; aloqa shakli ko'rinadi; musbat/manfiy/yo'q), korrelyatsiya (corr — -1..+1; 4.9; +1 kuchli musbat, -1 manfiy, 0 yo'q), matritsa (df.corr() — barcha juftlik; 8.5 heatmap). Sabab: ikki son — aloqa (bog'liqmi, qancha; maydon↑ → narx↑?); scatter (shakl — chiziqli? egri? — 5.4), korrelyatsiya (raqam — kuch/yo'nalish); ikkalasi (Anscombe — korrelyatsiya bir xil, shakl turli; scatter shart). Scatter (shakl), corr (kuch/yo'nalish), matritsa (barcha). Son-son — scatter/corr (aloqa). Son-son. Scatter.
2.2. Kategoriya-son (guruh box/o'rtacha)
Kategoriya va son:
import pandas as pd
# KATEGORIYA-SON — guruh:
df.groupby("shahar")["narx"].mean() # guruh o'rtacha (3.8)
df.groupby("shahar")["narx"].describe() # guruh statistika
# grafik: box (guruh taqsimoti — 5.6)
df.boxplot(column="narx", by="shahar") Kategoriya-son (guruh box/o'rtacha) — guruh: kategoriya-son aloqa — guruh (groupby — 3.8; har guruh statistika): o'rtacha/median (groupby("shahar")["narx"].mean() — guruh markazi; farqlimi?), box (boxplot — 5.6; har guruh taqsimot — median/tarqoqlik/outlier; yonma-yon), violin (5.9 — shakl). Sabab: kategoriya-son — guruhlar farqlimi (shahar bo'yicha narx — Toshkent vs Samarqand); guruh (kategoriya bo'yicha son statistika); box (taqsimot — median emas faqat; tarqoqlik/outlier). groupby (guruh o'rtacha), box (guruh taqsimot), farq (guruhlar). Kategoriya-son — guruh box/o'rtacha (farq). Kategoriya-son. Guruh.
2.3. Kategoriya-kategoriya (crosstab)
Kategoriya-kategoriya (crosstab) — kesishma: ikki kcategory aloqa — pd.crosstab(df["shahar"], df["holat"]) (kesishma jadval — har kombinatsiya sanoq; shahar × holat), normalize= (foiz — qator/ustun/butun), heatmap (crosstab — rangli; 5.8), stacked bar (guruhli ustun). Sabab: ikki kategoriya — bog'liqmi (shahar va holat — Toshkentda yaxshi ko'pmi?); crosstab (kombinatsiya sanoq — bog'lanish); son yo'q — sanoq (crosstab). crosstab (kesishma sanoq), normalize (foiz), heatmap (rangli). Kategoriya-kategoriya — crosstab (kesishma). Crosstab. Kesishma.
2.4. Aloqa yo'nalishi va kuchi
Aloqa yo'nalishi va kuchi — talqin: yo'nalish (musbat — X↑ Y↑ (maydon↑ narx↑); manfiy — X↑ Y↓ (yosh↑ narx↓); yo'q — aloqasiz), kuch (korrelyatsiya — |r|: 0.7-1 kuchli, 0.3-0.7 o'rtacha, 0-0.3 kuchsiz; 4.9), shakl (chiziqli — corr; nochiziqli — corr past, lekin aloqa bor; scatter ko'r — 4.9). Sabab: aloqa talqin (yo'nalish — qanday; kuch — qancha; shakl — chiziqlimi); model uchun (kuchli aloqa — muhim xususiyat; feature 19-qism). Yo'nalish (musbat/manfiy), kuch (|r|), shakl (chiziqli — corr; scatter). Aloqa yo'nalish/kuch — talqin (musbat/manfiy; |r|). Yo'nalish. Kuch.
2.5. Aloqa vs sabab (4.10)
Aloqa vs sabab 4.10-bob — muhim ogohlantirish: bivariate — aloqa (korrelyatsiya); sabab EMAS (4.10; korrelyatsiya ≠ sababiyat): kuchli aloqa (maydon-narx 0.7) — sabab bo'lishi mumkin, lekin isbot emas (yashirin o'zgaruvchi — joylashuv ikkalasiga; teskari — narx→maydon?; tasodif). Sabab: EDA aloqa topadi (sabab emas); sababni eksperiment (nazorat tajriba — 4.10) yoki domen tasdiqlaydi; "aloqa — gipoteza, sabab — isbot". Aloqa (korrelyatsiya — EDA), sabab EMAS 4.10-bob, eksperiment (sabab isbot). Aloqa vs sabab — aloqa (sabab emas; 4.10). Aloqa. Sabab.
2.6. Bivariate amaliyoti
Bivariate amaliyoti: juftlik aniqla (qaysi ustunlar — maqsad (target) bilan; muhim juftlik); tur (son-son / kat-son / kat-kat — usul); son-son (scatter shakl 5.4; corr kuch 4.9); kat-son (groupby o'rtacha 3.8; box taqsimot 5.6); kat-kat (crosstab kesishma); talqin (yo'nalish/kuch/shakl); aloqa ≠ sabab 4.10-bob; model (kuchli aloqa — xususiyat; 19-qism). Tuzoqlar: sababiyat (aloqa — 4.10), scatter'siz corr (Anscombe — shakl), nochiziqli corr (past, lekin aloqa), Simpson (guruh yashirin — 8.7), kat-son mean (box afzal — taqsimot). Amaliyot — juftlik, tur, usul, talqin. Bivariate. Aloqa.
2.7. Bivariate tuzoqlari
Bivariate asosiy tuzoqlari: sababiyat (bivariate — aloqa (korrelyatsiya); sabab EMAS (4.10; kuchli korrelyatsiya ≠ sabab; yashirin o'zgaruvchi, teskari, tasodif)); scatter'siz corr (faqat korrelyatsiya raqami — shakl yo'q (Anscombe — corr bir xil, shakl turli; scatter shart — 5.4)); nochiziqli aloqa (corr (Pearson) — chiziqli; nochiziqli (U shakl — yosh-xarid) — corr past (0), lekin aloqa bor; scatter ko'r — 4.9); Simpson paradoksi (umumiy aloqa — guruh ichida teskari (yashirin guruh; masalan umumiy musbat, har guruhda manfiy); guruh bo'yicha tekshir — 8.7); kat-son faqat mean (guruh o'rtacha — taqsimot yo'q (median/tarqoqlik/outlier; bimodal — o'rtacha ma'nosiz); box afzal); outlier ta'siri (scatter/corr — outlier buzadi (bir nuqta corr tortadi; 6.3); tekshir); ekologik xato (guruh aloqa ≠ shaxs aloqa; guruh daraja); ko'p juftlik (barcha juftlik — ko'p (n ustun → n^2 juftlik); muhim — target bilan); crosstab kam sanoq (kombinatsiya kam (1-2) — ishonchsiz; ko'p ma'lumot); teng masshtab emas (ikki son turli masshtab — scatter OK, lekin talqin ehtiyot). Sabab: bivariate aloqa/shakl nozik (sababiyat, nochiziqli, Simpson — noto'g'ri xulosa). Yechim: aloqa≠sabab, scatter, nochiziqli ko'r, guruh tekshir (Simpson), box. Tuzoqlar — sababiyat, scatter'siz, nochiziqli, Simpson.
2.8. Ikki o'zgaruvchi tahlil — ustunlar qanday bog'liq
Bivariate asosiy g'oyasi — ustunlar qanday bog'liq: univariate (8.3 — har ustun alohida) dan keyin — ustunlar orasidagi aloqa (bivariate — "X va Y bog'liqmi?"); EDA'ning eng qiziqarli qismi (naqsh, aloqa). Uch tur (juftlik): son-son (scatter shakl 5.4; corr kuch/yo'nalish 4.9; matritsa 8.5), kategoriya-son (groupby o'rtacha 3.8; box guruh taqsimot 5.6; farq), kategoriya-kategoriya (crosstab kesishma sanoq; heatmap). Aloqa talqin (yo'nalish musbat/manfiy; kuch |r| — 0.7 kuchli; shakl chiziqli/nochiziqli), aloqa ≠ sabab (4.10 — korrelyatsiya sabab emas; yashirin o'zgaruvchi, teskari; eksperiment). Foydalanish: ustunlar aloqasi (naqsh — bog'liqmi), model uchun xususiyat (kuchli aloqa target bilan — muhim feature; 19-qism). Tuzoqlar: sababiyat (aloqa — 4.10), scatter'siz corr (Anscombe), nochiziqli corr (past — aloqa bor), Simpson (guruh yashirin — teskari; 8.7), kat-son mean (box afzal), outlier (buzadi — 6.3). Bu 8.3 (univariate), 5.4 (scatter), 4.9 (korrelyatsiya), 3.8 (groupby), 4.10 (sabab), 8.5 (korrelyatsiya matritsa) bilan. Ikki o'zgaruvchi — ustunlar qanday bog'liq (bivariate; uch tur; aloqa≠sabab). Bivariate. Aloqa. Bog'liq.
3. Tez ma'lumotnoma
import pandas as pd
# SON-SON (aloqa):
df.plot.scatter("maydon", "narx") # scatter (shakl — 5.4)
df["maydon"].corr(df["narx"]) # korrelyatsiya (-1..+1; 4.9)
df[["a", "b", "c"]].corr() # matritsa (8.5)
# KATEGORIYA-SON (guruh):
df.groupby("shahar")["narx"].mean() # guruh o'rtacha (3.8)
df.boxplot(column="narx", by="shahar")# box (guruh taqsimoti — 5.6)
# KATEGORIYA-KATEGORIYA (crosstab):
pd.crosstab(df["shahar"], df["holat"]) # kesishma sanoq
pd.crosstab(df["shahar"], df["holat"], normalize="index") # foiz
# ALOQA TALQIN: yo'nalish (musbat/manfiy) · kuch (|r|: 0.7 kuchli) · shakl (chiziqli?)
# ALOQA ≠ SABAB 4.10-bob: korrelyatsiya sabab emas (yashirin o'zgaruvchi)
QOIDA: scatter (Anscombe) · aloqa≠sabab · nochiziqli ko'r · Simpson (guruh) · boxBivariate xulosasi
Ikki o'zgaruvchi tahlil — ustunlar qanday bog'liq (bivariate)
Son-son — scatter (shakl), korrelyatsiya (kuch/yo'nalish)
Kategoriya-son — groupby (o'rtacha), box (guruh taqsimoti)
Kategoriya-kategoriya — crosstab (kesishma sanoq)
Aloqa ≠ sabab — korrelyatsiya sabab emas (4.10; eksperiment)4. Batafsil misollar
Misollar real pandas/numpy bilan (Python 3.14).
Misol 1 — Son-son (korrelyatsiya)
"""Son-son aloqa (real pandas/numpy)."""
import numpy as np
import pandas as pd
def main() -> None:
np.random.seed(0)
maydon = np.random.normal(80, 20, 200)
narx = maydon * 1.5 + np.random.normal(0, 15, 200) # musbat aloqa
df = pd.DataFrame({"maydon": maydon, "narx": narx})
print("=== 1. Korrelyatsiya (kuch/yo'nalish) ===")
r = df["maydon"].corr(df["narx"]).round(2)
print(f" r: {r} (musbat, kuchli)")
print("\n=== 2. Talqin ===")
print(" musbat: maydon katta → narx yuqori")
print(f" kuch: |{r}| > 0.7 — kuchli")
print("\n=== 3. Manfiy aloqa (yosh) ===")
yosh = np.random.normal(15, 5, 200)
narx2 = 200 - yosh * 3 + np.random.normal(0, 10, 200)
r2 = pd.Series(yosh).corr(pd.Series(narx2)).round(2)
print(f" yosh-narx r: {r2} (manfiy)")
print("\n=== 4. Scatter kerak (Anscombe) ===")
print(" corr + scatter (shakl — chiziqlimi?)")
print(" ⭐ Son-son — korrelyatsiya (kuch/yo'nalish)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Korrelyatsiya (kuch/yo'nalish) ===
r: 0.91 (musbat, kuchli)
=== 2. Talqin ===
musbat: maydon katta → narx yuqori
kuch: |0.91| > 0.7 — kuchli
=== 3. Manfiy aloqa (yosh) ===
yosh-narx r: -0.85 (manfiy)
=== 4. Scatter kerak (Anscombe) ===
corr + scatter (shakl — chiziqlimi?)
⭐ Son-son — korrelyatsiya (kuch/yo'nalish)Nima ko'rsatdi: 2.1, 2.4-bo'limlar.
Misol 2 — Kategoriya-son (guruh)
"""Kategoriya-son aloqa (real pandas/numpy)."""
import numpy as np
import pandas as pd
def main() -> None:
np.random.seed(0)
df = pd.DataFrame({
"shahar": np.repeat(["Toshkent", "Samarqand", "Buxoro"], 100),
"narx": np.concatenate([
np.random.normal(140, 20, 100),
np.random.normal(100, 15, 100),
np.random.normal(90, 12, 100),
]),
})
print("=== 1. Guruh o'rtacha (groupby) ===")
ort = df.groupby("shahar")["narx"].mean().round(1)
print(ort.to_string())
print("\n=== 2. Guruh median (box uchun) ===")
med = df.groupby("shahar")["narx"].median().round(1)
print(f" {med.to_dict()}")
print("\n=== 3. Farqlimi? ===")
print(f" Toshkent ({ort['Toshkent']}) > Buxoro ({ort['Buxoro']})")
print(" → shaharlar narxi farqli (aloqa)")
print("\n=== 4. Box afzal (taqsimot) ===")
print(" o'rtacha emas faqat — box (median/tarqoqlik/outlier)")
print(" ⭐ Kategoriya-son — guruh (farq)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Guruh o'rtacha (groupby) ===
shahar
Buxoro 89.3
Samarqand 101.2
Toshkent 141.2
=== 2. Guruh median (box uchun) ===
{'Buxoro': 89.1, 'Samarqand': 100.4, 'Toshkent': 141.9}
=== 3. Farqlimi? ===
Toshkent 141.2-bob > Buxoro 89.3-bob
→ shaharlar narxi farqli (aloqa)
=== 4. Box afzal (taqsimot) ===
o'rtacha emas faqat — box (median/tarqoqlik/outlier)
⭐ Kategoriya-son — guruh (farq)Nima ko'rsatdi: 2.2-bo'lim.
Misol 3 — Kategoriya-kategoriya (crosstab)
"""Kategoriya-kategoriya (real pandas/numpy)."""
import numpy as np
import pandas as pd
def main() -> None:
np.random.seed(0)
df = pd.DataFrame({
"shahar": np.random.choice(["Toshkent", "Samarqand"], 200),
"holat": np.random.choice(["yaxshi", "o'rta"], 200),
})
print("=== 1. crosstab (kesishma sanoq) ===")
ct = pd.crosstab(df["shahar"], df["holat"])
print(ct.to_string())
print("\n=== 2. Foiz (normalize) ===")
ct_foiz = pd.crosstab(df["shahar"], df["holat"], normalize="index").round(2)
print(ct_foiz.to_string())
print("\n=== 3. Talqin ===")
print(" har shahar bo'yicha holat foizi")
print("\n=== 4. Bog'liqmi? ===")
print(" foizlar o'xshash → bog'liq emas (mustaqil)")
print(" ⭐ Kategoriya-kategoriya — crosstab")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. crosstab (kesishma sanoq) ===
holat o'rta yaxshi
shahar
Samarqand 56 45
Toshkent 55 44
=== 2. Foiz (normalize) ===
holat o'rta yaxshi
shahar
Samarqand 0.55 0.45
Toshkent 0.56 0.44
=== 3. Talqin ===
har shahar bo'yicha holat foizi
=== 4. Bog'liqmi? ===
foizlar o'xshash → bog'liq emas (mustaqil)
⭐ Kategoriya-kategoriya — crosstabNima ko'rsatdi: 2.3-bo'lim.
Misol 4 — Simpson paradoksi (guruh yashirin)
"""Simpson paradoksi (real pandas/numpy)."""
import numpy as np
import pandas as pd
def main() -> None:
# umumiy musbat, lekin har guruhda manfiy
a = pd.DataFrame({"x": [1, 2, 3], "y": [3, 2, 1], "guruh": "A"})
b = pd.DataFrame({"x": [4, 5, 6], "y": [6, 5, 4], "guruh": "B"})
df = pd.concat([a, b], ignore_index=True)
print("=== 1. Umumiy korrelyatsiya ===")
umumiy = df["x"].corr(df["y"]).round(2)
print(f" umumiy r: {umumiy} (musbat)")
print("\n=== 2. Guruh ichida ===")
for g in ["A", "B"]:
gr = df[df["guruh"] == g]
r = gr["x"].corr(gr["y"]).round(2)
print(f" guruh {g} r: {r} (manfiy!)")
print("\n=== 3. Simpson paradoksi ===")
print(" umumiy musbat, lekin har guruhda MANFIY")
print("\n=== 4. Guruh bo'yicha tekshir ===")
print(" yashirin guruh — aloqa teskari 8.7-bob")
print(" ⭐ Simpson — guruh bo'yicha tekshir")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Umumiy korrelyatsiya ===
umumiy r: 0.54 (musbat)
=== 2. Guruh ichida ===
guruh A r: -1.0 (manfiy!)
guruh B r: -1.0 (manfiy!)
=== 3. Simpson paradoksi ===
umumiy musbat, lekin har guruhda MANFIY
=== 4. Guruh bo'yicha tekshir ===
yashirin guruh — aloqa teskari 8.7-bob
⭐ Simpson — guruh bo'yicha tekshirNima ko'rsatdi: 2.7-bo'lim.
5. To'g'ri va noto'g'ri tushunishlar
| Noto'g'ri fikr | To'g'risi |
|---|---|
| "korrelyatsiya = sabab" | Aloqa (4.10) |
| "corr yetarli" | Scatter (Anscombe) |
| "corr past = aloqa yo'q" | Nochiziqli (scatter) |
| "umumiy aloqa = guruh" | Simpson (guruh tekshir) |
| "kat-son o'rtacha" | Box (taqsimot) |
| "outlier befarq" | Scatter/corr buzadi |
| "har juftlik" | Target bilan (muhim) |
| "univariate yetarli" | Bivariate (aloqa) |
6. Keng tarqalgan xatolar va yechimlari
1. Sababiyat
# corr 0.7 → sabab (xato) # ⚠️
# aloqa (sabab emas — 4.10; eksperiment) # ✅2. Scatter'siz corr
df["a"].corr(df["b"]) # shakl yo'q (Anscombe) # ⚠️
df.plot.scatter("a", "b") # shakl (chiziqli?) # ✅3. Nochiziqli aloqa
# corr 0.1 → aloqa yo'q (U shakl — aloqa bor) # ⚠️
df.plot.scatter("x", "y") # nochiziqli ko'r # ✅4. Simpson paradoksi
df["x"].corr(df["y"]) # umumiy (guruh yashirin) # ⚠️
df.groupby("guruh").apply(lambda g: g["x"].corr(g["y"])) # ✅5. Kat-son faqat mean
df.groupby("shahar")["narx"].mean() # taqsimot yo'q # ⚠️
df.boxplot(column="narx", by="shahar") # box (taqsimot) # ✅6. Outlier ta'siri
df["a"].corr(df["b"]) # outlier corr'ni tortadi # ⚠️
# outlier tekshir (scatter; 6.3) # ✅7. Ko'p juftlik
# barcha n^2 juftlik (ko'p, chalkash) # ⚠️
# target bilan (muhim juftlik) # ✅7. Integratsiya — bu bilim qayerda kerak bo'ladi
- 8.3-dars (o'tilgan): Univariate (har ustun)
- 5.4-dars (o'tilgan): Scatter (aloqa)
- 4.9-dars (o'tilgan): Korrelyatsiya
- 4.10-dars (o'tilgan): Korrelyatsiya ≠ sabab
- 8.5-dars: Korrelyatsiya (matritsa, heatmap)
8. Eng yaxshi amaliyotlar
Son-son — scatter + corr.
Kat-son — box (o'rtacha emas).
Kat-kat — crosstab.
Aloqa ≠ sabab — 4.10.
Scatter — Anscombe (shakl).
Nochiziqli — scatter ko'r.
Simpson — guruh tekshir.
Target bilan — muhim juftlik.
9. Amaliy topshiriq
Vazifa 1: Bashorat qiling
1. # bivariate nima?
2. # uch tur?
3. # son-son usuli?
4. # kategoriya-son?
5. # kategoriya-kategoriya?
6. # crosstab nima?
7. # aloqa yo'nalishi?
8. # aloqa kuchi?
9. # aloqa = sabab?
10. # Simpson paradoksi?
11. # nochiziqli corr?
12. # nega bivariate?Javoblar
- Ikki ustun aloqasi
- Son-son/kat-son/kat-kat
- Scatter, korrelyatsiya
- Groupby, box
- Crosstab
- Kesishma sanoq jadval
- Musbat/manfiy
- |r| (0.7 kuchli)
- Yo'q (aloqa — 4.10)
- Umumiy vs guruh (teskari)
- Past, lekin aloqa (scatter)
- Ustunlar aloqasi (model asos)
Vazifa 2: Xatolarni tuzating
1. # corr 0.7 → sabab
2. df["a"].corr(df["b"]) # shakl
3. # corr 0.1 → aloqa yo'q
4. df["x"].corr(df["y"]) # guruh yashirin
5. df.groupby("shahar")["narx"].mean()Javoblar
1. aloqa (4.10; eksperiment)
2. scatter (Anscombe)
3. scatter (nochiziqli)
4. groupby (Simpson)
5. boxplot (taqsimot)Vazifa 3: Son-son
Modellang:
- Scatter
- Korrelyatsiya
- Kuch/yo'nalish
- Shakl
Vazifa 4: Kategoriya-son
Modellang:
- Groupby
- O'rtacha
- Box
- Farq
Vazifa 5: Crosstab va Simpson
Modellang:
- Crosstab
- Kesishma
- Simpson
- Guruh tekshir
Vazifa 6: Integratsiya
Modellang:
- Univariate (8.3)
- Scatter (5.4)
- Sabab (4.10)
- Korrelyatsiya (8.5)
Vazifa 7: O'ylash
Simpson paradoksi — umumiy ma'lumotda aloqa musbat, lekin har guruh ichida manfiy (yashirin guruh o'zgaruvchisi tufayli). Bu ko'rsatadiki, bivariate aloqa (ikki ustun) yetarli emas — uchinchi o'zgaruvchi (guruh) hammasini o'zgartirishi mumkin. Nima uchun "aloqani kontekstsiz talqin qilish xavfli", va nima uchun bivariate tahlil ko'p o'zgaruvchi (multivariate) fikrlashga olib keladi?
Javob
Qisqa javob: Simpson paradoksi — umumiy musbat, har guruhda manfiy (yashirin guruh); bivariate (ikki ustun) yetmaydi — uchinchi o'zgaruvchi hammasini o'zgartiradi; "aloqani kontekstsiz talqin xavfli"; bivariate multivariate fikrlashga olib keladi, chunki: (1) yashirin o'zgaruvchi — ikki ustun aloqasi — uchinchi o'zgaruvchiga bog'liq bo'lishi mumkin (guruh, confounder; Simpson — guruh teskari; korrelyatsiya-sabab 4.10 yashirin o'zgaruvchi); (2) kontekst — aloqa kontekstda (guruh, sharoit; kontekstsiz — aldamchi; masalan umumiy musbat, lekin har guruhda manfiy); (3) haqiqat teskari — Simpson — xulosa teskari bo'lishi mumkin (umumiy "yaxshi", har guruhda "yomon"; qaror noto'g'ri); (4) multivariate — real dunyo ko'p o'zgaruvchi (narx — maydon + joylashuv + holat + ...; bivariate — soddalashtirish; ko'p o'zgaruvchi birga). "Nega kontekstsiz xavfli": (a) Simpson (guruh — aloqa teskari; kontekstsiz noto'g'ri); (b) confounder (yashirin o'zgaruvchi — soxta aloqa; 4.10); (c) qaror (aloqaga asoslangan qaror — kontekstsiz noto'g'ri); (d) soddalashtirish (ikki ustun — real ko'p; yo'qotish). "Nega multivariate fikrlash": (1) ko'p o'zgaruvchi (real — ko'p omil birga; bivariate — bitta-bitta; multivariate — birga); (2) nazorat (yashirin o'zgaruvchi — nazorat (guruh bo'yicha; regressiya ko'p o'zgaruvchi 15-qism)); (3) haqiqat (multivariate — to'liq rasm; bivariate — qism); (4) model (ML — ko'p xususiyat birga; multivariate). "Data Scientist qanday": (1) bivariate (ikki ustun — boshlanish); (2) guruh tekshir (Simpson — guruh bo'yicha; kontekst); (3) yashirin o'zgaruvchi (confounder — domen; nazorat); (4) multivariate (ko'p o'zgaruvchi birga — regressiya, model); (5) ehtiyot (bivariate aloqa — kontekstsiz ishonma). "Nega muhim": yashirin o'zgaruvchi (Simpson — teskari); kontekst (aloqa — sharoitda); multivariate (real — ko'p; birga). Saboqlar: bivariate yetmaydi (yashirin o'zgaruvchi — Simpson); kontekst (aloqa — guruh/sharoit); multivariate (ko'p o'zgaruvchi birga — real); ehtiyot (kontekstsiz ishonma). To'g'ri: bivariate (boshlanish) — kontekst (guruh, yashirin o'zgaruvchi); multivariate (ko'p birga); Simpson (guruh tekshir). Muvozanat: bivariate (sodda — ikki ustun) + multivariate (real — ko'p o'zgaruvchi; kontekst). Bu Data Science tahlil asosiy (bivariate — yashirin o'zgaruvchi; Simpson; multivariate; kontekst). Bivariate — ustunlar aloqasi (kontekst muhim; multivariate fikrlash).
1. Nega kontekstsiz xavfli
- Yashirin o'zgaruvchi (Simpson — teskari)
- Confounder (soxta aloqa — 4.10)
- Qaror (kontekstsiz — noto'g'ri)
- Soddalashtirish (ikki ustun — real ko'p)
2. Nega multivariate fikrlash
- Ko'p o'zgaruvchi (real — omil birga)
- Nazorat (yashirin — guruh/regressiya)
- Haqiqat (multivariate — to'liq rasm)
- Model (ML — ko'p xususiyat)
3. Bivariate vs multivariate
| Bivariate (ikki) | Multivariate (ko'p) |
|---|---|
| Sodda (juftlik) | Real (ko'p birga) |
| Simpson xavfi | Nazorat (guruh) |
| Qism | To'liq rasm |
4. Data Scientist qanday
- Bivariate (ikki ustun — boshlanish)
- Guruh tekshir (Simpson — kontekst)
- Yashirin o'zgaruvchi (confounder — domen)
- Multivariate (ko'p birga — model)
5. Xulosa
- Simpson (umumiy musbat, guruhda manfiy — yashirin guruh)
- Bivariate yetmaydi (uchinchi o'zgaruvchi — kontekst)
- Aloqa kontekstsiz xavfli (guruh/sharoit — ehtiyot)
- Multivariate fikrlash (ko'p o'zgaruvchi birga — real)
Nimani mustahkamlaydi: 2.5, 2.7-bo'limlar.
Xulosa
Bu darsda bivariate tahlilni o'rgandik.
Eng muhim uch fikr:
Uch tur. Son-son —
scatter(shakl — 5.4) +corr(kuch/yo'nalish — -1..+1; 4.9; matritsa 8.5). Kategoriya-son —groupby(o'rtacha/median — 3.8) + box (guruh taqsimot — median/tarqoqlik/outlier; 5.6; o'rtacha emas faqat). Kategoriya-kategoriya —crosstab(kesishma sanoq;normalizefoiz; heatmap).Talqin va sabab. Aloqa talqin — yo'nalish (musbat X↑Y↑; manfiy X↑Y↓; yo'q), kuch (|r|: 0.7 kuchli, 0.3-0.7 o'rtacha; 4.9), shakl (chiziqli — corr; nochiziqli — corr past, aloqa bor; scatter). Aloqa ≠ sabab (4.10 — korrelyatsiya sabab emas; yashirin o'zgaruvchi, teskari; eksperiment isbotlaydi).
Ustunlar bog'liq. Bivariate — ustunlar qanday bog'liq (naqsh — model uchun xususiyat; feature 19-qism). Simpson paradoksi — umumiy aloqa guruh ichida teskari (yashirin guruh; guruh bo'yicha tekshir — 8.7); aloqa kontekstsiz xavfli (uchinchi o'zgaruvchi — multivariate fikrlash). Tuzoqlar: sababiyat (aloqa — 4.10), scatter'siz corr (Anscombe), nochiziqli corr (past — aloqa bor), Simpson (guruh tekshir), kat-son mean (box afzal), outlier (buzadi — 6.3), ko'p juftlik (target bilan).
Keyingi darsda korrelyatsiya tahlilni chuqurroq o'rganamiz: korrelyatsiya matritsasi (barcha juftlik; 4.9), heatmap 5.8-bob, qaysi xususiyatlar target bilan bog'liq (feature tanlash), va multikollinearlik (xususiyatlar o'zaro bog'liq — muammo).
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!