Rの密度関数から確率密度関数を見つける/推定する方法


17

X分布が不明なような変数があるとします。Mathematicaでは、SmoothKernelDensity関数を使用して推定密度関数を得ることができます。この推定密度関数は、「密度」がの結果であると仮定する形式のPDFような値の確率密度関数を計算する関数とともに使用できます。Rにそのような機能があれば良いでしょう。これがMathematicaでの動作です。XPDF[density,X]SmoothKernelDensity

http://reference.wolfram.com/mathematica/ref/SmoothKernelDistribution.html

例として(Mathematica関数に基づいて):

data = RandomVariate[NormalDistribution[], 100]; #generates 100 values from N(0,1)

density= SmoothKernelDistribution[data]; #estimated density

PDF[density, 2.345] returns 0.0588784 

ここでは、PDFに関する詳細情報を見つけることができます。

http://reference.wolfram.com/mathematica/ref/PDF.html

density(X)Rを使用して密度関数をプロットでき、その使用によりecdf(X)経験的累積分布関数を取得できることを知っていますが、Mathematicaについて説明した内容に基づいてRで同じことを行うことは可能ですか?

どんな助けとアイデアも大歓迎です。


density(x)既に述べたように、pdfの推定値を示しますが、その適合性は、密度を求める目的によって異なります。たとえば、分散にバイアスがかけられていることに注意してください(畳み込みの実行では、カーネルの分散をデータの分散に追加します。それ自体は不偏推定値です)-このようなバイアスと分散のトレードオフは遍在しています。たとえば、log-spline密度推定など、他の選択肢がありますが、その適合性は、何をしたいかによって部分的に決まります。
Glen_b-モニカを復活

@Glen_b分布内の他の値の確率を見つけるために推定密度を使用したい。たとえば、0〜10の範囲のデータのベクトルがあります。このデータセットには、0〜10の70個の一意の値しか含まれていません。密度をプロットできます。ここで、ランダムサンプリングで観測データにないX = 7.5の確率を見つけることに興味があると仮定します。どうすれば取得できますか。ecdf(X)7.5に相当するパーセンタイルが得られることは知っていますが、探しているものではありません。
アミン

X = 7.5になる確率を見つける」-あなたの問題があります!連続分布がある場合(この場合、実際の答えは「0」)、またはそうでない場合(密度がないため、密度推定を使用すべきではありません)。
Glen_b-モニカの復活2013

1
ecdf(b)-ecdf(a)Pa<バツb<バツ Pバツ=7.5

1
申し訳ありませんが、それはエラーでした。7.5の値のサンプル割合を意味します。最後の2、3の単語を入力していたので、息子は気を散らしました。観測されていないイベントの確率のサンプル推定値はゼロです。事前申請をしたいですか?ポイント推定ではなく、比率の信頼区間が必要でしたか?あなたの実際の問題はまだRの問題ではなく、あなたの問題はあなたが実際に何を望んでいるかを正しく説明しています。質問を編集するか、新しい質問を投稿してください。
グレン_b-モニカを復元

回答:


35

?densityapprox既に線形補間を行うために使用することを指摘しています。適切な関数?approxapproxfun生成することを指摘します:

x <- log(rgamma(150,5))
df <- approxfun(density(x))
plot(density(x))
xnew <- c(0.45,1.84,2.3)
points(xnew,df(xnew),col=2)

ここに画像の説明を入力してください

integrateサンプルの最小値以下の適切な距離から開始することを使用することにより(多分-たとえば4または5の帯域幅dfが一般に適切な距離になります)、に対応するcdfの適切な近似を得ることができますdf


これは面白い。そのようだdf(2.3)時の推定密度関数の値を与えるx=2.3が、どのようなPDFMathematicaでないことは上記の曲線下面積を与えていますx=2.3。これについてはよくわかりませんが、これは単なる推測です。Mathematicaで行ったことを再現できますか?
アミン

上記の私の関数は、「確率密度関数」…「xで評価」のカーネルベースの推定値を明らかに示しています。あなたはそれを望んでいるか、そうではありません。そうしないと、あなたは何をたいのかを説明する必要があります-「この動作を再現する」だけでなく、統計用語で
Glen_b-モニカを復活させる

私は、密度が確率ではないことを誤って意図せずに促進したと思います。誤解を招くつもりはありませんでしたがPDF、Mathematicaであなたが答えで説明したことを行っている(つまり、与えられたX値の密度関数の値を見つけている)と思うなら、私は私の答えを得たと思います。言葉を使うことに多くの混乱があります!
アミン

2
PDFページがそれを言っていることから、それは私が行うのと同じ種類のものを返しますが、この場合の計算で使用する方法はいくらか正確である可能性が高いです(しかし、そのような目的のために追加の精度はほとんど価値がありません)。確率/密度の区別については、こちらこちらをご覧ください。
Glen_b
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.