任意の分布からp値を計算する


14

これがばかげた質問ではないことを願っています。任意の連続分布があるとしましょう。統計もあり、この任意の分布を使用して、この統計のp値を取得したいと思います。

Rでは、正規分布のように、分布が組み込み分布の1つに適合する限り、これを行うのは簡単です。しかし、そのような仮定をすることなく、任意の分布でこれを行う簡単な方法はありますか?

回答:


12

あなたが持っている場合は、累積分布関数 、そして計算したp与えられた統計の-value Tは単純である1 - F T 。これは、あなたが持っている場合はR.で簡単です確率密度関数を他の一方で、その後、F X = X - P T Dのトン。この積分は、分析的または数値的に見つけることができます。Rでは、これは次のようになります。FpT1F(T)F(x)=xp(t)dt

dF <- function(x)dnorm(x)
pF <- function(q)integrate(dF,-Inf,q)$value 

> pF(1)
[1] 0.8413448
> pnorm(1)
[1] 0.8413447

integrateより正確に調整することができます。もちろん、積分がうまく動作しない特定のケースではこれは失敗するかもしれませんが、密度関数の大部分で機能するはずです。

もちろんpF、試してみるパラメーター値がいくつかあり、そのdFたびに再定義したくない場合は、にパラメーターを渡すことができます。

dF <- function(x,mean=0,sd=1)dnorm(x,mean=mean,sd=sd)
pF <- function(q,mean=0,sd=1)integrate(dF,-Inf,q,mean=mean,sd=sd)$value 

> pF(1,1,1)
[1] 0.5
> pnorm(1,1,1)
[1] 0.5

もちろん、@ suncoolsuで詳細に説明されているように、モンテカルロ法も使用できます。これは、統合のためのもう1つの数値法になります。


特に統合する機能に制限がない場合、あなたの方法は私が提案した方法よりもはるかに簡単だと思います。私は数値技術を知りません。R.
suncoolsu

はい、これは私の現在の能力に沿っていると思います。ありがとう!
アランH.

実際、これらの機能がどのように機能するのか、私はまったく従いません。例では正規分布の結果が得られますが、確率密度関数はどこに挿入しますか?
アランH.

(テストを行ったが、データはリモートで正常ではないようだ。)
アランH.

@Alan H.、密度関数をに差し込みますdF。これはdF、指定された引数で密度関数値を返すはずです。
mpiktas

9

はい、任意の分布を使用して統計の p値を取得することができます。理論的および実際的には、この式によって(一方的な)p値を計算できます。

pvalue=P[T>Tobserved|H0holds]

TTobserved

TH0T

ここで行う唯一の仮定は、T のヌル分布を知っていることです(これは標準のR乱数ジェネレーター形式ではない場合があります)。それだけです-ヌル分布を知っている限り、p値を計算できます。


1
これは、p値が非常に人気があり、誤解されやすい理由の1つです。(私見)
-suncoolsu

わかりました、これは理にかなっています。ヌル分布の適切な推定であると信じるものがあります。これをRで実装する方法に関するヒントはありますか?ありがとう!
アランH.

1
@Alan-Null分布からランダムな値を生成する方法を知っていますか?はいの場合、-T = c(T1、...、TN)がヌル分布から引き出されると仮定します-p値= sum(T> T_obs)/ N。生成方法がわからない場合は、Metropolis SamplingまたはGibbs Samplingを使用してT1 ... TNを取得する必要がありますが、非常に実行可能です。
-suncoolsu
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.