IlmHamroh
Python kursi/Malumot tahlili17/18-dars17 daqiqa
Mundarija (22)

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.stats bilan 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:

python
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:

python
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:

python
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:

python
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:

python
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

python
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 muhim

4. Batafsil misollar

Misollarda scipy.stats bilan sinaladi.

Misol 1 — t-test (ikki guruh)

python
"""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:

text
=== 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 farqlimi

Nima ko'rsatdi: 2.1, 2.2, 2.6-bo'limlar.

Misol 2 — t-test turlari

python
"""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:

text
=== 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

python
"""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:

text
=== 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.

python
"""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:

text
=== 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 qaror

Nima 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

python
# "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

python
# p<0.05, lekin farq 0.1% (arzimas)            # ⚠️
# ta'sir hajmini ham ko'r (effect size)         # ✅

3. p-hacking (ko'p test)

python
# 20 test, bittasi p<0.05 (tasodif)            # ⚠️
# gipoteza oldindan, tuzatish (Bonferroni)      # ✅

4. Noto'g'ri test turi

python
stats.ttest_ind(oldin, keyin)   # bir guruh    # ⚠️
stats.ttest_rel(oldin, keyin)   # juftlangan    # ✅

5. Alpha natijadan keyin

python
# p ko'rib, alpha tanlash                        # ⚠️ (p-hacking)
# alpha oldindan 0.05-bob                          # ✅

6. Kam namunada xulosa

python
# 3 ta bilan test — ishonchsiz                  # ⚠️
# yetarli namuna (kuch tahlili)                  # ✅

7. p >= 0.05 ni "farq yo'q" deb

python
# 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

  1. H0 va alpha oldindan belgila.

  2. To'g'ri test (mustaqil/juftlangan/kategoriya).

  3. Statistik ≠ amaliy muhim (ta'sir hajmi).

  4. p >= 0.05 = "dalil yo'q" (≠ farq yo'q).

  5. p-hacking'dan qoch (ko'p test).

  6. Takrorlash (bir test yetmaydi).

  7. Yetarli namuna (ishonchlilik).

  8. Korrelyatsiya ≠ sababiy.


9. Amaliy topshiriq

Vazifa 1: Bashorat qiling

python
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
  1. Farq tasodifmi yoki haqiqiymi tekshirish
  2. Nol gipoteza (farq yo'q)
  3. H0'da shu farqni ko'rish ehtimoli
  4. H0 rad (farq muhim)
  5. Ikki o'rtachani taqqoslash
  6. ind mustaqil guruh, rel juftlangan (oldin/keyin)
  7. Kategoriyalar bog'lanishi
  8. Korrelyatsiya muhimligi
  9. Muhimlik darajasi (chegara)
  10. Yo'q farqni bor deyish (false positive)
  11. Bor farqni yo'q deyish (false negative)
  12. Yo'q (statistik ≠ amaliy)

Vazifa 2: Xatolarni tuzating

python
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 namuna
Javoblar
python
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 namuna

Vazifa 3: t-test

Taqqoslash:

  1. ttest_ind
  2. p-qiymat
  3. Xulosa
  4. Talqin

Vazifa 4: Test turlari

t-test:

  1. ttest_1samp
  2. ttest_rel
  3. Qaysi qachon
  4. Xulosa

Vazifa 5: Chi2/korrelyatsiya

Test:

  1. chi2_contingency
  2. pearsonr
  3. p-qiymat
  4. Talqin

Vazifa 6: A/B test

To'liq:

  1. Ikki variant
  2. t-test
  3. Qaror
  4. 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

  1. Statistik ≠ amaliy muhim (ta'sir hajmi)
  2. p-hacking (ko'p test — tasodif)
  3. Gipoteza va alpha oldindan
  4. Takrorlash (bir test yetmaydi)

6. Xulosa

  1. Gipoteza — ilmiy usul (taxmin → sinov)
  2. Statistik ≠ amaliy muhim
  3. p-hacking — yolg'on
  4. Mas'uliyat bilan (oldindan, takrorlash)

Nimani mustahkamlaydi: 2.1–2.8-bo'limlar.


Xulosa

Bu darsda gipoteza tekshiruvini o'rgandik.

Eng muhim uch fikr:

  1. 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).

  2. 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.

  3. 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.05 farq 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.

Ulashish:Telegram'da

Izohlar (0)

Izoh yozish uchun kiring.

  • Hozircha izoh yo'q. Birinchi bo'ling!
24.17-dars: Statistika — gipoteza — IlmHamroh