教えて!gooにおける不適切な投稿への対応について

二つの変数があり、各々従属変数に対して単回帰分析を行うと決定係数が0.5と0.4ぐらいの感じになります。この二つの変数をくっつけてもう少し精度を上げたいのですが、一方は線形なんですが、もう片方が非線形(指数関数)なのです。
たしか、重回帰分析は線形どうしでしかくっつけることができなかったような気がするのですが、どのようにしたらできるでしょうか?
混合モデルとかを使ったらよいのでしょうか???

理論的に考えると
Y=aX1 + bexp(cX2) かY=aX1 + bX1exp(cX2)と思うのです
Yが従属変数X1,X2が変数、a,b,cがそれぞれ係数です。

使用できるソフトはSPSS,SAS,mintab,S-plus,R,excelです。Rでのが使い慣れているのでRでできるとよいのですが、できるならどのソフトでもかまいません。

gooドクター

A 回答 (6件)

#5 です。



> exp(x)をテイラー展開(?)して多項式に変換してもよろしいのでしょうか?

示された式は exp(cX2) かと思いますので、テイラー展開しても c の非線形項は出てくるのでは? c について 1 次の項までしかとらなければ、結局線形回帰と同じこと(つまり exp() の意味がなくなる)かと…。


> 決定係数みたいな、どれだけフィットしているのは何を見ればいいのでしょう?

非線形回帰には線形回帰の R^2 のような単純に説明率と解釈できるような指標はありません。R^2 を拡張したものは一応あります。Nagelkerke の R^2 を調べてみてください。いずれにせよ S-plus (R) の nls 関数ではモデルの適合度や有意性関連の指標は出してくれないようですので、必要なら自分で計算するしかないようです。
ただ、誤差に正規分布を仮定するモデルなら、Residual sum of square が Deviance 統計量および Pearson chi square 統計量になりますので、帰無仮説 H0:このモデルはデータを説明できる、の下で、d.f. = n - p ( p はモデルのパラメータ数)のχ^2 分布に従うことを利用できます。
    • good
    • 0
この回答へのお礼

遅くなって申し訳ありません。無事できました。これでまとめて終われます。
コメントを下さった皆様ありがとうございました。この場を借りてお礼を申し上げたいと思います。
(日本語、間違っていたらすみません)

お礼日時:2005/08/13 23:56

> 理論的に考えると


> Y=aX1 + bexp(cX2) かY=aX1 + bX1exp(cX2)と思うのです

ということであれば、その理論式を使うべきです。そのデータを集めた実分野の理論的、実験的バックグラウンドに基づく情報は尊重すべきです。分析の結果、理論式がデータをうまく説明できるかどうか評価する判断の根拠を与えるものにはなっても、実際的な意味を無視して統計が独り歩きしては本末転倒です。

上式は変数変換してもパラメータに関して線形な形にはできませんので、非線形回帰分析を行ってください。SAS では proc nlin で、 S-plus では(ということは R も? 未確認…)nls 関数をつかって実行できます。SPSS, minitab は知りません。最小二乗解でパラメータの推定値を得るだけなら、精度はあまり良くありませんが Excel でもソルバーを使うとできます。非線形回帰分析について書いてある SAS と S-plus の参考書を下記に挙げておきます。
線形回帰と比べて、もちろん独特な部分はありますが、それほど難しくなるわけではありません(計算は桁違いに難しいですが、人間がやるわけではありませんから…)。ぜひ使ってみてください。


> 混合モデルとかを使ったらよいのでしょうか???

混合モデルは線形モデルの一種で、モデルの一部のパラメータを確率変数(変量効果)と考えるものですので、今回の場合は適当ではありません。



参考書

竹内啓監修,SAS による回帰分析,東京大学出版会
W.N.Venables, B.D.Ripley 著,S-plus による統計解析,シュプリンガー・フェアラーク東京

この回答への補足

>上式は変数変換してもパラメータに関して線形な形にはできませんので、非線形回帰分析を行ってください。

