正態分布 - 計算 Z-Score 的 無偏估計

正態分布 - 計算 Z-Score 的 無偏估計

flyfish

Z-Score公式與計算步驟

1 公式(樣本Z-Score)

實際應用中,我們幾乎不知道“總體均值/標準差”,所以常用樣本數據計算:
zi=xi?xˉsz_i = \frac{x_i - \bar{x}}{s}zi?=sxi??xˉ?

xix_ixi?:某個具體的數據點(如數學成績80分);
xˉ\bar{x}xˉ:樣本均值(如全班數學平均分70分);
sss:樣本標準差(如全班數學成績的標準差5分)。

2 標準差sss的補充公式

標準差衡量“數據的離散程度”,計算步驟:

  1. 算每個數據與均值的差:xi?xˉx_i - \bar{x}xi??xˉ
  2. 差的平方:(xi?xˉ)2(x_i - \bar{x})^2(xi??xˉ)2
  3. 平方和的均值(方差):1n?1∑i=1n(xi?xˉ)2\frac{1}{n-1}\sum_{i=1}^n (x_i - \bar{x})^2n?11?i=1n?(xi??xˉ)2(分母用n?1n-1n?1是“無偏估計”);
  4. 方差開根號:s=方差s = \sqrt{\text{方差}}s=方差?

3 計算步驟

上面的“數學考試”例子,假設全班5個同學的數學成績為:[65, 70, 75, 80, 85],計算80分對應的Z-Score:

  1. 算樣本均值xˉ\bar{x}xˉxˉ=(65+70+75+80+85)/5=75\bar{x} = (65+70+75+80+85)/5 = 75xˉ=(65+70+75+80+85)/5=75
  2. 算樣本標準差sss
    • 差:65?75=?1065-75=-1065?75=?1070?75=?570-75=-570?75=?575?75=075-75=075?75=080?75=580-75=580?75=585?75=1085-75=1085?75=10
    • 差的平方:100,25,0,25,100100, 25, 0, 25, 100100,25,0,25,100
    • 方差:(100+25+0+25+100)/(5?1)=250/4=62.5(100+25+0+25+100)/(5-1) = 250/4 = 62.5(100+25+0+25+100)/(5?1)=250/4=62.5
    • 標準差:s=62.5≈7.91s = \sqrt{62.5} ≈ 7.91s=62.5?7.91
  3. 算Z-Scorez=(80?75)/7.91≈0.63z = (80-75)/7.91 ≈ 0.63z=(80?75)/7.910.63

數學成績比全班均值高0.63個標準差,處于中等偏上水平。

無偏估計:為什么樣本方差的分母用 n-1 而不是 n?

在計算Z-Score時,我們使用樣本數據來估計總體的情況,而樣本標準差 s 的公式中,方差的部分是 1n?1∑i=1n(xi?xˉ)2\frac{1}{n-1} \sum_{i=1}^n (x_i - \bar{x})^2n?11?i=1n?(xi??xˉ)2。這里的分母用 n-1(而不是 n)是為了實現“無偏估計”(unbiased estimation)。

1. 什么是“估計”?偏估計 vs. 無偏估計

首先,我們要明白:在現實中,我們很少能拿到“總體”(population)的所有數據。比如,全班數學成績的“總體”可能是全國所有學生的成績,但我們只能拿到一個“樣本”(sample),如你班上的5個同學的成績。我們用樣本數據來“估計”總體的均值、方差等參數。

  • 估計器(estimator):就是一個公式或方法,用來從樣本推算總體參數。比如,樣本均值 xˉ\bar{x}xˉ 是總體均值 μ 的估計器;樣本方差是總體方差 σ2 的估計器。
  • 偏估計(biased estimator):如果這個估計器在多次重復采樣后,平均值不等于真實的總體參數,就叫有偏(biased)。簡單說,它系統性地高估或低估了真實值。
  • 無偏估計(unbiased estimator):多次重復采樣后,估計器的平均值等于真實的總體參數。它更“公平”、更可靠,尤其當樣本量小的時候。

