Giá trị p
Thuộc phần Thống kê cho machine learning trong hành trình Machine Learning của Coddy. Bài học 44 trên 64.
Giá trị p-value biến các lần xáo trộn thành một con số: tỷ lệ các khoảng cách giả lớn bằng hoặc lớn hơn khoảng cách thật, xét cả hai phía.
Trong code, để nghiên cứu phông chữ:
real = sans.mean() - serif.mean()
rng = np.random.default_rng(4)
diffs = shuffled_diffs(serif, sans, 1000, rng) # vòng lặp của bài học trước
p_value = (np.abs(diffs) >= np.abs(real)).mean()
print(p_value)Lệnh này in ra 0.039. np.abs tính độ chênh lệch -7 lớn bằng 7: câu hỏi là liệu các phông chữ có khác nhau hay không.
Thấp hơn mức ý nghĩa, thường là 0.05, thì may rủi khó giải thích được lợi ích của phông chữ hoặc mô hình. Đây không phải bằng chứng chắc chắn: 4 trong 100 lần xáo trộn vẫn cho kết quả đó.
Thử thách
Trung bìnhMột trang trại tưới nước cho dâu tây vào buổi sáng hoặc buổi tối. Phần code khởi tạo chia strawberries.csv thành morning và evening, liệt kê columns, đọc level và định nghĩa shuffled_diffs.
- Với mỗi cột, tính độ chênh lệch thực tế (trung bình buổi tối trừ trung bình buổi sáng), các độ chênh lệch sau khi xáo trộn (buổi sáng trước) và giá trị p.
- In một dòng cho mỗi cột như bên dưới (độ chênh lệch có 2 chữ số thập phân, p có 3 chữ số):
differskhi p nhỏ hơnlevel. - Đếm số cột có độ chênh lệch.
Một trang trại khác, mức 0.05:
berries: difference -5.4, p = 0.009, differs
weight_g: difference 0.2, p = 1.0, could be chance
sweetness_brix: difference 0.46, p = 0.022, differs
leaf_spots: difference 0.6, p = 0.397, could be chance
Columns that differ: 2 of 4Tự làm thử
import numpy as np
import pandas as pd
# Trả về các chênh lệch sau khi xáo trộn trong phép kiểm định hoán vị (vòng lặp của bài học 43): trung bình giả của b trừ trung bình giả của a
def shuffled_diffs(a, b, shuffles, rng):
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())
return np.array(diffs)
beds = pd.read_csv("strawberries.csv")
morning = beds[beds["watering"] == "morning"]
evening = beds[beds["watering"] == "evening"]
columns = ["berries", "weight_g", "sweetness_brix", "leaf_spots"]
level = float(input())
# Đừng thay đổi các dòng bên dưới
rng = np.random.default_rng(21)
shuffles = 1000
# Viết code của bạn bên dưới
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Thống kê cho machine learning
1Giá trị trung tâm và độ phân tán
Giá trị trung bình và trung vịPhân vị và tứ phân vịPhương sai và độ lệch chuẩnMẫu hay tổng thể?Giá trị xuất hiện nhiều nhấtÔn tập: Thời gian giao hàng4Mẫu và tổng thể
Tổng thể và mẫuTrung bình mẫu biến thiênPhân phối mẫuMẫu lớn hơn, ít nhiễu hơnÔn tập: khảo sát một thị trấn2Các phân phối
Biểu đồ tần suất mật độHình dạng của dữ liệuĐường cong chuẩnQuy tắc 68-95-99,7Điểm ZÔn tập: Thời lượng pin3Xác suất qua mô phỏng
Xác suất dưới dạng tần suấtLuật số lớnTổng điểm khi gieo xúc xắcGiá trị kỳ vọngXác suất có điều kiệnÔn tập: Tỷ lệ thắng ở quầy xúc xắc6Mối quan hệ
Đọc biểu đồ phân tánTương quanMa trận tương quanBản đồ nhiệt tương quanTương quan không đồng nghĩa với quan hệ nhân quảÔn tập: Kem và mặt trờiTự luyện tập: Trình biên dịch Python online