No.09121 訂正 y=ax^3の関係をGLMで解析 【RとGLMで悶々】 2009/02/05(Thu) 08:19
すみません,y=ax^3(aは定数)でした。
No.09125 Re: y=x^3の関係をGLMで解析 【青木繁伸】 2009/02/05(Thu) 10:02
y = ax^3 は,単なる多項式回帰ですよね。glm をやるまでもないでしょう。
y = ax^3+bz で,z がダミー変数でも同じ。
ついでですが,
glm(y~x^3+z, family=gaussian)
と
glm(y~I(x^3)+z, family=gaussian)
は別物だというのは,了解済みですか?
No.09129 Re: y=ax^3の関係をGLMで解析 【RとGLMで悶々】 2009/02/05(Thu) 13:49
青木先生,ご教示いただきありがとうございます。最後に示していただいた二つについては存じ上げませんでした。差し支えなければ後学のためにどのような場面で使い分けるのか教えていただければ幸いです。
質問の説明不足でしたので,追加で質問させて下さい。
Q1 体重と全長の3乗が比例関係であっても,y = ax^3+bz で回帰してよいのでしょうか。
Q2 体重以外の項目(ある体の一部分の重さあるいは長さ)で,全長とはアロメトリーの関係にありますが,成長によって発達してくるために必ずしも全長の3乗 に比例しない場合があります(例えば y=ax^1.5)。この項目を場所間で比較するときには,最初の質問で挙げた2つの方法(ガンマ分布を仮定した生データでのGLM,対数変換したデータ でのGLM)が良いと思ったのですが,どちらも不適切でしょうか。
たびたび質問して申し訳ありませんが,ご教授のほどよろしくお願いいたします。
No.09130 Re: y=x^3の関係をGLMで解析 【青木繁伸】 2009/02/05(Thu) 14:48
> 差し支えなければ後学のためにどのような場面で使い分けるのか教えていただければ幸いです。
? formula 及び,? I で詳細な説明が得られます
> Q1 体重と全長の3乗が比例関係であっても,y = ax^3+bz で回帰してよいのでしょうか。
(x^3) を前もって計算しておいて,例えばそれを w に付値しておけば,y = ax^3+bz は,y = aw+bz と同じでしょう?
> Q2 体重以外の項目(ある体の一部分の重さあるいは長さ)で,全長とはアロメトリーの関係にありますが,成長によって発達してくるために必ずしも全長の3乗に比例しない場合があります(例えば y=ax^1.5)
私は glm で family=Gamma(log) とすることのメリットがわかりません(評価する能力がありません)
xの3乗とは限らないということなら,y = ax^b+cz として,何乗になるかも求めればよいのではないかとも思います
なお,すでにご存じとは思いますが,北大のkuboさんのページなども役に立つのではないかと思います。
http://hosho.ees.hokudai.ac.jp/~kubo/ce/FrontPage.html
No.09131 ありがとうございました 【RとGLMで悶々】 2009/02/05(Thu) 15:05
青木先生,貴重なご回答ありがとうございました。何乗になるかも求めることができる,という発想がありませんでし た。やってみます。基本的なことが理解できていないことを痛感しました。Rのヘルプをちゃんと勉強するようにいたします。北大の久保先生のページも一通り 拝見しましたが,理解不足でしたので再勉強したいと思います。このたびはありがとうございました。
No.09132 Re: y=x^3の関係をGLMで解析 【青木繁伸】 2009/02/05(Thu) 15:51
glm(y~x, d, family=Gamma(log)) と lm(y~I(x^3), d)
の比較をしてみました。glm(y~x, d, family=Gamma(log)) が,実際は何をしているか,ちょっと調べないとわかりませんが。set.seed(1234)図をクリックすると,原寸で表示します
x <- rnorm(100, mean=60, sd=10)
y <- jitter(x^3/50^3, amount=0.2)
d <- data.frame(x=x, y=y)
ans.lm <- lm(y~I(x^3), d)
summary(ans.lm)
plot(y~x)
x2 <- seq(min(d$x), max(d$x), length=1000)
d2 <- data.frame(x=x2)
y2 <- predict(ans.lm, newdata=d2)
lines(x2, y2, col="red")
points(fitted.values(ans.lm)~d$x, pch=19, cex=0.4, col="red")
strings <- capture.output(ans.lm)
text(34, seq(4.9, 2.9, by=-0.18)[1:7], strings, pos=4)
#
ans.glm <- glm(y~x, d, family=Gamma(log))
summary(ans.glm)
plot(y~x)
x2 <- seq(min(d$x), max(d$x), length=1000)
d2 <- data.frame(x=x2)
y2 <- predict(ans.glm, newdata=d2)
lines(x2, exp(y2), col="blue")
points(fitted.values(ans.glm)~d$x, pch=19, cex=0.4, col="blue")
strings <- capture.output(ans.glm)
text(34, seq(4.9, 2.9, by=-0.18)[1:10], strings, pos=4)
No.09133 ありがとうございます 【RとGLMで悶々】 2009/02/05(Thu) 16:38
青木先生,比較までしていただいてありがとうございました。図を見比べると,やはり lm(y~I(x^3), d) の方がよく当てはまっているようです。大変勉強になりました。ありがとうございました。
● 「統計学関連なんでもあり」の過去ログ--- 042 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る