首页
/
每日頭條
/
科技
/
從樣本推算總體均值
從樣本推算總體均值
更新时间:2026-06-18 14:00:13

從樣本推算總體均值(如何通過樣本數據推斷其分布)1

1. 問題

運籌模拟的時候,我們通常會給定,某事件服從正态分布/指數分布之類。問題是,我們通常隻能觀察到樣本數據,沒有辦法觀察到其具體服從的分布。所謂服從什麼分布,是需要我們從樣本數據推測的。

那麼問題來了,怎樣從數據推測出其所服從的分布(goodness of fit)呢?

2. 分析

市面上有一些專業的統計軟件,可以做到從數據到分布的推測。比如Stat::Fit。但289美元的價格可着實不低。所以我們需要另想辦法。

常見分布匹配的方法有很多,比如

  • Bayesian information criterion
  • Kolmogorov–Smirnov test
  • Cramér–von Mises criterion
  • Anderson–Darling test
  • Shapiro–Wilk test
  • Chi-squared test

我們以 KS 測試為例。KS 具體理論很多書籍都有詳細解釋,這裡不再重複。有興趣的朋友可以關注後回複 ks 獲取相關資料。

Scipy 的統計模塊 stats,可以做 ks 測試。但有個問題是,分布參數需要我們提供。比如指數分布,其概率密度函數為

從樣本推算總體均值(如何通過樣本數據推斷其分布)2

這裡的 lambda就需要我們自己提供。好在scipy裡面有現成的方法可以從數據估算參數,就是用分布函數的fit方法。

于是,我們可以用 fit() 從數據裡面先估出分布的參數,然後再用ks test測試其是否滿足分布,就可以得出數據到底服從什麼分布了。

舉個例子。現有一家水煮魚飯館,觀察到了顧客到來的時間間隔見 data.txt,老闆想知道它服從什麼分布。

importscipy.statsasstats importnumpyasnp importmatplotlib.pyplotasplt data=np.loadtxt('data.txt',delimiter=',',encoding='utf8') dists={'norm':stats.norm,'lognorm':stats.lognorm,'expon':stats.expon} fordindists: paras=dists[d].fit(data) test=stats.kstest(data,dists[d].cdf,paras) print('{:1}\tpvalue:{:2}'.format(d,test[-1]))

可以得出結果

norm pvalue:0.18025230160179895 lognorm pvalue:0.703843693432498 expon pvalue:0.705389895669437

可見,這個最可能服從指數分布,其 loc = 0.1076,scale = 5.56。

打印其結果如下

x = np.arange(0, 20, 0.01) paras = stats.norm.fit(data) ynorm = stats.norm.pdf(x, paras[0], paras[1]) paras = stats.lognorm.fit(data) ylognorm = stats.lognorm.pdf(x, paras[0], paras[1], paras[2]) paras = stats.expon.fit(data) yexpon = stats.expon.pdf(x, paras[0], paras[1]) fig, ax = plt.subplots() ax.plot(x, ynorm, label='norm') ax.plot(x, ylognorm, label='lognorm') ax.plot(x, yexpon, label='expon') ax.legend()

結果為

從樣本推算總體均值(如何通過樣本數據推斷其分布)3

3. 擴展

今天我們大緻讨論了如何用 scipy 模塊判斷樣本數據所服從的分布。通過上面的例子我們可以看到,在 70% 左右的置信度上,數據既可能服從指數分布,也可能服從對數正态分布。

其實這也正常。理論分布是我們用來解釋世界的一種手段,我們的真是世界到底服從什麼分布,從樣本是無法确定的。就像上面的圖形,expon 和 lognorm 長得也真挺像。

另外,所謂一力降十會,咱有了一個 Python,就可以看淡世間所有繁華。就像有了劉亦菲,還要什麼楊幂和阿嬌?

4. 交流

獨學而無友則孤陋寡聞。現有「數據與統計科學」微信交流群,内有數據行業資深從業人員、海外博士、碩士等,歡迎對數據科學、數據分析、機器學習、人工智能有興趣的朋友加入,一起學習讨論。

大家可以掃描下面二維碼,添加荔姐微信邀請加入,暗号:機器學習加群。

從樣本推算總體均值(如何通過樣本數據推斷其分布)4

Lily

5. 延伸閱讀
  1. Numpy 中如何對矩陣的特征對排序
  2. Python 中怎樣合并數據
  3. NumPy 運算規則總結
6. 參考文獻
  1. W. McKinney, Python for Data Analysis. Beijing: O’Reilly, 2017.
  2. J. VanderPlas, Python Data Science Handbook. Beijing: O’Reilly, 2016.

從樣本推算總體均值(如何通過樣本數據推斷其分布)5

Data2Science

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
注冊表備份還原
注冊表備份還原
許多用戶喜歡使用注冊表編輯器對其Windows操作系統進行更改,該編輯器允許用戶查看、創建和更改其中的注冊表項和值。注冊表編輯器是一種可以對Windows注冊表進行大量調整以根據需要自定義Windows設置的工具。盡管你可以使用注冊表編輯器...
2026-06-18
怎麼清除電腦鍵盤的灰塵
怎麼清除電腦鍵盤的灰塵
怎麼清除電腦鍵盤的灰塵?拍打鍵盤關掉電腦,将鍵盤從主機上取下在桌子上放一張報紙,把鍵盤翻轉朝下,距離桌面10厘米左右,拍打并搖晃你會發現鍵盤中有許多“存貨”掉出來:除灰塵之外,還有餅幹渣、咖啡末、橡皮屑、頭發絲等,下面我們就來聊聊關于怎麼清...
2026-06-18
手機信号故障維修大全
手機信号故障維修大全
外出旅遊、預訂酒店、訂餐、拍照錄像、網上購物,伴随着功能越來越強大,手機已經成為人們生活中必不可少的數碼産品。随着手機使用時長的增加和存儲量的加大,随時可能出現死機、自動重啟、觸屏失靈等現象。一些對手機不甚了解的小白用戶可能馬上就會去手機維...
2026-06-18
磨毛純棉被套加厚冬
磨毛純棉被套加厚冬
清晨,拉開窗簾。射進兩三方斜斜的太陽,暖暖地照在床上。它,是冬日裡溫暖的懷抱。擁抱着身軀,輕輕地撫摸着肌膚,仿佛在說:别害怕,冬天雖然很冷,但,沒事,有我在。它,是冬日裡的禦寒床品——野絨™四件套,來自擁有20年紡織家居出口經驗公司“倍安來...
2026-06-18
廣聯達安裝算量教程自學網
廣聯達安裝算量教程自學網
廣聯達這個軟件可以說是我們做工程造價最離不開的一個軟件了,我們每一步精準的工程量計算都離不開廣聯達的存在。很多工程人因為廣聯達使用的不太熟料,導緻自己工作難以完成。因此隻要找對方法,我們也可以輕松拿下廣聯達!不過剛好我這有一份小白時期看的廣...
2026-06-18
Copyright 2023-2026 - www.tftnews.com All Rights Reserved