Uji-t
Termasuk bagian Statistik untuk ML dalam perjalanan Machine Learning di Coddy. Pelajaran 45 dari 64.
Sebelum komputer, statistik punya jalan pintas: t-test. Sebuah rumus mengubah rata-rata, sebaran, dan ukuran kelompok menjadi p-value sekaligus:
from scipy import stats
result = stats.ttest_ind(sans, serif)
print(np.round(result.pvalue, 3))
print(np.round(result.statistic, 2))Untuk studi font, ini mencetak 0.031 dan -2.61. Pengacakan sebanyak 1000 kali menghasilkan 0.039, seperti biasa, nilainya mendekati.
Nilai t menunjukkan selisih dalam satuan galat baku; tandanya hanya menunjukkan kelompok mana yang dikurangkan lebih dahulu. Rumus ini mengasumsikan data berbentuk lonceng, jadi untuk kelompok kecil yang menceng, percayai hasil pengacakan.
Ini juga memeriksa apakah satu model benar-benar mengungguli model lain.
Tantangan
SedangPembuat cat mengukur waktu pengeringan tiga jenis lapisan. Kode awal menempatkan menit untuk setiap jenis lapisan di times, mencantumkan tiga pairs, mendefinisikan permutation_p(a, b), dan membaca level.
- Cetak nilai-p uji-t untuk matte vs satin di samping nilai-p dari pengacakan.
- Uji setiap pasangan, dengan jenis lapisan pertama lebih dulu, lalu cetak pasangan dengan nilai-p terkecil.
- Hitung pasangan yang nilai-p-nya di bawah
level.
Bulatkan nilai-p ke 3 angka desimal. Pembuat lain, level 0.05:
matte vs satin: t-test 0.012, simulation 0.023
Clearest difference: satin vs gloss (p = 0.0)
Pairs that differ: 3 of 3Coba sendiri
import numpy as np
import pandas as pd
from scipy import stats
# Uji permutasi dari dua pelajaran terakhir: mengembalikan nilai-p untuk a dibandingkan dengan b
def permutation_p(a, b, shuffles=1000, seed=0):
rng = np.random.default_rng(seed)
pooled = np.concatenate([a, b])
diffs = []
for i in range(shuffles):
shuffled = rng.permutation(pooled)
diffs.append(shuffled[len(a):].mean() - shuffled[:len(a)].mean())
real = b.mean() - a.mean()
return (np.abs(np.array(diffs)) >= np.abs(real)).mean()
paint = pd.read_csv("paint.csv")
times = {
"matte": paint[paint["finish"] == "matte"]["minutes"],
"satin": paint[paint["finish"] == "satin"]["minutes"],
"gloss": paint[paint["finish"] == "gloss"]["minutes"],
}
pairs = [("matte", "satin"), ("matte", "gloss"), ("satin", "gloss")]
level = float(input())
# Tulis kodemu di bawah ini
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Statistik untuk ML
1Pusat dan Sebaran
Rata-rata dan MedianPersentil dan KuartilVarians dan Simpangan BakuSampel atau Populasi?Nilai yang Paling Sering MunculRangkuman: Waktu Pengiriman4Sampel dan Populasi
Populasi dan SampelRata-rata Sampel BervariasiDistribusi SamplingSampel Lebih Besar, Lebih Sedikit GangguanRangkuman: Jajak Pendapat di Sebuah Kota2Distribusi
Histogram KepadatanBentuk DataKurva NormalAturan 68-95-99,7Skor-ZRekap: Daya Tahan Baterai5Nilai Pencilan
Diagram KotakAturan IQRAturan Z-ScoreMenangani Nilai PencilanRangkuman: Gangguan Sensor8Membandingkan Kelompok
Diagram Kotak per KelompokPerbedaan Rata-rataMungkinkah Ini Kebetulan?Nilai-pUji-tRangkuman: Uji A/B3Probabilitas melalui Simulasi
Probabilitas sebagai FrekuensiHukum Bilangan BesarJumlah Mata DaduNilai HarapanProbabilitas BersyaratRangkuman: Peluang di Lapak Dadu6Hubungan
Membaca Diagram PencarKorelasiMatriks KorelasiPeta Panas KorelasiKorelasi Bukan Sebab-AkibatRangkuman: Es Krim dan MatahariLatihan sendiri: Compiler Python online