負の二項GLMからの「整数でない」警告に対処する方法は?


11

負の二項モデルを使用して、Rのホストに影響を与える寄生虫の平均強度をモデル化しようとしています。私は次のような50以上の警告を受け続けます:

In dpois(y, mu, log = TRUE) : non-integer x = 251.529000

どうすればこれに対処できますか?私のコードは次のようになります:

mst.nb = glm.nb(Larvae+Nymphs+Adults~B.type+Month+Season, data=MI.df)

1
人々が一緒に作業するための再現可能な例を追加してください。
ガン-モニカの回復

5
負の二項GLiMは、一種のカウントモデルです。応答はカウントされることになっています。カウントは、定義により、端数値にすることはできません。そのような価値観はありますか?
ガン-モニカの復活

1
「強度」の意味を明確にできますか?寄生虫の数を、たとえば宿主の表面積で割っていますか?
gung-モニカの回復

1
データは数えていますが、強度を計算して、さまざまなサンプリング作業を考慮する必要がありました。そこにカウントデータが必要であることは理解していますが、同じモデルを使用して整数以外の数値を処理する別の方法がないかと思っていました。強度については、寄生虫の数を感染した宿主の数で割りました。
Natasha、

2
@ナターシャ、それをしないでください。この問題を処理する正しい方法は、Gungの答えによると、圧倒的にありがちです。確実にしたい場合は、質問を編集して、差分サンプリング強度の出所についてもう少し詳しく説明してください。これらのホストの数は異なりますか?サンプリングされた時間の長さ、またはコレクターの数?
Ben Bolker、2015

回答:


9

負の二項式はカウントデータの分布なので、本当に応答変数をカウント(つまり、非負の整数)にする必要があります。そうは言っても、「異なるサンプリングの取り組み」を説明するのが適切です(私はあなたが何を参照しているのか正確にはわかりませんが、その要点はわかります)。ただし、カウントを別の数で除算することはできません。代わりに、他の数値をオフセットとして使用する必要があります。ここでのオフセットとは何かについてのCVについてのよい議論があります:ポアソン回帰でオフセットをいつ使用するのですか? 私の推測では、モデルは次のようになるはずです。

mst.nb = glm.nb(Larvae+Nymphs+Adults~B.type+Month+Season + offset(log(num.hosts)), 
                data=MI.df)

ありがとうございました。私はこれを試し、私がしたことをあなたに伝えるために戻ってきます。
Natasha

OT:何かが足りないのですが、回帰で多くの結果が出るとはどういう意味ですか?
バカバーグ、2015年

@バカバーグ、あなたが何を言っているのかわかりません。
ガン-モニカの回復

コード内の「幼虫+ニンフ+大人〜」の部分。
バカバーグ、2015年

1
@バカバーグ、これはRがどのように機能するかについてです。加算は要素ごとです。3つのベクトルを追加すると、各要素が3つの対応する要素の合計である単一のベクトルが得られます。R式のLHSに複数の応答変数を持たせるには、を使用する必要がありますcbind()
gung-モニカの回復

4

これは警告であり、致命的なエラーではありません。glm.nb()は、結果変数としてカウントを期待しています。これは整数です。データは整数ではありません:251.529。

Rさんは「うーん...これをチェックして、問題がないことを確認してください。正しくないように見えるかもしれません。」私の記憶が正しい場合、SPSSはそのような警告を出しません。

整数がない場合でも、正しいモデルを使用していることが確実な場合は、それを無視して続行してください。


1
私はそれが警告であることを知っています、それを回避する方法があるかどうか私はただ疑問に思っていました。私は整数を持っているので、整数を処理する方法があるかどうかを確認しようとしましたが、異なるモデルで同じコードを使用しています。
ナターシャ

1
抑制警告にここで説明する方法: stackoverflow.com/questions/16194212/...
はKjetil BをHalvorsenの

-2

生態寄生虫学者です。これを処理する方法は、寄生されたホストと寄生されなかったホストを結合し、二項分布を使用することです。以下のコードを参照してください。

また、y変数が2つ以上あるglmを使用したことはありません。寄生虫の幼虫を見たいとしましょう。健康な幼虫の数と寄生虫の#があります。

LhとLpとしましょう

だから例えば

parasitizedL = cbind(Lp、Lh)hist(parasitized)#通常の二項分布w / glmを使用でき、neg.binomialモデルPLarvae1 = glm(parasitizedL〜B.type + Month + Seasonは必要ないかもしれません。 family = binomial、data = MI.df)

次に、段階的なモデルの縮小を行って、どの要素が寄生に影響を与えるかを確認します...以下のリンクを参照してください

http://bbolker.github.io/mixedmodels-misc/glmmFAQ.html

ただし、繰り返しサンプリングを考慮するためにランダム効果が必要であるように見えます。そのため、ランダム効果は(1 |季節/月)になる可能性が高いですが、データを知っているかどうかはわかりません

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.