No.00002 散布図に曲線を当てはめる  【コロン】 2013/06/27(Thu) 17:46

いつもお世話になっております。

nlsなどを用いて一人でがんばってみたのですが,「勾配が特異です」などエラーばかりで,まったく歯が立ちませんので,書き込みさせてください。

以下のデータは 小塩真司『実践形式で学ぶSPSSとAMOSによる心理・調査データ解析』東京図書p.32のデータです。内発的動機付けと総合成績の相関が直線関係ではなく曲線関係になるというものです。

この本では二次曲線,三次曲線が以下のようになっております。

二次:y = -5.060 + 4.872x -0.493x^2
三次:y = -11.946 + 9.560x - 1.462x^2 + 0.062x^3

です。これらの求め方と曲線の表示の仕方をご教授頂けますでしょうか?実はこのようなデータが得られまして(私の研究で),求め方がさっぱりです。

よろしくお願いいたします。

motivation score
6.13 5.59
2.30 2.78
4.66 6.31
7.28 4.49
3.30 7.52
4.12 7.34
2.49 2.77
6.35 6.68
8.23 2.36
2.41 4.59
2.55 3.19
7.26 2.38
5.60 8.74
5.40 6.84
5.27 6.93
2.51 4.66
6.05 6.06
3.04 5.21
6.66 3.63
5.74 5.83
7.67 3.39
6.59 6.35
6.69 4.09
7.64 4.67
4.06 6.77
7.19 5.30
4.90 7.15
4.87 7.00
8.05 2.69
3.68 6.87
2.88 5.49
5.11 5.47
7.35 2.77
3.21 5.18
3.88 7.11
2.91 3.09
6.03 8.18
5.18 7.95
4.50 4.79
3.26 7.26

No.00003 Re: 散布図に曲線を当てはめる  【青木繁伸】 2013/06/27(Thu) 18:07

あてはめ結果が微妙に結果が違うのは,提示されたデータに入力ミスがあるのかな?
> # データフレームを d として
> # 実測値の散布図を描く
> plot(d)
> # 二次曲線へのあてはめには I 関数を使うこと
> ans2 <- lm(score ~ motivation+I(motivation^2), d)
> summary(ans2)

Call:
lm(formula = score ~ motivation + I(motivation^2), data = d)

Residuals:
Min 1Q Median 3Q Max
-2.0891 -0.7782 0.1316 0.7017 1.9801

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -5.04709 1.55278 -3.250 0.00246
motivation 4.86702 0.65871 7.389 8.65e-09
I(motivation^2) -0.49261 0.06379 -7.722 3.16e-09

Residual standard error: 1.13 on 37 degrees of freedom
Multiple R-squared: 0.6272, Adjusted R-squared: 0.607
F-statistic: 31.12 on 2 and 37 DF, p-value: 1.183e-08

> # 三次曲線へのあてはめには I 関数を使うこと
> ans3 <- lm(score ~ motivation+I(motivation^2)+I(motivation^3), d)
> summary(ans3)

Call:
lm(formula = score ~ motivation + I(motivation^2) + I(motivation^3),
data = d)

Residuals:
Min 1Q Median 3Q Max
-2.33406 -0.69421 0.01637 0.87012 2.09650

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -11.90634 4.93141 -2.414 0.02097
motivation 9.53728 3.25735 2.928 0.00588
I(motivation^2) -1.45801 0.66283 -2.200 0.03433
I(motivation^3) 0.06186 0.04228 1.463 0.15212

Residual standard error: 1.113 on 36 degrees of freedom
Multiple R-squared: 0.6481, Adjusted R-squared: 0.6188
F-statistic: 22.1 on 3 and 36 DF, p-value: 2.733e-08

> # 当てはめられた曲線を描くために,motivation を細かい刻み幅で設定
> motivation0 <- seq(2, 9, by=0.01)
> # データフレームにする(list でもよいが)
> newdata <- data.frame(motivation=motivation0)
> # 二次曲線の予測値を求めて,曲線を描く
> scale2 <- predict(ans2, newdata=newdata)
> lines(motivation0, scale2)
> # 三次曲線の予測値を求めて,曲線を描く
> scale3 <- predict(ans3, newdata=newdata)
> lines(motivation0, scale3, col="red")


No.20004 Re: 散布図に曲線を当てはめる  【コロン】 2013/06/28(Fri) 20:38

青木先生

お礼が大変遅くなりましたことお詫びいたします。

I関数,勉強になりました。本当にいつもありがとうございます。

● 「統計学関連なんでもあり」の過去ログ--- 046 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る