No.05272 0項の切れた分布(zero-truncated distribution)の回帰  【あみ】 2008/01/07(Mon) 03:02

質問させてください。

データの分布型を調べたいのです。
データはカウントデータでして二項分布,ポアソン分布,負の二項分布のどれに最も適合するかを調べようとしています。

R で glm などの回帰関数を用いてそれぞれの分布モデルで AIC を求め,モデル選択で分布型を評価すればいいのではないかと思ったのですが,問題はサンプリングの関係でデータの 0 項が無い(つまり >=1)のです。

このような場合はどうすれば良いのでしょうか?

0 の無いまま glm() とするのでしょうか?あるいは何らかの方法で 0 を補間するのでしょうか?zero-infrated な場合は zeroinfl() や hurdle() を使えば良いみたいなのですが,これらは 0 なしだとエラーが出てしまうようです。

ご教授いただければ幸いです。(統計・R ともに極初心者です。)

(補足)
データはある動物の群れあたりの個体数で,群れを無作為に探索して見つけたら個体数をカウントという方法のため 0 がありません。

No.05282 Re: 0項の切れた分布(zero-truncated distribution)の回帰  【青木繁伸】 2008/01/07(Mon) 18:41

二項分布,ポアソン分布,負の二項分布,いずれもデータの生成機序が決まっています。
生成機序が異なるデータがそれらに近くても,分布型をそれらであると決めても意味がないのではないかと思います。
0に対する度数が0に近いと予想(予測)され,分布の形が一山型ならば,それらの分布の極限形(すなわち正規分布)で近似するということもできましょうが,0に対する分布がとても0であるとかていできないほどだと,これらの分布ではあり得ないことが明らかでしょう。

群れの個体数の分布ということは,その分野では一般的と思われ,何らかの分布が特定されているのではないかなあとも思います(ひの さん,あたりがご存じかも知れませんね)

No.05288 Re: 0項の切れた分布(zero-truncated distribution)の回帰  【あみ】 2008/01/08(Tue) 12:07

青木先生アドバイスいただき大変有り難うございます。

>二項分布,ポアソン分布,負の二項分布,いずれもデータの生成機序が決まっています。
>生成機序が異なるデータがそれらに近くても,分布型をそれらであると決めても意味がないのではないかと思います。
なるほど。しかし逆にデータの傾向からその生成プロセスを予測する
というアプローチはできないでしょうか?

生 物の分布様式を調べる際に昔から使われている方法で,調査値に方形枠を無作為に置き枠内の個体数をカウントしたデータの頻度分布は,生物が調査地にランダ ムに分布していればポアソン分布,集中分布していれば負の二項分布,互いに距離を置いて分布(ナワバリ等)すれば二項分布に近くなると経験的にいわれてい ます。

そこで改めてお訊きしたいのですが,このように分布型を求めること自体が目的の場合でもデータから分布型を決めるのはおかしいのでしょうか?

(補足)
従来の研究例ではデータから分布型を求める際にカイ二乗検定を用いて分布型の適合判定をしていました。(有意差なしのときその分布型を採用します)
0 なしデータについても,0-truncated ポアソン分布 (または負の二項分布) のパラメータを最尤推定する方法があり,これから求めた理論分布とデータをカイ二乗検定で比較しています。
ただ用途からすると,検定して "有意差が無い" とするよりも,モデル選択で "こちらの分布がより適切" とするほうが方法論として正しいと思い,AIC が計算できる glm() のような方法を探している次第です。
みなさま長文失礼しました。

No.05289 Re: 0項の切れた分布(zero-truncated distribution)の回帰  【青木繁伸】 2008/01/08(Tue) 12:54

北海道大学の久保さんのページが参考になるかも
http://hosho.ees.hokudai.ac.jp/~kubo/ce/EesLecture2007.html

No.05292 Re: 0項の切れた分布(zero-truncated distribution)の回帰  【ごう】 2008/01/08(Tue) 21:14

久保先生のところでしたら,下がドンぴしゃでしょう。
http://hosho.ees.hokudai.ac.jp/~kubo/ce/FaqModelSelection.html#toc9

No.05294 Re: 0項の切れた分布(zero-truncated distribution)の回帰  【青木繁伸】 2008/01/08(Tue) 21:20

> 下がドンぴしゃでしょう

「使っている分布の異なる統計モデルの AIC は比較可能ですか? 」ですか?
「離散分布vs.離散分布」なのだからオーケーでは?
ドンぴしゃじゃないと思うけど。

http://hosho.ees.hokudai.ac.jp/~kubo/ce/EesLecture2007.html
の第2回あたりじゃないかと思いますが(その他の回も参考になるでしょう)

No.05296 Re: 0項の切れた分布(zero-truncated distribution)の回帰  【あみ】 2008/01/08(Tue) 22:06

青木先生, ごう様 有り難うございます。

実は久保先生のページを見てモデル選択の方法を行おうと思ったのです。
(まさにドンぴしゃだと思いました。授業資料も現在読ませて頂いています)
後は 0-truncated モデルを扱う関数を見つける(あるいは作る?)のみ,というところでつまずいています。

Google や R-site search などでもっと入念に調べてみるとにします。
解決したら報告させていただきます。みなさま有り難うございました。

No.05298 Re: 0項の切れた分布(zero-truncated distribution)の回帰  【ごう】 2008/01/08(Tue) 22:09