在方差的計算中:

  • 如果用分母 n,即樣本方差 = 1n∑i=1n(xi?xˉ)2\frac{1}{n} \sum_{i=1}^n (x_i - \bar{x})^2n1?i=1n?(xi??xˉ)2,這是一個有偏估計,它會低估總體方差(平均來說,算出來的方差比真實的小)。
  • 如果用分母 n-1,即樣本方差 = 1n?1∑i=1n(xi?xˉ)2\frac{1}{n-1} \sum_{i=1}^n (x_i - \bar{x})^2n?11?i=1n?(xi??xˉ)2,這是一個無偏估計,它在平均意義上等于總體方差。

為什么會這樣?因為用樣本均值 xˉ\bar{x}xˉ(而不是真實的總體均值 μ)來計算偏差,會讓數據看起來“更集中”(離散度更小),從而低估方差。為了補償這個“收縮效應”,我們用 n-1 來“放大”一點分母,讓估計更接近真實。

2. 為什么用 n 會低估?直觀解釋和數學原因
直觀解釋:

想象一下:總體是一個大群體,數據很分散。但當你抽樣時,樣本數據往往更“像”樣本均值 xˉ\bar{x}xˉ,因為 xˉ\bar{x}xˉ 就是從這些數據算出來的。所以,計算 ∑(xi?xˉ)2\sum (x_i - \bar{x})^2(xi??xˉ)2 時,偏差平方和會比用真實 μ 小(數據顯得更緊湊)。這就好比用“自家尺子”量自家東西,總會量得偏小。

  • 如果樣本量 n 很大(比如成千上萬),這個偏差很小,用 n 或 n-1 差不多。
  • 但如果 n 小(比如例子 n=5),偏差明顯。用 n 會顯著低估方差。

為了修正,我們減掉1(n-1),相當于“損失了一個自由度”(degrees of freedom)。為什么是1?因為計算 xˉ\bar{x}xˉ 時,已經用掉了1個“信息”(均值固定了數據的平均位置),剩下 n-1 個獨立偏差。

數學原因(簡單證明):

總體方差 σ2 = 1N∑i=1N(xi?μ)2\frac{1}{N} \sum_{i=1}^N (x_i - \mu)^2N1?i=1N?(xi??μ)2(N 是總體大小,通常很大)。

現在,從總體中隨機抽取 n 個樣本,計算樣本方差。

  • 如果用分母 n 的有偏方差,記為 s2_bias = 1n∑i=1n(xi?xˉ)2\frac{1}{n} \sum_{i=1}^n (x_i - \bar{x})^2n1?i=1n?(xi??xˉ)2

  • 數學上可以證明:期望值 E[s2_bias] = n?1nσ2\frac{n-1}{n} \sigma^2nn?1?σ2 < σ2(低估了 1n\frac{1}{n}n1? 的比例)。

  • 如果用分母 n-1 的無偏方差,記為 s2_unbias = 1n?1∑i=1n(xi?xˉ)2\frac{1}{n-1} \sum_{i=1}^n (x_i - \bar{x})^2n?11?i=1n?(xi??xˉ)2 = nn?1sb2ias\frac{n}{n-1} s2_biasn?1n?sb2?ias

  • 期望值 E[s2_unbias] = nn?1×n?1nσ2=σ2\frac{n}{n-1} \times \frac{n-1}{n} \sigma^2 = \sigma^2n?1n?×nn?1?σ2=σ2(正好等于真實方差,無偏)。

這個證明基于統計學的“期望值”計算(涉及χ2分布等),但核心是:n-1 補償了使用 xˉ\bar{x}xˉ 代替 μ 帶來的偏差。歷史上,這是由德國數學家弗里德里希·貝塞爾(Friedrich Bessel)在19世紀提出的修正,因此也叫“Bessel’s correction”。

