2016-11-21 61 views
1

負の二項モデルを実行する際に問題があります。基本的に、私は動物数のデータセットを持っています。しかし、その努力は異なるので、私は1日あたりの動物の割合を計算することができます。私は非常に大きなデータセット(> 100000回の観測)でこれをやっています。あなたが知っているのであれば、私の質問をカバーする他のトピックは見つけられませんでした。非整数と整数の使用:非整数による警告ですが、モデルは整数では実行されません

モデルを自分のデータに合わせようとすると、いくつかの問題が発生します。私は金利

​​

と負の二項モデルを実行して、私は次の警告メッセージを取得し、次のいずれか

>Warning messages: 
1: In dpois(y, mu, log = TRUE) : non-integer x = 25.913718 
2: In dpois(y, mu, log = TRUE) : non-integer x = 5.457385 
3: In dpois(y, mu, log = TRUE) : non-integer x = 2.195133 
4: In dpois(y, mu, log = TRUE) : non-integer x = 2.721088 
5: In dpois(y, mu, log = TRUE) : non-integer x = 6.971678 
6: In dpois(y, mu, log = TRUE) : non-integer x = 21.863799 
7: In dpois(y, mu, log = TRUE) : non-integer x = 5.300733 
8: In dpois(y, mu, log = TRUE) : non-integer x = 7.157865 
9: In dpois(y, mu, log = TRUE) : non-integer x = 14.117588 
10: In dpois(y, mu, log = TRUE) : non-integer x = 6.505993, etc. 

または私はこれがオフセット

> m2<-glm.nb(Count ~ Par1+Par2+...+Par7+Par8+offset(Effort),data=data) 

でモデルを実行します次のエラーを返します。

> Error: no valid set of coefficients has been found: please supply starting values 
In addition: Warning messages: 
1: glm.fit: algorithm did not converge 
2: glm.fit: fitted rates numerically 0 occurred 

私はすでに第1モデルの係数を第2モデルの開始係数として提供しようとしましたが、これは機能しません。また、パッケージpscl doesnt workを使用するか、反復回数を増やしてください。これは私のデータ(1つの種)のサブセットであり、ごくわずかしかゼロではありません。

提案がありますか?私は実際にこれをモデリングする第2の方法が適切な方法だと感じていますが、このモデルをどのように実行させるかわかりません。何か案は?大変感謝しています。

答えて

1

Rates = Count/Effortとすると、ほぼ確実に次のいずれかが必要です。どちらのレートに合わせて、重み付け変数として努力を使用します。

glm.nb(Rates ~ *, weights=Effort, data=data) 

または、カウントに合わせて、オフセットとしてログ(努力)を使用します。

glm.nb(Count ~ * + offset(log(Effort)), data=data) 

参照オフセットについてもmy answer on CrossValidatedポアソン/ネガティブ二項モデルでは、

+0

私自身の理解のために:応答変数のログを見ているので、オフセットのログもモデル化する必要がありますか? 2番目の方法は完全に動作するように見えますが、警告やモデルの実行に問題はありません。本当にありがとう! – Tommele

+0

そうです。 2つの製剤は同等であるので、第1の方法も有効であるはずである。 –

+0

いいです、完璧です。何らかの理由で、最初の方法は私にとっては非常に低いp値を持つ別の結果を与えます。多分、これは負の二項分布であり、glm.nbはまずシータを見つけなければならないのですか? – Tommele

関連する問題