正規分布の百分位数の計算


9

このウィキペディアのページをご覧ください:

http://en.wikipedia.org/wiki/Binomial_proportion_confidence_interval#Agresti-Coull_Interval

Agresti-Coull Intervalを取得するには、と呼ばれる正規分布のパーセンタイルを計算する必要があります。パーセンタイルを計算するにはどうすればよいですか?Wolfram MathematicaやPython / NumPy / SciPyでこれを行う既成の関数はありますか?z


1
「私がWikiから正確に取得した通常のcdf」の積分式は、残念ながら係数でずれています。標準関数(など)を含む有限数の項を使用した通常のcdfまたはその逆の正確な公式は知られていないが、通常のcdfとその逆の両方が多く研究され、近似されている両方の数式は、統計パッケージは言うまでもなく、多くの計算機、スプレッドシートにプログラムされています。私はRに精通していませんが、あなたが探しているものがすでに組み込まれていなかったら、私は驚かれることでしょう。1/πexpログcos
Dilip Sarwate、2012

@DilipSarwate、修正されました!私はこれを逆変換を使用して行っていますが、組み込みを多用することも「許可されていません」。
user1061210 2012

1
@Dilip:正確な公式がわかっていないだけでなく、そのような公式が存在しないことがわかっています!
枢機卿

1
Box-Muller法、独立した標準正規確率変数の同時分布からサンプルを生成します。したがって、生成された値のヒストグラムは、標準正規分布に似ています。しかし、Box-Muller法は、偶然に「値が以下の標準正規サンプルを生成したため、を除いて、値を計算する方法ではありません。、および。Φバツ10484011Φ10.8401Φ10.84011
ディリップSarwate

1
私はあなたが期待するかもしれない種類の数の例としてを選びました。 し、あなたが生成する場合ので、標準正規分布のサンプルを、あなたが期待してください近くにのの値を持つために、サンプル。あなたが取得しているとCDFなどにそれらに関連していないことを正しくボックス・ミュラー法を実装しているが、結果を理解していない8401Φ1=0.84131048413100001
ディリップSarwate

回答:


3

以下のためのMathematica $VersionNumber > 5を使用でき

Quantile[NormalDistribution[μ, σ], 100 q]

以下のためq番目のパーセンタイル。

それ以外の場合は、最初に適切な統計パッケージをロードする必要があります。


(バージョン7を持っています。)統計パッケージのロードに問題はありません。しかし、そこの関数は何と呼ばれていますか?なぜなら、このQuantile行は数式を使用する代わりに手動で計算を行うという印象を受けたからです。
Ram Rachum

(すなわちに割り当てる値をない記号パラメータでそれを評価しmusigma、およびq)。逆誤差関数を含む式を取得する必要があります。
JMは統計家ではありません

16

John Cookのページ、Distributions in Scipyは、この種のものの良いリファレンスです:

In [15]: import scipy.stats

In [16]: scipy.stats.norm.ppf(0.975)
Out[16]: 1.959963984540054

4

さて、あなたはRについて尋ねませんでしたが、Rでは?qnormを使用してそれを行います

(実際には、パーセンタイルではなく、分位数です。そのため、私は信じています)

> qnorm(.5)
[1] 0
> qnorm(.95)
[1] 1.644854

1
分位パーセンタイル(それは単に用語の問題です)、j.mp/dsYz9z
CHL

1
私たちがいる間、R Waldで調整されたCI(Agresti-Coullなど)がPropCIsパッケージで利用可能です。ウィルソンの方法がHmisc::binconf(AgrestiとCoullによって提案されたように)のデフォルトです。
CHL

2

Pythonでは、scipyパッケージのstatsモジュールを使用できます(次の例のようにを探します)。cdf()

超越パッケージには通常の累積分布も含まれているようです)。


0

たとえば、MatLabやMathematicaで利用できる逆erf関数を使用できます。

通常のCDFの場合、

y=Φバツ=12[1+erfバツ2]

我々が得る

バツ=2 erf12y1

対数正規CDFの場合、

y=Fバツバツ;μσ=12erfcログバツμσ2

我々が得る

ログバツ=μ+σ2 erfc12y

2
これは答えよりもコメントではありませんか?
マクロ

私の考えは、erf関数とerfc関数の逆関数があれば問題は解決するというものでした。たとえば、MatLabにはそのような事前にプログラムされた機能があります。
Jean-VictorCôté2012年

@Jean-VictorCôtéどうか、返信でアイデアを開発してください。それ以外の場合は、上記のコメントのように見えます。
2012年

ログバツバツ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.