3. 比較:n vs. n-1 的區別

數學成績樣本:[65, 70, 75, 80, 85],n=5,均值 xˉ=75\bar{x}=75xˉ=75,偏差平方和 = 100 + 25 + 0 + 25 + 100 = 250。

  • 用 n=5(有偏)

    • 方差 = 250 / 5 = 50
    • 標準差 s = √50 ≈ 7.07
    • Z-Score for 80: (80 - 75) / 7.07 ≈ 0.71
  • 用 n-1=4(無偏)

    • 方差 = 250 / 4 = 62.5
    • 標準差 s = √62.5 ≈ 7.91
    • Z-Score for 80: (80 - 75) / 7.91 ≈ 0.63

區別:用 n 的Z-Score更大(0.71 vs. 0.63),因為標準差更小,顯得成績“更突出”。但這低估了真實的離散度。如果這個樣本代表一個更大的班級,用 n 會讓Z-Score“夸大”你的位置,而 n-1 更保守、更接近真實總體。

假設真實總體方差是62.5(只是假設),多次抽樣平均下來,用 n-1 的方差會接近62.5,而用 n 的會接近50(低估20%)。

4. 在Z-Score計算中的重要性和應用注意

Z-Score 的本質是“標準化”數據,讓不同分布的數據可比(比如比較數學和語文成績)。公式 z = (x - 均值) / 標準差,其中標準差是“尺度”,如果標準差低估了,Z-Score就會高估偏差,導致解讀錯誤。

為什么在Z-Score中必須用 n-1?

  • 因為Z-Score通常用于推斷總體(如你的成績在全校/全國的位置),我們希望估計無偏。統計軟件(如Excel的STDEV.S、Python的numpy.std(ddof=1))默認用 n-1,就是這個原因。
  • 如果知道總體均值 μ 和 σ(罕見),用總體公式:z = (x - μ) / σ,分母就是 N,無需修正。
  • 但實際中,幾乎總是用樣本,所以 n-1 是標準實踐。

什么時候可以忽略?

  • n 很大時(n > 30),n 和 n-1 區別小,可以近似用 n。
  • 純描述樣本(不推斷總體)時,用 n 也行(叫“描述性標準差”)。

用 n-1 是為了讓樣本方差“公平”地代表總體,避免系統低估。這在小樣本中特別重要,能讓Z-Score更準確、更可靠

在這里插入圖片描述

兩種計算方式的分布對比

從已知總體方差(25)的正態分布中重復抽樣(樣本量 n=5)
紅色分布:使用 n 作為分母計算的樣本方差,其平均值明顯低于真實總體方差(25),表現出系統性低估
藍色分布:使用 n-1 作為分母計算的樣本方差,其平均值非常接近真實總體方差(25),實現了無偏估計
黑色虛線:真實的總體方差值,清晰顯示 n-1 的估計更接近真實值
在這里插入圖片描述

不同樣本量下的偏差對比

