データがRのポアソン分布に従うかどうかを知る方法は?


25

私は学部生で、確率クラスのプロジェクトを持っています。基本的に、私は一連の年の間私の国に影響を与えたハリケーンに関するデータセットを持っています。

私の確率ブック(Rの確率と統計)には、データがポアソン分布に従うかどうかを確認する方法の(完全ではない)例があり、これらの3つの基準が守られていることを証明しようとします:(私の本120(基準)122-123例)

1-重複しない間隔での結果の数は独立しています。つまり、時間間隔(0、t]の結果の数は、時間間隔(t、t + h]、h> 0の結果の数とは無関係です。

2-十分に短い間隔での2つ以上の結果の確率は実質的にゼロです。つまり、hが十分に小さい場合、間隔(t、t + h)で2つ以上の結果を得る確率は、同じ時間間隔で1つまたはゼロの結果を得る確率と比較して無視できます。

3-十分に短い間隔または小さな領域での正確に1つの結果の確率は、間隔または領域の長さに比例します。言い換えると、長さhの区間における1つの結果の確率はlambda * hです。

ただし、基準3は「演習」として残されています。

A-誰かが私のデータセットがポアソン分布に従うかどうかを確認するためのより「簡単な」方法があるかどうか教えてもらえますか?

B-誰かが私に基準1と3をある種の例で説明してもらえますか(Rの場合は素晴らしい)。

ありがとう!

注:長い投稿で申し訳ありません。また、データを変換して、次のようなテーブルを作成する必要があります。

  number of hurricanes       | 0 | 1 | 2  etc.
  -----------------------------------------
  total years that have      |   |   |
  that number of hurricanes  |   |   |

あなたの本の基準は間隔データです。これは、ハリケーンがストロークする日付があった場合に役立ちます。さらに、これらの基準は定率ポアソンプロセスに関するものであり、ハリケーンのケースではないことは明らかです(またはそう願っています)。カウントデータがポアソン分布に従っているかどうかを確認するための最初の基本的なアプローチは、カイ2乗検定です。
エルビス

回答:


33

分布がポアソン分布とわずかに異なる方法は無限にあります。一連のデータポアソン分布から引き出されていることを識別することはできません。あなたができることは、ポアソンで見るべきものとの矛盾を探すことですが、明らかな矛盾がないからといってポアソンにはなりません。

ただし、これらの3つの基準をチェックすることであなたが話しているのは、データが統計的手段(つまりデータを見る)によってポアソン分布から来ていることをチェックするのではなく、データが生成されるプロセスがポアソン過程の条件; 条件がすべて保持またはほぼ保持されている場合(およびデータ生成プロセスの考慮事項である場合)、ポアソンプロセスから、またはポアソンプロセスに非常に近いものを持つことができます。ポアソン分布。

しかし、条件はいくつかの点で成り立ちません...そして、真実であることから最も遠いのは3番です。ポアソンプロセスを主張する理由に基づいた特定の理由はありません。ポワソンから。

そこで、データ自体を調べることから生じる統計的議論に戻ります。データは、分布がそのようなものではなく、ポアソンであることをどのように示しますか?

最初に述べたように、あなたができることは、データがポアソンである基礎となる分布と明らかに矛盾していないかどうかをチェックすることですが、それはそれらがポアソンから引き出されたことを教えてくれませんない)。

このチェックは、適合度テストを介して行うことができます。

言及されたカイ二乗はそのようなものですが、私はこの状況でカイ二乗検定をお勧めしません**; 興味深い偏差に対して低いパワーを持っています。あなたの目的が良い力を持つことであるならば、あなたはそのようにそれを得ないでしょう(あなたが力を気にしないなら、なぜあなたはテストしますか?)。その主な価値はシンプルさにあり、教育的価値があります。それ以外では、適合度テストとしては競争力がありません。

**後の編集で追加:これが宿題であることは明らかであるため、データをチェックするためのカイ2乗検定を行うことが期待される可能性は、ポアソンと矛盾しません。最初のポアソンネスプロットの下で行われる、カイ二乗適合度テストの例を参照してください。


多くの場合、人々は間違った理由でこれらのテストを行います(たとえば、「したがって、データがポアソンであると仮定するデータで他の統計的なことをしても構いません」と言いたい場合)。そこにある本当の質問は、「それはどれほどひどく間違っているだろうか?」です。...そして、適合テストの良さは、その質問の助けにはなりません。多くの場合、その質問に対する答えは、せいぜいサンプルサイズに依存しない(/ほぼ独立)ものです。また、場合によっては、サンプルサイズがなくなる傾向があります。小さいサンプル(仮定の違反によるリスクが最も大きい場合が多い)。