>AIC が計算できる glm() のような方法を探している次第
という質問ですから,AICで比較可能という意味です。poisson vs. negative binomialなら離散分布vs.離散分布ですので。
具体的には
model.poisson <- glm(y~1,family=poisson,data)
library(MASS)
model.nb <- glm.nb(y~1,data)
でこれらのAICを比較すると言うことでしょう?

No.05300 Re: 0項の切れた分布(zero-truncated distribution)の回帰  【あみ】 2008/01/08(Tue) 22:35

ごう様

まさにおっしゃる通りの比較方法をやろうとしていました。実際 glm() とglm.nb() をやってみまして AIC も計算されたのですが,

ここで困ったのは, 0-truncated なデータたとえば
data<- rpois(50, lambda=4)
data<- data[data >= 1]
としてできた data の様なデータをそのまま glm() や glm.nb() に入れて問題はないのか?ということなのです。

(情報が小出しになってしまい,申し訳ありませんでした。)

No.05302 Re: 0項の切れた分布(zero-truncated distribution)の回帰  【あみ】 2008/01/09(Wed) 01:30

もしかしたら解決したかもしれません。

R の hurdle() という関数はカウントデータの zero部分と 1<= の部分 (count 部分) に別々なモデルを当てはめてパラメータの最尤推定をするみたいです。
つまり2つのモデルで別々に最大対数尤度を計算しており, 1<= の部分モデルの最大対数尤度とパラメータ数を使えば,1<= の部分モデルのみの AIC を算出できそうです。

ちなみに count モデルの最大対数尤度は hurdle() 出力の,$optim$count$value に格納されているようです。

試しにやってみると,glm() や glm.nb() で計算するより AIC が小さくなったので,より適当な関数なのかもしれません。
ただ 0 なしデータそのままだとエラーとなるので,ダミーとして適当な数の 0 をデータに追加してやる必要があります。

ただ残念ながらこの方法で zero-truncated データを扱うのが統計学的に妥当な方法なのかどうか,今の私の知識では判断できません。
この点どなたか検証してくださればとても助かります。
大変長々と失礼いたしました。

No.05319 Re: 0項の切れた分布(zero-truncated distribution)の回帰  【ごう】 2008/01/09(Wed) 18:25

平均が小さなデータだったんですね。残念ながらこのレベルになると私にはよくわかりません。お役に立てずすみません。
>生物が調査地にランダムに分布していればポアソン分布,
とみなされていたということは従来はあまり厳密に考えていなかったと言うことなのかも知れませんね。

No.05325 Re: 0項の切れた分布(zero-truncated distribution)の回帰  【あみ】 2008/01/10(Thu) 02:08

ごう様 有り難うございます。
>>生物が調査地にランダムに分布していればポアソン分布,
>とみなされていたということは従来はあまり厳密に考えていなかったと言うことなのかも知れませんね。

厳密に, とは何についてのことでしょうか?

No.05328 Re: 0項の切れた分布(zero-truncated distribution)の回帰  【知ったかぶり】 2008/01/10(Thu) 13:24

横から失礼致します.

教えていただきたいのですが,zero-truncated というのは positive という意味でしょうか.例えば,zero-truncated Poisson distribution は, positive Poisson distribution と同義ですか?
これを見ると,ベツモノのようですが.
>data<- rpois(50, lambda=4)
>data<- data[data >= 1]

RのVGAMパッケージには,positive Poisson や positive binomial を扱う関数群が用意されているようです.

No.05330 Re: 0項の切れた分布(zero-truncated distribution)の回帰  【あみ】 2008/01/10(Thu) 18:42

> positive poisson というのはいわゆる普通のポアソン分布とは異なるのでしょうか?

質問させて頂いた truncated distribution は,切れた分布 や 打ち切り分布 とかいわれるもので,
> data <- data[data >= 1]
のように特定の値より先の値が欠損しているデータの分布のことだと私は理解しています。(zero-truncated は1より左側つまりゼロが欠損)
理論的な分布というより実際のデータの都合に合わせた実践的な分布だと思います。
間違っていたらすみません。

No.05336 Re: 0項の切れた分布(zero-truncated distribution)の回帰  【知ったかぶり】 2008/01/11(Fri) 15:28

正のポアソン分布は,カウントが0となる確率が0であるポアソン分布.

http://hosho.ees.hokudai.ac.jp/~kubo/Rdoc/library/VGAM/html/pospoisUC.html

ここにある標本平均を求める数式は,0項の切れたポアソン分布(伊藤・村井,動物生態学研究法,古今書院 1977)のものと同じなので,「正のポアソン分布」イコール「0項の切れたポアソン分布」ということのようです.

vglm関数でfamily=pospoissonとすれば,AICを求めることができるのでは?(たぶん,使ったことないけど)

No.05338 Re: 0項の切れた分布(zero-truncated distribution)の回帰  【あみ】 2008/01/11(Fri) 15:58

有り難うございます。
ということは,0-truncated~ と positive~ は同じものですね。
vglm() 調べてみます。有り難うございました。

No.05369 Re: 0項の切れた分布(zero-truncated distribution)の回帰  【青木繁伸】 2008/01/14(Mon) 09:54

http://hosho.ees.hokudai.ac.jp/~kubo/log/
の,1月12日分が参考になるでしょう

● 「統計学関連なんでもあり」の過去ログ--- 041 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る