縱軸表示 “平均偏差”(估計值減去真實值),越接近 0 越好
紅色線:使用 n 作為分母時,始終存在負偏差(低估),樣本量越小偏差越大
藍色線:使用 n-1 作為分母時,偏差接近 0,基本無偏
規律:隨著樣本量增大3, 5, 10, 20, 50, 100, 500,兩種方法的差異逐漸減小,當 n 很大時(如 500),n 和 n-1 的結果幾乎相同

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns# 設置中文字體
plt.rcParams["font.family"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False  # 解決負號顯示問題# 實驗參數設置
np.random.seed(42)  # 設置隨機種子,保證結果可重復
population_mean = 50  # 總體均值
population_variance = 25  # 總體方差(已知)
population_std = np.sqrt(population_variance)  # 總體標準差
sample_size = 5  # 樣本量(小樣本更能體現差異)
num_simulations = 10000  # 模擬次數# 存儲每次模擬的兩種方差結果
variances_n = []  # 用n作為分母的方差
variances_n_minus_1 = []  # 用n-1作為分母的方差# 進行多次抽樣模擬
for _ in range(num_simulations):# 從已知總體中隨機抽取樣本sample = np.random.normal(population_mean, population_std, sample_size)sample_mean = np.mean(sample)# 計算偏差平方和squared_deviations = np.sum((sample - sample_mean) **2)# 兩種方式計算方差var_n = squared_deviations / sample_sizevar_n_minus_1 = squared_deviations / (sample_size - 1)# 存儲結果variances_n.append(var_n)variances_n_minus_1.append(var_n_minus_1)# 計算兩種方法的平均值
mean_var_n = np.mean(variances_n)
mean_var_n_minus_1 = np.mean(variances_n_minus_1)# 創建可視化圖形
plt.figure(figsize=(12, 6))# 繪制兩種方差估計的分布直方圖
sns.histplot(variances_n, bins=50, color='#FF6B6B', alpha=0.6, label=f'分母 = n (平均值 = {mean_var_n:.2f})')
sns.histplot(variances_n_minus_1, bins=50, color='#4ECDC4', alpha=0.6, label=f'分母 = n-1 (平均值 = {mean_var_n_minus_1:.2f})')# 繪制真實總體方差的參考線
plt.axvline(x=population_variance, color='black', linestyle='--', linewidth=2, label=f'真實總體方差 = {population_variance}')# 添加標簽和標題
plt.title(f'n = {sample_size} 時兩種方差計算方式的分布對比', fontsize=15)
plt.xlabel('樣本方差值', fontsize=12)
plt.ylabel('頻率', fontsize=12)
plt.xlim(0, population_variance * 2)  # 限制x軸范圍,使對比更清晰
plt.legend(fontsize=11)
plt.grid(alpha=0.3)plt.tight_layout()
plt.show()# 不同樣本量下的偏差對比
sample_sizes = [3, 5, 10, 20, 50, 100, 500]  # 測試不同樣本量
#sample_sizes = [500]
bias_n = []
bias_n_minus_1 = []for n in sample_sizes:# 多次模擬sim_var_n = []sim_var_n1 = []for _ in range(1000):sample = np.random.normal(population_mean, population_std, n)sample_mean = np.mean(sample)sq_dev = np.sum((sample - sample_mean)** 2)sim_var_n.append(sq_dev / n)sim_var_n1.append(sq_dev / (n - 1))# 計算偏差(估計值 - 真實值)bias_n.append(np.mean(sim_var_n) - population_variance)bias_n_minus_1.append(np.mean(sim_var_n1) - population_variance)# 繪制不同樣本量下的偏差圖
plt.figure(figsize=(10, 5))
plt.plot(sample_sizes, bias_n, 'ro-', label='分母 = n 的偏差')
plt.plot(sample_sizes, bias_n_minus_1, 'bo-', label='分母 = n-1 的偏差')
plt.axhline(y=0, color='gray', linestyle='--')  # 零偏差參考線plt.title('不同樣本量下兩種方差計算方式的偏差', fontsize=14)
plt.xlabel('樣本量 n', fontsize=12)
plt.ylabel('平均偏差(估計值 - 真實值)', fontsize=12)
plt.xscale('log')  # 對數刻度,便于展示不同量級的樣本量
plt.legend()
plt.grid(alpha=0.3)
plt.tight_layout()
plt.show()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/921932.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/921932.shtml
英文地址,請注明出處:http://en.pswp.cn/news/921932.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ai生成文章,流式傳輸(uniapp,微信小程序)

1.環境nutui-uniappvue3tsunocss2.功能源碼包含ai生成邏輯&#xff0c;內容生成實時打字機功能&#xff0c;ai數據處理等<script setup lang"ts"> import {queryAIParams, } from /api/pagesA import { submitFn } from /api/aiimport Navbar from /component…

Linux設備內存不足如何處理

[rootlocalhost ~]# free -mtotal used free shared buff/cache available Mem: 31208 14317 1280 1551 15610 14657 Swap: 15927 2781 13146 [rootlocalhost ~]#從 free -m 輸出來看&…

中間件八股

文章目錄RedisRedis為什么快&#xff1f;Redis Redis為什么快&#xff1f; 首先它是內存數據庫&#xff0c;所有數據直接操作內存而非磁盤&#xff0c;避免了 I/O 瓶頸&#xff1b;其次采用單線程模型&#xff0c;消除了多線程切換的開銷&#xff0c;同時通過非阻塞 I/O 多路…

【參數詳解與使用指南】PyTorch MNIST數據集加載

# 加載MNIST數據集 train_dataset datasets.MNIST(root./data, trainTrue, downloadTrue, transformtransform) # 下載訓練集 test_dataset datasets.MNIST(root./data, trainFalse, downloadTrue, transformtransform) # 下載測試集在深度學習入門過程中&#xff0c;MNIST手…

閉包面試題

閉包&#xff08;Closure&#xff09; 是指一個函數能夠記住并訪問其詞法作用域&#xff08;定義時的作用域&#xff09;&#xff0c;即使該函數在其詞法作用域之外執行。一、通俗理解&#xff08;面試可這樣開頭&#xff09;&#xff1a;> 閉包就是一個函數“記住”了它出生…

WebSocket 雙向通信實戰:SCADA 移動端實時操控響應優化

引言&#xff1a;SCADA 移動端的 “延遲煩惱” 與破局之道在電力調度、水廠監控、智能制造等場景中&#xff0c;SCADA 系統&#xff08;數據采集與監視控制系統&#xff09;是當之無愧的 “工業指揮官”—— 它能實時采集設備運行數據&#xff08;如電網負荷、水泵壓力、機床轉…

SafeEar:浙大和清華聯合推出的AI音頻偽造檢測框架,錯誤率低至2.02%

本文轉載自&#xff1a;https://www.hello123.com/safeear ** 一、&#x1f512; SafeEar&#xff1a;你的聲音 “防火墻”&#xff0c;讓 AI 偽造音頻無所遁形 擔心自己的聲音被 AI 模仿甚至偽造&#xff1f;SafeEar就是來幫你解決這個難題的&#xff01;它是由浙江大學和清…

uni-app iOS 日志與崩潰分析全流程 多工具協作的實戰指南

在 uni-app 跨平臺開發中&#xff0c;iOS 應用的日志與崩潰分析往往是開發者最頭疼的問題。 日志分散&#xff1a;uni-app 的 JS 日志、原生插件日志、系統日志分布在不同位置&#xff1b;崩潰難復現&#xff1a;用戶反饋的崩潰往往無法在開發機還原&#xff1b;符號化復雜&…

CSS定義網格的列模板grid-template-columns什么意思,為什么要用這么復雜的單詞

這個詞確實看起來復雜&#xff0c;但其實很好理解。讓我來拆解一下&#xff1a;單詞分解grid-template-columns grid - 網格template - 模板columns - 列連起來就是&#xff1a;網格模板列 → 定義網格的列模板為什么要用這么長的單詞&#xff1f;語義明確&#xff1a;長單詞能…

Umi-OCR:Windows7和Linux上可免費離線使用的OCR應用!

工具介紹 Umi-OCR 是一款免費、開源的離線OCR軟件&#xff0c;主要由作者 hiroi-sora 用業余時間在開發和維護。 Umi-OCR 內置多國語言庫&#xff0c;支持截屏/批量導入圖片&#xff0c;PDF文檔識別&#xff0c;排除水印/頁眉頁腳以及二維碼的掃描/生成。 適用平臺&#xff1…

30 分鐘讓 AI 開口查訂單:React-Native + Coze 全鏈路語音對話落地指南

一、前言&#xff1a;為什么你需要“可說話、能查庫”的 AI&#xff1f; 聊天機器人在 2025 已不新鮮&#xff0c;但**“張嘴就能查詢私有業務數據”**的端到端方案依然踩坑無數&#xff1a; ASR/TTS 選型多、SDK 難對齊大模型與內部 API 安全打通RN 端流式渲染 音頻播放并發…

玄機--應急響應--webshell查殺

靶場連接1.黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx}使用命令查找特殊文件//搜索目錄下適配當前應用的網頁文件&#xff0c;查看內容是否有Webshell特征 find ./ type f -name "*.jsp" -exec grep -l "exec(" {} \; find ./ type f -name &…