ポアソン分布をテストする必要がある場合、いくつかの合理的な選択肢があります。1つは、AD統計に基づいてAnderson-Darling検定に似た何かをすることですが、nullの下でシミュレートされた分布を使用します(離散分布の双子の問題を考慮し、パラメーターを推定する必要があります)。

より簡単な代替手段は、適合度のスムーズテストです。これらは、nullの確率関数に関して直交する多項式のファミリを使用してデータをモデリングすることにより、個々の分布用に設計されたテストのコレクションです。低次(つまり興味深い)の代替は、ベースの多項式より上の多項式の係数がゼロと異なるかどうかをテストすることによってテストされ、これらは通常、テストから最低次の項を省略することでパラメーター推定を処理できます。ポアソンにはそのようなテストがあります。必要に応じて参照を掘り下げることができます。

n1r2ログバツk+ログkk

Rで行われた計算(およびプロット)の例を次に示します。

y=rpois(100,5)
n=length(y)
(x=table(y))
y
 0  1  2  3  4  5  6  7  8  9 10 
 1  2  7 15 19 25 14  7  5  1  4 

k=as.numeric(names(x))
plot(k,log(x)+lfactorial(k))

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

ポアソンの適合度検定に使用できると示唆した統計は次のとおりです。

n*(1-cor(k,log(x)+lfactorial(k))^2)
[1] 1.0599

もちろん、p値を計算するには、nullの下で検定統計量の分布もシミュレートする必要があります(値の範囲内でゼロカウントをどのように扱うかについては説明していません)。これにより、かなり強力なテストが生成されます。他にも多くの代替テストがあります。

以下は、幾何分布(p = .3)からのサイズ50のサンプルでポアソンネスプロットを行う例です。

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

ご覧のように、非線形性を示す明確な「ねじれ」が表示されます


ポアソンネスプロットの参照は次のようになります。

デビッドC.ホアグリン(1980)、
「ポアソンネスプロット」、
アメリカ統計学者
巻。34、No。3(8月、)、pp。146-149

そして

Hoaglin、D. J.及びテューキー(1985)、
「9.離散分布の形状を確認」、
データテーブル、動向と形状探索
(Hoaglin、Mosteller&テューキー編)、
ジョン・ウィリー&サンズ

2番目の参照には、小カウントのプロットの調整が含まれています。あなたはおそらくそれを組み込むことを望むでしょう(しかし、私は手への参照を持っていません)。


カイ二乗適合度検定の例:

カイ二乗適合度の実行は別として、通常は多くのクラスで行われると予想される方法(私が行う方法ではありません):

1:データから始めます(これを上記の 'y'でランダムに生成したデータとして、カウントのテーブルを生成します:

(x=table(y))
y
 0  1  2  3  4  5  6  7  8  9 10 
 1  2  7 15 19 25 14  7  5  1  4 

2:MLで近似されたポアソンを仮定して、各セルの期待値を計算します。

 (expec=dpois(0:10,lambda=mean(y))*length(y))
 [1]  0.7907054  3.8270142  9.2613743 14.9416838 18.0794374 17.5008954 14.1173890  9.7611661
 [9]  5.9055055  3.1758496  1.5371112

3:終了カテゴリは小さいことに注意してください。これにより、カイ2乗分布は検定統計量の分布の近似としてあまり良くありません(一般的なルールでは、少なくとも5の期待値が必要です。ただし、多くの論文がそのルールを不必要に制限していることを示しています。近いですが、より一般的なアプローチはより厳しいルールに適合させることができます)。隣接するカテゴリを折りたたむことで、最小期待値が少なくとも5を下回らないようにします(10を超えるカテゴリのうち1に近い予想カウントダウンを持つ1つのカテゴリはそれほど悪くはなく、2つはかなり境界線です)。また、「10」を超える確率についてはまだ考慮していないため、それも組み込む必要があります。

expec[1]=sum(expec[1:2])
expec[2:8]=expec[3:9]
expec[9]=length(y)-sum(expec[1:8])
expec=expec[1:9]
expec
sum(expec) # now adds to n

4:同様に、観察対象のカテゴリを折りたたみます:

(obs=table(y))
obs[1]=sum(obs[1:2])
obs[2:8]=obs[3:9]
obs[9]=sum(obs[10:11])
obs=obs[1:9]

OE2/E

print(cbind(obs,expec,PearsonRes=(obs-expec)/sqrt(expec),ContribToChisq=(obs-expec)^2/expec),d=4)
  obs  expec PearsonRes ContribToChisq
0   3  4.618   -0.75282      0.5667335
1   7  9.261   -0.74308      0.5521657
2  15 14.942    0.01509      0.0002276
3  19 18.079    0.21650      0.0468729
4  25 17.501    1.79258      3.2133538
5  14 14.117   -0.03124      0.0009761
6   7  9.761   -0.88377      0.7810581
7   5  5.906   -0.37262      0.1388434
8   5  5.815   -0.33791      0.1141816

バツ2=EO2/E

(chisq = sum((obs-expec)^2/expec))
[1] 5.414413
(df = length(obs)-1-1) # lose an additional df for parameter estimate
[1] 7
(pvalue=pchisq(chisq,df))
[1] 0.3904736

診断とp値の両方は、ここで適合していることを示しています。実際に生成したデータはポアソンであるため、これは予想通りです。


編集:ポアソンネスプロットについて説明し、SASおよびMatlabでの実装について説明しているRick Wicklinのブログへのリンクです。

http://blogs.sas.com/content/iml/2012/04/12/the-poissonness-plot-a-goodness-of-fit-diagnostic/


編集2:私がそれを正しく持っている場合、1985年の参考文献からの修正ポアソンネスプロットは次のようになります*:

y=rpois(100,5)
n=length(y)
(x=table(y))
k=as.numeric(names(x))
x=as.vector(x)
x1 = ifelse(x==0,NA,ifelse(x>1,x-.8*x/n-.67,exp(-1)))
plot(k,log(x1)+lfactorial(k))

*実際にインターセプトも調整しますが、ここでは調整していません。プロットの外観には影響しませんが、参照とは別の方法(信頼区間など)を実装する場合は、アプローチとはまったく異なる方法で注意する必要があります。

(上記の例では、外観は最初のポアソンネスプロットからほとんど変わりません。)


2
返信ありがとうございます!しかし、私はあなたが話しているトピックを知りません。私はQQplotがこれに一握りになるかどうか疑問に思っていました。どう思いますか?あなたが与える選択肢から、あなたは私が使うべきだと思う?良さは合っていますか?あなたが話している情報やテストはどこにありますか?(Smooth Test of godness fit)また、誰かがブログのコードにRコードを持っているかどうか知っていましたか?(MatlabまたはSASを知らない)。そして、あなたの答えに感謝します!
シャリフ

また、どの分布が私のデータに「適合する」と思いますか?(私の宿題の一部ではないが、:)を知っていいだろう)
Shariff

