みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

回帰直線の傾きと切片の誤差

 エクセルで散布図を作成した後、近似直線(y=ax+b)を作りました。R-2値は0.999以上で非常に高い相関がみられたのですが、この直線の傾きと切片はどの程度の誤差を有しているのか知りたいです。傾きaと切片bの誤差の導き方を教えてください (それぞれの誤差をc,dとすると、a±c, b±dのような表現の仕方がしたいと思ってます)。よろしくお願いいたします。

投稿日時 - 2009-10-06 13:12:59

QNo.5346008

すぐに回答ほしいです

質問者が選んだベストアンサー

ごめんなさい、まちがいを見つけました。

誤:
r <- lm(V2 ~ V1,as.data.frame(xy))

正:
d <- as.data.frame(xy)
r <- lm(V2 ~ V1,d)

投稿日時 - 2009-10-08 19:05:29

お礼

ありがとうございます、ようやくできました。助かりました。
いろいろとご迷惑おかけいたしました。

投稿日時 - 2009-10-09 10:25:05

ANo.4

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

"~" は tilde です。通称「にょろ」。キーボードによって場所が異なるので説明しにくいです。半角で似た記号は少ないですから、片端から試しても大したことありません。MSWord はだめです。

投稿日時 - 2009-10-08 18:52:34

ANo.2

化学の実験データらしいので、方針を変えます。見た所 bootstrap をする必要はなく、既存のソフトでちゃっちゃっとやっちゃうのが正解です。そのためには Excel はやめましょう。
http://www.okada.jp.org/RWiki/
を見て、R の最新版をインストールしてください。只です。
そして

xy <- matrix(c(
2, 2.105263,
2.5, 2.257336,
3.333333, 2.518892,
4, 2.702703,
5, 2.932551,
6.666667, 3.267974,
10, 3.984064,
11.11111, 4.149378,
13.33333, 4.651163,
16.66667, 5.291005,
20, 5.988024,
25, 7.1428857,
50, 12.04819,
100, 22.22222),
ncol=2, byrow=TRUE)

r <- lm(V2 ~ V1,as.data.frame(xy))
plot(d$V1,d$V2,xlab="x",ylab="y")
abline(r$coeff[1],r$coeff[2])

とすれば、添付の図が描けます。ここで

summary(r)

とすれば、いろんな指標が出て来ます。その Std. Error とある所に切片と係数の「『推定量の標準偏差』の推定値」が出ます。で、たとえば「3シグマ」
http://www.sci.kagoshima-u.ac.jp/~itls/Japanese/chapter4/keyword/sigma.html
とか唱えて
切片は 1.88 +/- 0.09
傾きは 0.204 +/- 0.003
くらい言っておけば、普通の人は満足するだろうと思います。

投稿日時 - 2009-10-08 16:09:01

お礼

 ご回答ありがとうございます。さっそくRをインストールしてやってみました。
ところが、以下のコマンド
r <- lm(V2 ~ V1,as.data.frame(xy))
plot(d$V1,d$V2,xlab="x",ylab="y")
abline(r$coeff[1],r$coeff[2])
を打つと

エラー: 予想外の 入力 です ( "r<-lm(V2/" の)

と出てきてしまいます。(※/の向きは逆)

R上で ~(上付き) の出し方が分からなかったので、ワードで作ってコピー&ペーストしたのが良くなかったのでしょうか?
私が未熟なせいでご迷惑をおかけしますが、このコマンドの正しい打ち方を教えてください。お願いいたします。

投稿日時 - 2009-10-08 18:26:25

ANo.1

いろいろな方法があります。解析的な方法をとると誤差が正規分布に従うなどの仮定が必要になりますから、簡単にやるなら bootstrap 法
http://ja.wikipedia.org/wiki/%E3%83%96%E3%83%BC%E3%83%88%E3%82%B9%E3%83%88%E3%83%A9%E3%83%83%E3%83%97%E6%B3%95
が便利です。

これで出るのは推定量の分散(ないしは標準偏差)ですから、a±c のような表示にするには、たとえば 95% 信頼区間をとるとかの工夫が必要です。

投稿日時 - 2009-10-07 21:10:02

お礼

ご回答ありがとうございます。私数学、統計学はまったくの初心者でありまして、申し訳ないのですがwebページを見てもブートストラップ法をどう適用したら良いか全然分かりませんでした。私の実際のデータを示しますと以下の様になります。
(x, y)=(2, 2.105263), (2.5, 2.257336), (3.333333, 2.518892), (4, 2.702703), (5, 2.932551), (6.666667, 3.267974), (10, 3.984064), (11.11111, 4.149378), (13.33333, 4.651163), (16.66667, 5.291005), (20, 5.988024), (25, 7.1428857), (50, 12.04819), (100, 22.22222)
近似直線
y=0.2039x+1.8769 R^2=0.9998
ここから、傾き、切片の誤差をきちんと求めるまでいかなくとも、誤差はc以下の値であるというようなことが分かればいいと思っております。重ね重ね申し訳ありませんが、このデータを使って傾きと切片の誤差を出すにはどうしたらいいか教えてください。よろしくお願いいたします。

投稿日時 - 2009-10-08 14:14:33

あなたにオススメの質問