當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python dask.array.stats.power_divergence用法及代碼示例


用法:

dask.array.stats.power_divergence(f_obs, f_exp=None, ddof=0, axis=0, lambda_=None)

Cressie-Read 功率散度統計和擬合優度檢驗。

此文檔字符串是從 scipy.stats.power_divergence 複製而來的。

可能存在與 Dask 版本的一些不一致之處。

此函數使用Cressie-Read 功率散度統計量測試分類數據具有給定頻率的零假設。

參數

f_obsarray_like

在每個類別中觀察到的頻率。

f_exp數組,可選

每個類別中的預期頻率。默認情況下,假定類別具有相同的可能性。

ddof整數,可選

“Delta 自由度”:調整p-value 的自由度。 p-value 使用自由度為 k - 1 - ddof 的卡方分布計算,其中 k 是觀察到的頻率數。 ddof 的默認值為 0。

axisint 或 None,可選

f_obsf_exp 的廣播結果軸,沿該軸應用測試。如果軸為無,f_obs 中的所有值都被視為單個數據集。默認值為 0。

lambda_float 或 str,可選

Cressie-Read 功率散度統計中的功率。默認值為 1。為方便起見,可以為 lambda_ 分配以下字符串之一,在這種情況下使用相應的數值:

String              Value   Description
"pearson"             1     Pearson's chi-squared statistic.
                            In this case, the function is
                            equivalent to `stats.chisquare`.
"log-likelihood"      0     Log-likelihood ratio. Also known as
                            the G-test [R5ed189a69e5c-3]_.
"freeman-tukey"      -1/2   Freeman-Tukey statistic.
"mod-log-likelihood" -1     Modified log-likelihood ratio.
"neyman"             -2     Neyman's statistic.
"cressie-read"        2/3   The power recommended in [R5ed189a69e5c-5]_.

返回

statistic浮點數或 ndarray

Cressie-Read 功率散度檢驗統計量。如果 axis 為 None 或者如果`f_obsf_exp 為一維,則該值為浮點數。

pvalue浮點數或 ndarray

測試的p-value。如果 ddof 和返回值 stat 是標量,則該值是浮點數。

注意

當每個類別中觀察到的或預期的頻率太小時,此測試無效。一個典型的規則是所有觀察到的和預期的頻率至少應該是 5。

此外,觀察到的頻率和預期頻率的總和必須相同才能使測試有效;如果總和在 1e-8 的相對容差範圍內不一致,則 power_divergence 會引發錯誤。

lambda_ 小於零時,統計公式涉及除以 f_obs ,因此如果 f_obs 中的任何值為 0,則可能會生成警告或錯誤。

同樣,如果 f_exp 中的任何值在 lambda_ >= 0 時為零,則可能會生成警告或錯誤。

默認自由度 k-1 適用於沒有估計分布參數的情況。如果通過有效最大似然估計 p 個參數,則正確的自由度為 k-1-p。如果以不同的方式估計參數,則自由度可以在 k-1-p 和 k-1 之間。但是,漸近分布也可能不是卡方,在這種情況下,此檢驗不合適。

此函數處理掩碼數組。如果f_obsf_exp 的元素被屏蔽,則該位置的數據將被忽略,並且不計入數據集的大小。

參考

1

洛瑞,理查德。 “推論統計的概念和應用”。第 8 章。https://web.archive.org/web/20171015035606/http://faculty.vassar.edu/lowry/ch8pt1.html

2

“卡方檢驗”,https://en.wikipedia.org/wiki/Chi-squared_test

3

“G-test”、https://en.wikipedia.org/wiki/G-test

4

Sokal, R. R. 和 Rohlf, F. J. “生物測量學:生物學研究中統計的原理和實踐”,紐約:弗裏曼 (1981)

5

Cressie, N. 和 Read, T. R. C.,“多項式 Goodness-of-Fit 測試”,J. Royal Stat。社會黨。 B係列,卷。 46,第 3 期(1984 年),第 440-464 頁。

例子

(有關更多示例,請參閱chisquare。)

當僅給出f_obs 時,假設預期頻率是均勻的,並且由觀察到的頻率的平均值給出。在這裏,我們執行 G-test(即使用 log-likelihood 比率統計):

>>> from scipy.stats import power_divergence  
>>> power_divergence([16, 18, 16, 14, 12, 12], lambda_='log-likelihood')  
(2.006573162632538, 0.84823476779463769)

可以使用 f_exp 參數給出預期頻率:

>>> power_divergence([16, 18, 16, 14, 12, 12],  
...                  f_exp=[16, 16, 16, 16, 16, 8],
...                  lambda_='log-likelihood')
(3.3281031458963746, 0.6495419288047497)

f_obs 為二維時,默認情況下測試應用於每一列。

>>> obs = np.array([[16, 18, 16, 14, 12, 12], [32, 24, 16, 28, 20, 24]]).T  
>>> obs.shape  
(6, 2)
>>> power_divergence(obs, lambda_="log-likelihood")  
(array([ 2.00657316,  6.77634498]), array([ 0.84823477,  0.23781225]))

通過設置 axis=None ,將測試應用於數組中的所有數據,相當於將測試應用於展平數組。

>>> power_divergence(obs, axis=None)  
(23.31034482758621, 0.015975692534127565)
>>> power_divergence(obs.ravel())  
(23.31034482758621, 0.015975692534127565)

ddof 是對默認自由度的更改。

>>> power_divergence([16, 18, 16, 14, 12, 12], ddof=1)  
(2.0, 0.73575888234288467)

p-values 的計算是通過使用 ddof 廣播測試統計信息來完成的。

>>> power_divergence([16, 18, 16, 14, 12, 12], ddof=[0,1,2])  
(2.0, array([ 0.84914504,  0.73575888,  0.5724067 ]))

f_obsf_exp 也被廣播。下麵f_obs的形狀為(6,),f_exp的形狀為(2, 6),所以f_obsf_exp的廣播結果的形狀為(2, 6)。要計算所需的卡方統計量,我們必須使用 axis=1

>>> power_divergence([16, 18, 16, 14, 12, 12],  
...                  f_exp=[[16, 16, 16, 16, 16, 8],
...                         [8, 20, 20, 16, 12, 12]],
...                  axis=1)
(array([ 3.5 ,  9.25]), array([ 0.62338763,  0.09949846]))

相關用法


注:本文由純淨天空篩選整理自dask.org大神的英文原創作品 dask.array.stats.power_divergence。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。