Rでような回帰を適合させる方法は?


9

測定された変数が離散正整数(カウント)であるいくつかの時系列データがあります。時間の経過とともに上昇傾向があるかどうかをテストしたいと思います。独立変数(x)の範囲は0〜500、従属変数(y)の範囲は0〜8です。

y = floor(a*x + b)通常の最小二乗(OLS)を使用してフォームの回帰を当てはめることで、これに答えると思いました。

R(またはPython)を使用してこれを行うにはどうすればよいですか?そのための既存のパッケージはありますか、それとも自分のアルゴリズムを記述した方がよいですか?

PS:これは理想的な手法ではないことはわかっていますが、実際に理解できる比較的単純な分析を行う必要があります。私の背景は数学ではなく生物学です。測定された変数の誤差、および時間の経過に伴う測定値の独立性に関する仮定に違反していることを知っています。


5
この形式の回帰を試みることは数学的に自然ですが、その背後に統計的誤りが潜んでいます。エラー項は予測値と強く相関します。これは、OLSの想定に対するかなり強力な違反です。代わりに、Greg Snowの回答で提案されているように、カウントベースの手法を使用してください。(ただし、この質問は実際の考えと賢さを反映しているため、喜んで賛成しました。ここで質問していただきありがとうございます!)
whuber

回答:


11

nls(非線形最小二乗)関数を使用して、指定したモデルに適合させることもできますがR、これは多くの仮定に違反し、おそらくあまり意味がありません(予測される結果はステップの周りでランダムであると言っています)関数、スムーズに増加する関係の周りの整数値ではありません)。

カウントデータを近似するより一般的な方法は、のglm関数を使用してポアソン回帰を使用することですR。ヘルプページの最初の例はポアソン回帰ですが、統計に精通していない場合は、統計学者に相談して確認することをお勧めしますあなたが物事を正しく行っていること。

8の値が絶対最大値である場合(これだけではなく、より高い数を表示することは不可能です)、比例オッズロジスティック回帰を検討することができます。これを行うためのツールがいくつかありますがR、あなたがこれをしたいなら、本当に統計学者を巻き込むべきです。


「予測された結果は、滑らかに増加する関係の周りの整数値ではなく、階段関数の周りでランダムであると言っている」---それは私が考慮しなかったものです。結局、私はglmによるポアソン回帰を使いました。それは完璧な選択ではありませんが、私が必要とするものには「十分」です。
afaulconbridge、2012年

10

グレッグの提案が最初に試すことであることは明らかです:ポアソン回帰は多くの多くの具体的な自然モデルです状況。

しかし、あなたが丸みを帯びたデータを観察する場合などで発生する可能性が示唆されているモデル: IID通常のエラーと。

Yi=axi+b+ϵi,
ϵi

これで何ができるのか見てみるのも面白いと思います。標準正規変数の累積分布関数を示します。もし、次いで 使い慣れたコンピュータ表記を使用します。FϵN(0,σ2)

P(ax+b+ϵ=k)=F(kb+1axσ)F(kbaxσ)=pnorm(k+1axb,sd=σ)pnorm(kaxb,sd=σ),

データポイント観察します。対数尤度は、 これは最小二乗と同じではありません。数値的な方法でこれを最大化することができます。これがRのイラストです:(xi,yi)

(a,b,σ)=ilog(F(yib+1axiσ)F(yibaxiσ)).
log_lik <- function(a,b,s,x,y)
  sum(log(pnorm(y+1-a*x-b, sd=s) - pnorm(y-a*x-b, sd=s)));

x <- 0:20
y <- floor(x+3+rnorm(length(x), sd=3))
plot(x,y, pch=19)
optim(c(1,1,1), function(p) -log_lik(p[1], p[2], p[3], x, y)) -> r
abline(r$par[2], r$par[1], lty=2, col="red")
t <- seq(0,20,by=0.01)
lines(t, floor( r$par[1]*t+r$par[2]), col="green")

lm(y~x) -> r1
abline(r1, lty=2, col="blue");

丸め線形モデル

赤と青では、線はそれぞれ、この尤度の数値最大化によって検出され、最小二乗です。緑色の階段は、最尤から見つかっです...これは、最小2乗を使用して、を0.5だけ平行移動して、ほぼ同じ結果を得ることができることを示唆しています。または、その最小二乗はモデルにうまく適合します ここで、は最も近い整数です。丸められたデータが頻繁に出会うため、これは既知であり、広範囲にわたって研究されていたと確信しています...ax+bax+ba,bb

Yi=[axi+b+ϵi],
[x]=x+0.5

4
+1私はこの手法が大好きで、数年前に実際にそれに関する論文をリスク分析ジャーナルに投稿しました。(一部のリスクアナリストは、間隔値のデータに非常に関心があります。)これは、対象ユーザーにとって「数学的すぎる」として拒否されました。:-(一つのヒント:。。。数値法を使用した場合、それは解決のための開始値を供給良いに常に良い考えですが、数値オプティマイザで「ポリッシュ」そして、これらの値を得るために、生データにそれらをOLSを適用することを検討
whuber

はい、これは良い提案です。実際、その場合、「機能する」ことを強調するためにリモート値を選択しますが、実際には、データに応じて、非常に平坦な領域から開始しないようにするための唯一の解決策はあなたの提案です...
Elvis
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.