いろいろやっているうちに、自分でもいろいろひらめいて、自分の中でとても満足いく結果が出たのですが、これが数学的に正しいことをやっているのかが不安があります。
本題とは少しずれてしまうかもしれませんが、exp(x)をテイラー展開(?)して多項式に変換してもよろしいのでしょうか?

補足日時:2005/08/06 05:29
    • good
    • 0
この回答へのお礼

できました!!! Rのnlsには非線形回帰分析となっていたしこれでいけると思います。
しかし、ひとつ困ったことが、決定係数みたいな、どれだけフィットしているのは何を見ればいいのでしょう?residual sum-of-squaresでいいのですか?

お礼日時:2005/08/08 08:04

すいませんでした.


基本なのになぜ気がつかないないのだろうと
疑問を感じながら回答しましたが
こちらが勘違いしていたみたいです.
余計な手間を取らせてしまって申し訳ないです.

新しい方法ですが
cを仮定して見てはいかがでしょうか.
cを仮定すればX3の導入はできると思います.
自分で適当においたcをつかって重回帰分析を行い求めたYと,
実測値Yの差の2乗和が最小のときのcを用いれば係数cの決定もできると思います.

モデルの妥当性を議論するには向かないかもしれませんが、
式を求めるだけならこれでもいけそうな気がします.
統計的に正しいのかどうかは自信がないですが
参考になれば.
    • good
    • 0

結論からいうと、ご質問のような操作をしても決定係数や精度が劇的に上がる保証はありません。

むしろ、多重共線性など別の問題を引き起こしそうですね。

一般に
y = a + b x1 + u
というモデルに変数を加えて
y = a + b x1 + c x2 + u
というモデルを推定するとします。すると決定係数は上昇しますが、その上昇分は x1 と x2 を単回帰した時のそれよりも小さくなります。これは x1 と x2 に相関があるからです。相関が高いほど相関係数の上昇分は小さくなります。
一度、変数間の相関係数を調べてみてはいかがでしょうか。


因みに。
最小自乗法を用いた場合、
y = a + b x1
の回帰残差 e を考え、
e = c x2
とした回帰残差 v を考えると、この v は
y = a + b x1 + c x2
から得られた回帰残差に一致します。
したがって、変数を加えるということは、他の変数で説明されていなかった部分を説明する、という意味であることが分かります。
逆に言えば、変数を加えても精度があまり上がらないということは、加えた変数に新しい情報があまりない、ということになるでしょう。
    • good
    • 0

質問の式についてですが,


Y,X1,X2は手元にある実測値
a,b,cを求める問題と解釈してもよろしいでしょうか?

まず,
b*exp(c*X2)
についてですが
b*exp(c*X2)=b*exp(c)*exp(X2)
ですから
定数cをおく必要はありませんね.
b*exp(X2)と考えます.
非線形~についてですが,変数X3を導入して
X3=X1*exp(X2)
とすれば
上の式は
Y=a*X1+b*X3
で線形の式になり普通に重回帰分析できると思います.

この回答への補足

早速返答、ありがとうございます。
おーと思ってやってみたのですが、いまいちうまくできません。
期待通りになってくれていません。
数学的に見る限り間違っていないと思うのですが。

> 質問の式についてですが,Y,X1,X2は手元にある実測値
> a,b,cを求める問題と解釈してもよろしいでしょうか?
ハイその通りです。

通常指数関数の単回帰をするときlog(Y)=aXとしてやりますよね。
ご指摘の通りはじめにexp(X)としやるのと比べると結果がぜんぜん違ってしまいます。
これが全く向上が見られない理由に思います。

補足日時:2005/08/05 01:45
    • good
    • 0
この回答へのお礼

今気付いたのですが
b*exp(c*X2)=b*exp(c)*exp(X2)
は間違いで
exp(c+X)=exp(c)*exp(X)ではないのでしょうか?

お礼日時:2005/08/05 01:56

指数関数だとわかっているのなら、


logを取って線形に直せばいいことでは?

この回答への補足

これはY=a*exp(X)の項がひとつのときで単回帰分析のやり方ですよね。

補足日時:2005/08/05 01:46
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

gooドクター

人気Q&Aランキング