Nodejs讀取目錄下面的文件

需求&#xff1a;給定一個目錄&#xff0c;讀取該目錄下面的所有文件&#xff0c;包括該目錄下面文件夾里面的子文件&#xff0c;子子文件......const fs require(fs);const path require(path);// 指定要遍歷的目錄const directoryPath D:\\;//調用函數入口處readDir(direc…

PPTist,一個完全免費的 AI 生成 PPT 在線網站

PPTist&#xff0c;一個完全免費的 AI 生成 PPT 在線網站 PPTist 是一個完全免費的 AI 生成 PPT 在線網站、PPT 在線演示網站、PPT 在線編輯網站。 它完全免費&#xff0c;無需登錄注冊&#xff0c;支持 AI 生成 PPT 功能&#xff0c;可以一句話生成 PPT &#xff0c;支持輸入…

C++中操作重載與類型轉換

文章目錄基本概念調用選擇作為成員還是非成員輸入和輸出運算符算術和關系運算符相等和不等運算符賦值運算符下標運算符遞增和遞減運算符成員訪問運算符函數調用運算符lambda是函數對象標準庫定義的函數對象可調用對象與function重載、類型轉換與運算符類型轉換運算符避免有二義…

Java學習之——“IO流“的進階流之轉換流的學習

在博主的上一篇博文中&#xff0c;詳細的介紹了“IO”流中最基本的一些知識&#xff0c;包括基本的常見的字節流和字符流&#xff0c;以及對應的緩沖流&#xff0c;對于“IO”流基礎知識相對薄弱的同學可以先去看博主的上一篇博文Java學習之——萬字詳解“IO流”中基本的字節流…

