47

自由度 1 のカイ二乗として分布する検定統計量を計算しました。Python を使用して、これがどの P 値に対応するかを調べたいと考えています。

私は Python と数学/統計の初心者なので、ここで必要なのは SciPy の chi2 分布の確率密度関数だと思います。ただし、これを次のように使用すると:

from scipy import stats
stats.chi2.pdf(3.84 , 1)
0.029846

ただし、数学は知っているがPythonは知らない同僚とグーグルで話したり話したりすると、0.05にする必要があるとのことです。

何か案は?乾杯、デイビー

4

7 に答える 7

60

ここで簡単に復習してください:

確率密度関数: ポイント値と考えてください。特定の点での確率の密度はどれくらいですか?

累積分布関数: これは、特定のポイントまでの関数の確率の質量です。分布の何パーセントがこの点の片側にありますか?

あなたの場合、あなたは正しい答えを得たPDFを取りました。1 - CDF を試す場合:

>>> 1 - stats.chi2.cdf(3.84, 1)
0.050043521248705147

PDF CDF

于 2012-07-30T19:14:30.527 に答える
27

カイ二乗和と自由度を指定して帰無仮説の確率を計算するには、次のように呼び出すこともできますchisqprob

>>> from scipy.stats import chisqprob
>>> chisqprob(3.84, 1)
0.050043521248705189

知らせ:

chisqprobは非推奨です! stats.chisqprob は scipy 0.17.0 で廃止されました。代わりにstats.distributions.chi2.sfを使用してください

于 2013-11-23T17:25:02.260 に答える
7

あなたがするつもりだった:

>>> 1 - stats.chi2.cdf(3.84, 1)
0.050043521248705147
于 2012-07-30T19:19:13.027 に答える
3

数学を理解したい場合、サンプルの p 値 x (固定) は次のとおりです。

P[P(X) <= P(x)] = P[m(X) >= m(x)] = 1 - G(m(x)^2)

どこ、

  • P は、既知の共分散 (cov) と平均を使用した (k 変量などの) 正規分布の確率です。
  • X はその正規分布からの確率変数であり、
  • m(x) はマハラノビス距離 = sqrt( < cov^{-1} (x-mean), x-mean > です。1-d では、これは単に z スコアの絶対値であることに注意してください。
  • G は自由度 k のカイ ^2 分布の CDF です。

したがって、固定観測 x の p 値を計算する場合は、m(x) (一般化された z スコア) と 1-G(m(x)^2) を計算します。

たとえば、x が単変量 (k = 1) 正規分布からサンプリングされ、z スコア = 2 (平均から 2 標準偏差) の場合、p 値は約 .046 になることがよく知られています (a を参照)。 Z スコア テーブル)

In [7]: from scipy.stats import chi2

In [8]: k = 1

In [9]: z = 2

In [10]: 1-chi2.cdf(z**2, k)
Out[10]: 0.045500263896358528
于 2016-10-11T20:01:01.730 に答える
2

超高精度のために、scipychi2.sf()では不十分な場合は、大きな銃を引き出します。

>>> import numpy as np
>>> from rpy2.robjects import r
>>> np.exp(np.longdouble(r.pchisq(19000, 2, lower_tail=False, log_p=True)[0]))
1.5937563168532229629e-4126

別のユーザー (WestCoastProjects) による更新 OP の値を使用すると、次のようになります。

np.exp(np.longdouble(r.pchisq(3.84,1, lower_tail=False, log_p=True)[0]))
Out[5]: 0.050043521248705198928

つまり、探していた0.05があります。

于 2020-08-19T06:24:06.497 に答える