パラメーターを仮定せずにポアソンのQ​​Qplotをどのように生成しますか?(パラメータが小さすぎない場合、ポアソンの変換で作業するかもしれません。または、未知のパラメータにMLEを使用できますが、プロットはそうでない場合よりも「より良い」ように見える傾向があります-あなたがそれを行うときの判断)。ポアソンネスプロットは、QQplotのような動作をすることを意図しており、多少同様に解釈されることを意図しています。診断評価が必要な場合は、そのプロットをお勧めします(私たちのいずれかがそれらを見つけることができる場合は、言及された調整が望ましい)。
Glen_b-モニカの復職

私が見たことのない分布データが適合するかもしれないとは言えませんが、それがたくさんなければ、多くの分布がもっともらしいデータを生成したかもしれません。
Glen_b-モニカの復職

さて、QQplotのデータに観測値の推定ラムダを使用することもできますが、少し読むと、QQplotsは連続データに適しているようです(離散データにはあまり適していません)。コードを翻訳できますか?本当にありがたいです!コードがあれば教えてください!(私は:)もちろん、コードのためにあなたの信用を与えるLL)
Shariff

5

カイ二乗適合度検定を実行します。カウントデータの場合goodfit()、vcdパッケージに含まれているものを使用できます。p値が0.05より大きい場合、h0を棄却できないことに注意してください。プロセスはポアソンプロセスです。または、ポアソンプロセスではありません。

# load the vcd package
library(vcd) ## loading vcd package

# generate two processes for test
set.seed(2014);y=rpois(200,5)
set.seed(2014);y=rnorm(100, 5, 0.3) # goodfit asks for non-negative values
# output the results
gf = goodfit(y,type= "poisson",method= "ML")
plot(gf,main="Count data vs Poisson distribution")
summary(gf)

# to automatically get the pvalue
gf.summary = capture.output(summary(gf))[[5]]
pvalue = unlist(strsplit(gf.summary, split = " "))
pvalue = as.numeric(pvalue[length(pvalue)]); pvalue

# to mannualy compute the pvalue
chisq = sum(  (gf$observed-gf$fitted)^2/gf$fitted )

df = length(gf$observed)-1-1
pvalue = pchisq(chisq,df)
pvalue

3
匿名ユーザーが次のコメントを(編集の試行として)投稿しました: " pchisq累積確率のみを計算します(Pバツバツ)一方、p値は Pバツバツ" pvalue=1-pchisq(chisq,df);;&" p値を手動で計算した場合の結果は、goodfit関数が提供するp値とは異なります。これがなぜそうなのかわかりません。」
グング-モニカの復職
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.