簡體   English   中英

如何計算已合並的數據的峰度?

[英]How can I calculate the kurtosis of already binned data?

有誰知道如何僅使用Python從合並的數據中計算分布的峰度?

我有分布的直方圖,但沒有原始數據。 有兩列; 一個帶有垃圾箱編號,另一個帶有計數編號。 我需要計算分布的峰度。

如果我有原始數據,則可以使用scipy函數計算峰度。 我在該文檔中看不到任何要使用合並數據進行計算的內容。 https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.kurtosis.html

帶有scipy的binned statistics選項允許您計算bin中的峰度,但僅使用原始數據且僅在bin中。 https://docs.scipy.org/doc/scipy-0.16.0/reference/generated/scipy.stats.binned_statistic.html

編輯:示例數據。 我可以嘗試從中重新采樣以創建自己的虛擬原始數據,但是我每天大約有140k可以運行,並且希望內置一些數據。

Index,Bin,Count
 0, 730, 30
 1, 735, 45
 2, 740, 41
 3, 745, 62
 4, 750, 80
 5, 755, 96
 6, 760, 94
 7, 765, 90
 8, 770, 103
 9, 775, 96
10, 780, 95
11, 785, 109
12, 790, 102
13, 795, 99
14, 800, 93
15, 805, 101
16, 810, 109
17, 815, 98
18, 820, 89
19, 825, 62
20, 830, 71
21, 835, 69
22, 840, 58
23, 845, 50
24, 850, 42

您可以直接計算統計信息。 如果x是您的倉位編號,並且y是每個倉位的計數,則f(x)的期望值等於np.sum(y*f(x))/np.sum(y) 我們可以使用它來將峰度公式轉換為以下代碼:

total = np.sum(y)
mean = np.sum(y * x) / total
variance = np.sum(y * (x - mean)**2) / total
kurtosis = np.sum(y * (x - mean)**4) / (variance**2 * total)

請注意,峰度和過量峰度不是同一件事。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM