1. ホーム
  2. python

[解決済み] 平均と標準偏差から正規分布の確率を計算するには?

2022-09-14 19:33:36

質問

Pythonで平均、標準を与えて正規分布の確率を計算する方法は?私はいつもこの質問のOPがしたように、定義に従って私自身の関数を明示的にコードすることができます。 Pythonで分布内の確率変数の確率を計算する

これを可能にするライブラリ関数の呼び出しがあるかどうかだけ疑問に思っています。私の想像では、それは次のようになります。

nd = NormalDistribution(mu=100, std=12)
p = nd.prob(98)

Perlでも同様の質問があります。 どのように私はPerlで正規分布が与えられた点での確率を計算することができますか? . しかし、私はPythonで1つを見ませんでした。

Numpy には random.normal という関数がありますが、サンプリングのようなもので、私が欲しいものとはちょっと違うようです。

どのように解決するのですか?

の中にある scipy.stats :

>>> import scipy.stats
>>> scipy.stats.norm(0, 1)
<scipy.stats.distributions.rv_frozen object at 0x928352c>
>>> scipy.stats.norm(0, 1).pdf(0)
0.3989422804014327
>>> scipy.stats.norm(0, 1).cdf(0)
0.5
>>> scipy.stats.norm(100, 12)
<scipy.stats.distributions.rv_frozen object at 0x928352c>
>>> scipy.stats.norm(100, 12).pdf(98)
0.032786643008494994
>>> scipy.stats.norm(100, 12).cdf(98)
0.43381616738909634
>>> scipy.stats.norm(100, 12).cdf(100)
0.5

[注意点としては、パラメータの渡し方が少し大雑把なことです。 このコードの設定上、もし誤って scipy.stats.norm(mean=100, std=12) ではなく scipy.stats.norm(100, 12) または scipy.stats.norm(loc=100, scale=12) といったキーワード引数を指定すると、それを受け付けますが、余分なキーワード引数は無言で破棄し、デフォルトの (0,1) を指定します] 。