PMP考試結構、學習框架與基本術語

一、PMP考試整體結構 考試基本信息 考試形式&#xff1a;紙筆考試&#xff08;中國大陸地區&#xff09;考試時長&#xff1a;230分鐘&#xff08;約4小時&#xff09;題目數量&#xff1a;180道題 170道單選題&#xff08;四選一&#xff09;10道多選題包含5道非計分的試驗題…

淺談前端框架

在 Web 開發的演進過程中&#xff0c;前端框架扮演著越來越重要的角色。從早期的 jQuery 到如今的 React、Vue、Svelte 等&#xff0c;前端開發模式發生了翻天覆地的變化。本文將從前端框架的定義、核心特性、分類以及主流框架的差異等方面&#xff0c;帶你深入理解前端框架。 …

10.3 馬爾可夫矩陣、人口和經濟

本節內容是關于正矩陣&#xff08;postive matrices&#xff09;&#xff1a; 每個元素 aij>0a_{ij}>0aij?>0&#xff0c;它核心的結論是&#xff1a;最大的特征值為正實數&#xff0c;其對應的特征向量也是如此。 在經濟學、生態學、人口動力系統和隨機游走過程中都…

python學習進階之面向對象(二)

文章目錄 1.面向對象編程介紹 2.面向對象基本語法 3.面向對象的三大特征 4.面向對象其他語法 1.面向對象編程介紹 1.1 基本概念 概念:面向對象編程(Object-Oriented Programming, OOP)是一種流行的編程范式,它以"對象"為核心組織代碼和數據 在面向對象的世界里: …