Mundarija (22)
- 1. Kirish va motivatsiya
- 2. Nazariya — chuqur tushuntirish
- 2.1. Nol gipoteza va p-qiymat
- 2.2. t-test (ikki guruh)
- 2.3. Bir namuna va juftlangan t-test
- 2.4. Chi-kvadrat (kategoriya)
- 2.5. Korrelyatsiya testi
- 2.6. Muhimlik darajasi (alpha)
- 2.7. Xatolar (I va II tur)
- 2.8. Gipoteza tekshiruvi — ilmiy usul
- 3. Tez ma'lumotnoma
- 4. Batafsil misollar
- Misol 1 — t-test (ikki guruh)
- Misol 2 — t-test turlari
- Misol 3 — Chi-kvadrat va korrelyatsiya testi
- Misol 4 — Amaliy: A/B test
- 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
24.17-dars: Statistika — gipoteza
24-QISM — MA'LUMOT TAHLILI · 17-dars
1. Kirish va motivatsiya
24.16 da ma'lumotni tavsifladik (o'rtacha, tarqoqlik). Endi muhim savol: kuzatilgan farq haqiqiymi yoki tasodifmi? Masalan: yangi o'qitish usuli o'rtacha bahoni 75'dan 80'ga oshirdi — bu usul ta'sirimi yoki shunchaki tasodifmi (bir guruh baxtliroq)? A/B test: yangi tugma 5% ko'proq bosildi — haqiqiy yaxshilanishmi? Bu — gipoteza tekshiruvi (hypothesis testing).
Gipoteza tekshiruvi — kuzatilgan farqning tasodif emasligini statistik tekshirish: nol gipoteza (H0 — farq yo'q, tasodif) va muqobil (H1 — farq bor). p-qiymat — agar H0 to'g'ri bo'lsa (farq yo'q), shu (yoki kattaroq) farqni kuzatish ehtimoli; kichik p (< 0.05) — farq muhim (tasodif emas). t-test (ikki guruh o'rtachasi), chi-kvadrat (kategoriyalar), korrelyatsiya testi. Bu ilmiy usul — ma'lumotdan ishonchli xulosa. scipy.stats — testlar. Gipoteza — "haqiqiy farqmi?" savoliga javob.
Real vaziyat. Bir jamoa yangi sahifa dizaynini sinadi — 5% ko'proq sotuv. "Yaxshi, ishladi!" deyishdi. Lekin t-test qilindi: p = 0.3 (>0.05) — farq tasodifiy (kam ma'lumot, ishonchsiz). Ko'proq sinov kerak edi. Gipoteza tekshiruvi soxta xulosadan saqladi. Statistik test — qaror ishonchliligi.
Bu darsda gipoteza tekshiruvini o'rganamiz.
Bu darsda:
- Nol gipoteza va p-qiymat
- t-test (ikki guruh)
- Bir namuna va juftlangan t-test
- Chi-kvadrat (kategoriya)
- Korrelyatsiya testi
- Muhimlik darajasi (alpha)
- Xatolar (I va II tur)
- Amaliy: A/B test
ℹ Misollarda
scipy.statsbilan sinaladi.
2. Nazariya — chuqur tushuntirish
2.1. Nol gipoteza va p-qiymat
Gipoteza tekshiruvi asosi:
H0 (nol gipoteza): farq yo'q (tasodif)
H1 (muqobil): farq bor (haqiqiy)
p-qiymat: H0 to'g'ri bo'lsa, shu farqni kuzatish ehtimoli
p < 0.05: H0 rad etiladi (farq muhim)
p >= 0.05: H0 rad etib bo'lmaydi (yetarli dalil yo'q)Gipoteza tekshiruvi: H0 (nol gipoteza — "farq yo'q, tasodif" — sinaladigan taxmin), H1 (muqobil — "farq bor"). p-qiymat — agar H0 to'g'ri bo'lsa (farq yo'q), kuzatilgan (yoki kattaroq) farqni ko'rish ehtimoli. Kichik p (< 0.05) — bunday farq H0'da kam ehtimolli → H0 rad (farq muhim). Katta p — H0'da mumkin → rad qilib bo'lmaydi. "Farq tasodifmi?" savoliga ehtimol.
2.2. t-test (ikki guruh)
Ikki guruh o'rtachasini taqqoslash:
from scipy import stats
t, p = stats.ttest_ind(guruh_a, guruh_b)
# ikki mustaqil guruh o'rtachasi farqlimi?
if p < 0.05:
print("Farq muhim (tasodif emas)") t-test (stats.ttest_ind) — ikki mustaqil guruh o'rtachasini taqqoslaydi: A guruh (eski usul) vs B guruh (yangi usul) — o'rtacha farq haqiqiymi? Natija: t (farq statistikasi) va p-qiymat. p < 0.05 — farq muhim (guruhlar haqiqatan farq qiladi). Bu A/B test, tajribaning asosiy vositasi. Ikki o'rtachani solishtirish.
2.3. Bir namuna va juftlangan t-test
t-test turlari:
stats.ttest_1samp(data, 70) # bir namuna: o'rtacha 70'dan farqlimi?
stats.ttest_ind(a, b) # ikki mustaqil guruh
stats.ttest_rel(oldin, keyin) # juftlangan: bir guruh, oldin/keyin t-test turlari: bir namuna (ttest_1samp — namuna o'rtachasi ma'lum qiymatdan farqlimi — "o'rtacha 70mi?"), ikki mustaqil (ttest_ind — ikki alohida guruh), juftlangan (ttest_rel — bir guruh, oldin va keyin — dori oldin/keyin, o'qitish oldin/keyin). Juftlangan kuchliroq (bir guruh — individual farq). Savolga qarab tur (mustaqil guruhmi yoki bir guruh oldin/keyin).
2.4. Chi-kvadrat (kategoriya)
Kategoriyalar bog'lanishi:
from scipy import stats
kuzatilgan = [[30, 10], [20, 40]] # jadval (kategoriya × natija)
chi2, p, dof, expected = stats.chi2_contingency(kuzatilgan)
# ikki kategoriya bog'liqmi? Chi-kvadrat testi (chi2_contingency) — ikki kategoriya o'zgaruvchi bog'liqmi (masalan, jins va mahsulot tanlovi, hudud va status): kuzatilgan jadval (kontingensiya) vs kutilgan. Natija: chi2 va p. p < 0.05 — kategoriyalar bog'liq (mustaqil emas). Bu t-test'ning kategoriya versiyasi (son emas, toifa). Toifalar orasidagi bog'lanishni tekshirish.
2.5. Korrelyatsiya testi
Korrelyatsiya muhimligi:
r, p = stats.pearsonr(x, y)
# r: korrelyatsiya kuchi (-1..1)
# p: korrelyatsiya muhimmi (tasodif emasmi?) Korrelyatsiya testi (pearsonr) — korrelyatsiya (24.16) muhimmi: r (korrelyatsiya kuchi -1..1) va p (tasodifmi?). Kichik namunada kuchli r ham tasodif bo'lishi mumkin — p < 0.05 korrelyatsiya haqiqiy ekanini tasdiqlaydi. spearmanr (rank korrelyatsiya — chiziqsiz uchun). Korrelyatsiya bor, lekin ishonchlimi — p bilan.
2.6. Muhimlik darajasi (alpha)
p chegarasi:
alpha = 0.05 # muhimlik darajasi (odatda 5%)
if p < alpha:
# H0 rad — farq muhim
# alpha = 0.01 — qat'iyroq (1%) Muhimlik darajasi (alpha, a) — p chegarasi (odatda 0.05 = 5%): p < alpha → H0 rad (farq muhim). Alpha — "qancha xatoga rozimiz" (I tur xato — yo'q farqni bor deyish). 0.05 (5% — ko'p soha), 0.01 (1% — qat'iyroq — tibbiyot, muhim qaror). Alpha oldindan belgilanadi (natijani ko'rib emas — p-hacking oldini oladi). Muhimlik chegarasi.
2.7. Xatolar (I va II tur)
Ikki xil xato:
| Xato | Ma'no |
|---|---|
| I tur (false positive) | Yo'q farqni bor deyish |
| II tur (false negative) | Bor farqni yo'q deyish |
Gipoteza tekshiruvida ikki xato: I tur (H0 to'g'ri, lekin rad — "yo'q farqni bor deydik", false positive — alpha nazorat qiladi), II tur (H0 noto'g'ri, lekin rad qilmadik — "bor farqni yo'q deydik", false negative — namuna hajmi bilan kamaytiriladi). Ikkalasi o'zaro (alpha kichik → I tur kam, lekin II tur ko'p). "Statistik test mukammal emas" — xato ehtimoli bor. Ehtiyotli talqin.
2.8. Gipoteza tekshiruvi — ilmiy usul
Gipoteza tekshiruvi — ilmiy usulning statistik shakli: taxmin (gipoteza) → sinov (test) → xulosa (p bilan). Muhim ogohlantirishlar: p < 0.05 ≠ katta ta'sir (statistik muhim ≠ amaliy muhim — kichik farq ham katta namunada p<0.05), p-hacking (ko'p test qilib, tasodifan p<0.05 topish — yomon), korrelyatsiya ≠ sababiy 24.16-bob, takrorlash (bir test yetmaydi — takroriy tasdiq). Halol test: alpha oldindan, to'g'ri test, natijani to'liq. Gipoteza — ma'lumot bilan qaror qabul qilishning ilmiy asosi.
3. Tez ma'lumotnoma
from scipy import stats
# t-test (o'rtacha taqqoslash):
t, p = stats.ttest_ind(guruh_a, guruh_b) # ikki mustaqil guruh
t, p = stats.ttest_1samp(data, 70) # bir namuna (70 dan farqli?)
t, p = stats.ttest_rel(oldin, keyin) # juftlangan (oldin/keyin)
# chi-kvadrat (kategoriya bog'lanishi):
chi2, p, dof, exp = stats.chi2_contingency([[30, 10], [20, 40]])
# korrelyatsiya testi:
r, p = stats.pearsonr(x, y) # muhimmi?
# xulosa:
alpha = 0.05
if p < alpha:
print("H0 rad — farq muhim (tasodif emas)")
else:
print("Yetarli dalil yo'q")
# normallik:
stat, p = stats.shapiro(data) # normal taqsimotmi?Gipoteza xulosasi
H0: farq yo'q · p-qiymat: tasodif ehtimoli · p<0.05: H0 rad (muhim)
t-test (o'rtacha) · chi2 (kategoriya) · pearsonr (korrelyatsiya)
alpha: chegara (oldindan) · I/II tur xato · statistik ≠ amaliy muhim4. Batafsil misollar
Misollarda
scipy.statsbilan sinaladi.
Misol 1 — t-test (ikki guruh)
"""ttest_ind: ikki mustaqil guruh o'rtachasini taqqoslash; p<0.05 → farq muhim."""
import warnings
warnings.filterwarnings("ignore")
from scipy import stats
def main() -> None:
eski_usul = [72, 75, 78, 71, 74, 76, 73, 77]
yangi_usul = [80, 82, 85, 79, 83, 81, 84, 86]
print("=== 1. Guruh o'rtachalari ===")
print(f" eski usul o'rtacha: {sum(eski_usul) / len(eski_usul)}")
print(f" yangi usul o'rtacha: {sum(yangi_usul) / len(yangi_usul)}")
print("\n=== 2. t-test ===")
t, p = stats.ttest_ind(eski_usul, yangi_usul)
print(f" t-statistika: {round(t, 3)}")
print(f" p-qiymat: {round(p, 6)}")
print("\n=== 3. Xulosa (alpha=0.05) ===")
print(f" p < 0.05: {p < 0.05}")
natija = "farq muhim (tasodif emas)" if p < 0.05 else "yetarli dalil yetishmaydi"
print(f" natija: {natija}")
print("\n=== 4. Talqin ===")
print(f" yangi usul haqiqatan yaxshiroq (statistik muhim)")
print(" ⭐ ttest_ind — ikki guruh o'rtachasi farqlimi")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Guruh o'rtachalari ===
eski usul o'rtacha: 74.5
yangi usul o'rtacha: 82.5
=== 2. t-test ===
t-statistika: -6.532
p-qiymat: 1.3e-05
=== 3. Xulosa (alpha=0.05) ===
p < 0.05: True
natija: farq muhim (tasodif emas)
=== 4. Talqin ===
yangi usul haqiqatan yaxshiroq (statistik muhim)
⭐ ttest_ind — ikki guruh o'rtachasi farqlimiNima ko'rsatdi: 2.1, 2.2, 2.6-bo'limlar.
Misol 2 — t-test turlari
"""ttest_1samp (bir namuna); ttest_rel (juftlangan — oldin/keyin)."""
import warnings
warnings.filterwarnings("ignore")
from scipy import stats
def main() -> None:
print("=== 1. Bir namuna t-test (o'rtacha 70mi?) ===")
baholar = [72, 75, 78, 71, 74, 76, 73, 77]
t, p = stats.ttest_1samp(baholar, 70)
print(f" o'rtacha: {sum(baholar) / len(baholar)}")
print(f" t={round(t, 3)}, p={round(p, 5)}")
print(f" 70 dan farqli: {p < 0.05}")
print("\n=== 2. Juftlangan t-test (oldin/keyin) ===")
oldin = [70, 72, 68, 75, 71]
keyin = [75, 78, 74, 80, 77]
t2, p2 = stats.ttest_rel(oldin, keyin)
print(f" oldin o'rtacha: {sum(oldin) / len(oldin)}")
print(f" keyin o'rtacha: {sum(keyin) / len(keyin)}")
print(f" t={round(t2, 3)}, p={round(p2, 6)}")
print("\n=== 3. Juftlangan xulosa ===")
print(f" o'zgarish muhim: {p2 < 0.05}")
print("\n=== 4. Qaysi test qachon ===")
print(f" bir namuna: qiymat ma'lum sondan farqlimi")
print(f" juftlangan: bir guruh oldin/keyin")
print(" ⭐ t-test turlari — savolga qarab (1samp/ind/rel)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Bir namuna t-test (o'rtacha 70mi?) ===
o'rtacha: 74.5
t=5.196, p=0.00126
70 dan farqli: True
=== 2. Juftlangan t-test (oldin/keyin) ===
oldin o'rtacha: 71.2
keyin o'rtacha: 76.8
t=-22.862, p=2.2e-05
=== 3. Juftlangan xulosa ===
o'zgarish muhim: True
=== 4. Qaysi test qachon ===
bir namuna: qiymat ma'lum sondan farqlimi
juftlangan: bir guruh oldin/keyin
⭐ t-test turlari — savolga qarab (1samp/ind/rel)Nima ko'rsatdi: 2.3-bo'lim.
Misol 3 — Chi-kvadrat va korrelyatsiya testi
"""chi2_contingency (kategoriya bog'lanishi); pearsonr (korrelyatsiya muhimligi)."""
import warnings
warnings.filterwarnings("ignore")
from scipy import stats
def main() -> None:
print("=== 1. Chi-kvadrat (kategoriya bog'lanishi) ===")
# qatorlar: hudud, ustunlar: mahsulot tanlovi
jadval = [[30, 10], [20, 40]]
chi2, p, dof, exp = stats.chi2_contingency(jadval)
print(f" chi2: {round(chi2, 3)}, p: {round(p, 5)}")
print(f" kategoriyalar bog'liq: {p < 0.05}")
print("\n=== 2. Korrelyatsiya testi (pearsonr) ===")
reklama = [10, 20, 30, 40, 50]
sotuv = [100, 180, 250, 340, 400]
r, pr = stats.pearsonr(reklama, sotuv)
print(f" korrelyatsiya r: {round(r, 3)}")
print(f" p-qiymat: {round(pr, 5)}")
print(f" korrelyatsiya muhim: {pr < 0.05}")
print("\n=== 3. Kichik namuna (ishonchsiz) ===")
x = [1, 2, 3, 4, 5]
y = [2, 4, 5, 4, 6]
r2, pr2 = stats.pearsonr(x, y)
print(f" r={round(r2, 3)}, p={round(pr2, 4)} (p>0.05 — ishonchsiz)")
print("\n=== 4. Xulosa ===")
print(f" kuchli r, lekin p yuqori → tasodif bo'lishi mumkin")
print(" ⭐ chi2 (kategoriya), pearsonr (korrelyatsiya muhimligi)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Chi-kvadrat (kategoriya bog'lanishi) ===
chi2: 15.042, p: 0.00011
kategoriyalar bog'liq: True
=== 2. Korrelyatsiya testi (pearsonr) ===
korrelyatsiya r: 0.999
p-qiymat: 6e-05
korrelyatsiya muhim: True
=== 3. Kichik namuna (ishonchsiz) ===
r=0.853, p=0.0663 (p>0.05 — ishonchsiz)
=== 4. Xulosa ===
kuchli r, lekin p yuqori → tasodif bo'lishi mumkin
⭐ chi2 (kategoriya), pearsonr (korrelyatsiya muhimligi)Nima ko'rsatdi: 2.4, 2.5-bo'limlar.
Misol 4 — Amaliy: A/B test
Real misol: A/B test — ikki dizayn sotuvi, t-test, p-qiymat, qaror. Bu — tajriba tahlilining namunasi.
"""to'liq A/B test: ikki variant konversiyasi, t-test, p-qiymat, statistik qaror."""
import warnings
warnings.filterwarnings("ignore")
from scipy import stats
def main() -> None:
# A variant (eski) va B variant (yangi) — kunlik konversiya %
variant_a = [4.2, 4.5, 4.1, 4.3, 4.4, 4.0, 4.2, 4.6]
variant_b = [5.1, 5.3, 4.9, 5.2, 5.0, 5.4, 5.1, 5.2]
print("=== 1. Variantlar o'rtachasi ===")
ort_a = round(sum(variant_a) / len(variant_a), 2)
ort_b = round(sum(variant_b) / len(variant_b), 2)
print(f" A (eski): {ort_a}%, B (yangi): {ort_b}%")
print(f" farq: {round(ort_b - ort_a, 2)}% (ko'rinishda B yaxshi)")
print("\n=== 2. t-test (farq haqiqiymi?) ===")
t, p = stats.ttest_ind(variant_a, variant_b)
print(f" t={round(t, 3)}, p={round(p, 6)}")
print("\n=== 3. Statistik qaror (alpha=0.05) ===")
alpha = 0.05
if p < alpha:
qaror = "B variantga o'tish (farq muhim, tasodif emas)"
else:
qaror = "Ko'proq ma'lumot kerak (farq ishonchsiz)"
print(f" p < {alpha}: {p < alpha}")
print(f" qaror: {qaror}")
print("\n=== 4. Eslatma ===")
print(f" statistik muhim ≠ har doim amaliy muhim")
print(f" namuna hajmi va takrorlash muhim")
print(" ⭐ A/B test — t-test bilan ishonchli qaror")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Variantlar o'rtachasi ===
A (eski): 4.29%, B (yangi): 5.15%
farq: 0.86% (ko'rinishda B yaxshi)
=== 2. t-test (farq haqiqiymi?) ===
t=-9.427, p=0.0
=== 3. Statistik qaror (alpha=0.05) ===
p < 0.05: True
qaror: B variantga o'tish (farq muhim, tasodif emas)
=== 4. Eslatma ===
statistik muhim ≠ har doim amaliy muhim
namuna hajmi va takrorlash muhim
⭐ A/B test — t-test bilan ishonchli qarorNima ko'rsatdi: 2.1–2.8-bo'limlar.
5. To'g'ri va noto'g'ri tushunishlar
| Noto'g'ri fikr | To'g'risi |
|---|---|
| "p < 0.05 = katta ta'sir" | Statistik ≠ amaliy muhim |
| "p = xulosa to'g'ri ehtimoli" | H0'da farq ehtimoli |
| "Farq bor = haqiqiy" | Test kerak (tasodifmi?) |
| "p >= 0.05 = farq yo'q" | Yetarli dalil yo'q (≠ yo'q) |
| "Bir test yetarli" | Takrorlash muhim |
| "Ko'p test — ko'proq topaman" | p-hacking (yomon) |
| "t-test har ma'lumotga" | Shartlar (normal, ...) |
| "Statistik test mukammal" | Xato (I/II tur) |
6. Keng tarqalgan xatolar va yechimlari
1. p-qiymatni noto'g'ri talqin
# "p=0.03 → xulosa 97% to'g'ri" # ⚠️ noto'g'ri
# p — H0'da shu farqni ko'rish ehtimoli # ✅2. Statistik = amaliy muhim deb o'ylash
# p<0.05, lekin farq 0.1% (arzimas) # ⚠️
# ta'sir hajmini ham ko'r (effect size) # ✅3. p-hacking (ko'p test)
# 20 test, bittasi p<0.05 (tasodif) # ⚠️
# gipoteza oldindan, tuzatish (Bonferroni) # ✅4. Noto'g'ri test turi
stats.ttest_ind(oldin, keyin) # bir guruh # ⚠️
stats.ttest_rel(oldin, keyin) # juftlangan # ✅5. Alpha natijadan keyin
# p ko'rib, alpha tanlash # ⚠️ (p-hacking)
# alpha oldindan 0.05-bob # ✅6. Kam namunada xulosa
# 3 ta bilan test — ishonchsiz # ⚠️
# yetarli namuna (kuch tahlili) # ✅7. p >= 0.05 ni "farq yo'q" deb
# p=0.06 → "farq yo'q" # ⚠️ (dalil yetmadi)
# "yetarli dalil yo'q" (≠ farq yo'q) # ✅7. Integratsiya — bu bilim qayerda kerak bo'ladi
- 24.16-dars (o'tilgan): Tavsifiy statistika — asos
- 24.14-dars (o'tilgan): Korrelyatsiya — test bilan
- 25-qism: ML — model baholash (statistik)
- 24.18-dars: Amaliy loyiha — tahlil
- 26-qism: Avtomatlashtirish — A/B test
8. Eng yaxshi amaliyotlar
H0 va alpha oldindan belgila.
To'g'ri test (mustaqil/juftlangan/kategoriya).
Statistik ≠ amaliy muhim (ta'sir hajmi).
p >= 0.05 = "dalil yo'q" (≠ farq yo'q).
p-hacking'dan qoch (ko'p test).
Takrorlash (bir test yetmaydi).
Yetarli namuna (ishonchlilik).
Korrelyatsiya ≠ sababiy.
9. Amaliy topshiriq
Vazifa 1: Bashorat qiling
1. # gipoteza tekshiruvi nima?
2. # H0 nima?
3. # p-qiymat nima?
4. # p<0.05 nima?
5. # t-test nima?
6. # ttest_ind vs ttest_rel?
7. # chi-kvadrat nima?
8. # pearsonr nima?
9. # alpha nima?
10. # I tur xato nima?
11. # II tur xato nima?
12. # statistik = amaliy muhimmi?Javoblar
- Farq tasodifmi yoki haqiqiymi tekshirish
- Nol gipoteza (farq yo'q)
- H0'da shu farqni ko'rish ehtimoli
- H0 rad (farq muhim)
- Ikki o'rtachani taqqoslash
- ind mustaqil guruh, rel juftlangan (oldin/keyin)
- Kategoriyalar bog'lanishi
- Korrelyatsiya muhimligi
- Muhimlik darajasi (chegara)
- Yo'q farqni bor deyish (false positive)
- Bor farqni yo'q deyish (false negative)
- Yo'q (statistik ≠ amaliy)
Vazifa 2: Xatolarni tuzating
1. # p=0.03 → 97% to'g'ri # noto'g'ri talqin
2. ttest_ind(oldin, keyin) # bir guruh # ttest_rel
3. # p ko'rib alpha tanla # oldindan
4. # p=0.06 → farq yo'q # dalil yo'q
5. # 3 ta bilan test # yetarli namunaJavoblar
1. # p — H0'da farq ehtimoli (xulosa to'g'riligi emas)
2. stats.ttest_rel(oldin, keyin)
3. # alpha oldindan (0.05)
4. # yetarli dalil yo'q (≠ farq yo'q)
5. # yetarli namunaVazifa 3: t-test
Taqqoslash:
ttest_ind- p-qiymat
- Xulosa
- Talqin
Vazifa 4: Test turlari
t-test:
ttest_1sampttest_rel- Qaysi qachon
- Xulosa
Vazifa 5: Chi2/korrelyatsiya
Test:
chi2_contingencypearsonr- p-qiymat
- Talqin
Vazifa 6: A/B test
To'liq:
- Ikki variant
- t-test
- Qaror
- Eslatma
Vazifa 7: O'ylash
Gipoteza tekshiruvi kuzatilgan farq tasodif emasligini tekshiradi — lekin noto'g'ri talqin ko'p: "p < 0.05 = katta ta'sir" (statistik ≠ amaliy muhim), "p-hacking" (ko'p test qilib tasodifan p<0.05). Nima uchun "statistik muhimlik ≠ amaliy muhimlik" va "p-hacking" tushunish muhim, va nega gipoteza tekshiruvi ilmiy usul bo'lsa ham, noto'g'ri ishlatish yolg'on xulosaga olib keladi?
Javob
Qisqa javob: Gipoteza tekshiruvi — ilmiy usul (taxmin → sinov → xulosa), lekin noto'g'ri ishlatish yolg'on xulosa beradi. "Statistik ≠ amaliy muhim": p < 0.05 farq tasodif emas deydi, lekin kattaligini emas — katta namunada arzimas farq (0.1%) ham p<0.05 bo'ladi (statistik muhim, amaliy arzimas). "p-hacking": ko'p test qilib (yoki ma'lumotni ko'p bo'lib), tasodifan p<0.05 topish — 20 testdan bittasi tasodifan "muhim" (5% xato). Bu ilmiy usulni buzadi (gipoteza natijaga moslashtiriladi). To'g'ri ishlatish: gipoteza oldindan (natijani ko'rib emas), alpha oldindan, ta'sir hajmi (p bilan birga), takrorlash (bir test yetmaydi). "Usul yaxshi, lekin noto'g'ri ishlatish yolg'on" — statistika mas'uliyat bilan.
1. Statistik ≠ amaliy muhim
p < 0.05 — farq tasodif emas (bor). Lekin qancha katta? Katta namunada arzimas farq (0.1%) ham p<0.05. Ta'sir hajmi (effect size) — amaliy muhimlik.
2. p-hacking
Ko'p test (yoki ma'lumot bo'lish) → tasodifan p<0.05:
- 20 test, har biri 5% xato → bittasi tasodifan "muhim"
- Gipoteza natijaga moslashtirish (yomon)
- Yechim: gipoteza oldindan, Bonferroni tuzatish
3. Ilmiy usul, lekin ehtiyot
| To'g'ri | Noto'g'ri |
|---|---|
| Gipoteza oldindan | Natijaga moslash |
| Alpha oldindan | p ko'rib alpha |
| Ta'sir hajmi + p | Faqat p |
| Takrorlash | Bir test |
4. Nega noto'g'ri ishlatish yolg'on
Statistik test — vosita, natijani kafolatlamaydi. Noto'g'ri ishlatish (p-hacking, faqat p) yolg'on xulosa. Fan inqirozi (replication crisis) — ko'p natija takrorlanmaydi.
5. Muhandislik saboqlari
- Statistik ≠ amaliy muhim (ta'sir hajmi)
- p-hacking (ko'p test — tasodif)
- Gipoteza va alpha oldindan
- Takrorlash (bir test yetmaydi)
6. Xulosa
- Gipoteza — ilmiy usul (taxmin → sinov)
- Statistik ≠ amaliy muhim
- p-hacking — yolg'on
- Mas'uliyat bilan (oldindan, takrorlash)
Nimani mustahkamlaydi: 2.1–2.8-bo'limlar.
Xulosa
Bu darsda gipoteza tekshiruvini o'rgandik.
Eng muhim uch fikr:
Nol gipoteza va p-qiymat. Gipoteza tekshiruvi — kuzatilgan farqning tasodif emasligini tekshirish: H0 (nol gipoteza — "farq yo'q, tasodif"), H1 (muqobil — "farq bor"). p-qiymat — agar H0 to'g'ri bo'lsa, kuzatilgan (yoki kattaroq) farqni ko'rish ehtimoli; kichik p (< 0.05) → H0 rad** (farq muhim).
p >= 0.05— "yetarli dalil yo'q" (≠** "farq yo'q"). Muhimlik darajasi (alpha, odatda 0.05) — p chegarasi, oldindan belgilanadi (p-hacking oldini oladi).Test turlari. t-test (o'rtacha):
ttest_ind(ikki mustaqil guruh — A/B test),ttest_1samp(bir namuna — ma'lum qiymatdan farqlimi),ttest_rel(juftlangan — bir guruh oldin/keyin). Chi-kvadrat (chi2_contingency) — ikki kategoriya bog'liqmi (t-test'ning toifa versiyasi). Korrelyatsiya testi (pearsonr) — korrelyatsiya (24.16) muhimmi (kichik namunada kuchli r ham tasodif bo'lishi mumkin — p bilan tasdiq). Savolga qarab test tanla.Xatolar va halol ishlatish. Ikki xato: I tur (yo'q farqni bor deyish — false positive, alpha nazorat), II tur (bor farqni yo'q deyish — false negative, namuna hajmi). Muhim ogohlantirishlar: "statistik ≠ amaliy muhim" (
p < 0.05farq bor deydi, lekin kattaligini emas — katta namunada arzimas farq ham p<0.05 — ta'sir hajmini ko'r), p-hacking (ko'p test qilib tasodifan p<0.05 — gipoteza oldindan), korrelyatsiya ≠ sababiy 24.16-bob, takrorlash (bir test yetmaydi). Gipoteza tekshiruvi — ilmiy usulning statistik shakli, lekin noto'g'ri ishlatish (p-hacking, faqat p) yolg'on xulosa. "Usul yaxshi, lekin mas'uliyat bilan" — ma'lumot bilan ishonchli qaror.
Keyingi darsda amaliy tahlil loyihasi ni bajaramiz: 24-qism bilimlarini (NumPy, pandas, vizualizatsiya, statistika) birlashtirib, real ma'lumotni to'liq tahlil qilamiz — 24-qism yakuni.
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!