プロが教える店舗&オフィスのセキュリティ対策術

普段からこちらのサイトではお世話になっております。
データを解析する作業をしているのですが、統計はソフト頼りで細かい数式は分かっておりません。

Rを使用して重回帰分析をし、95%信頼区間とR二乗値を出したいと考えています。

関数「lm」を使用して、重回帰分析を実行し、R二乗値を出すことはできました。
 lm(formula=***~!!!+###,data=&&&)  といった式です。

重回帰分析の結果と標準誤差、P値、図の下にR二乗値、調整済R二乗値がでてきたように思います。
結果としてはこれだけでもなんとかなるのですが、重回帰分析の95%信頼区間も計算したいと考えています。
Rで信頼区間を出す方法を調べてはみたのですが、正直、よくわかりませんでした。

その代わりに思い付いたのが、上記lmを使用した結果をエクセルに張ったのちに95%信頼区間を出すことができそうがなと考えたのですが、これもよく分かりませんでした。

エクセルからで構いませんので、重回帰分析の結果から95%信頼区間を算出する方法をお願いします。

質問者からの補足コメント

  • うれしい

    とても丁寧な解説ありがとうございます。
    すいません、質問の書き方が悪かったです。
    知りたかった信頼区間は、Estimate(回帰係数)の95%信頼区間です。
    (この独立変数が1増えると、説明変数がどれだけ増えるかという数値と理解しています)

    この上限と下限が分かれば、P値も不要であると思っていますので、できればこちらを使用したいと考えています。

    お時間のある時で構いませんので、よろしくお願いします。

    No.2の回答に寄せられた補足コメントです。 補足日時:2018/04/10 09:58

A 回答 (3件)

企業でSQCをする立場の者です。

博士(工学)です。

95%信頼区間と言っても多数あります。
回帰係数の95%信頼区間
予測値の平均値の95%信頼区間
データの95%予測区間
などです。

では、iris のデータを使って、やってみます。
以下をコピペして動かしてみてください。

par(ask=T)

plot(iris[51:150,1:3],pch=16)
# これを使って、重回帰分析を行い、信頼区間を求めてみる

x <- iris[51:150,1:3]
result <- lm(Petal.Length ~ Sepal.Length + Sepal.Width,data=x)

summary(result)

# まずは、回帰係数の信頼区間

confint(result,level=0.95)

# 次に平均値の信頼区間
# 言いかえれば、回帰線の存在範囲でもある
# これは、近似線に対してラッパ状に広がる
# 言いかえれば、場所ごとに信頼区間は異なる
# 単調増加する座標を用意して代入して求める必要あり
# グラフで可視化するために、1変数だけ動かす

# Sepal.Lengthは、振ってみるが
# Sepal.Widthは、平均値に固定する

x.pred <- data.frame(
Sepal.Length=seq(min(x[,1]),max(x[,1]),length=20),
Sepal.Width=rep(mean(x[,2]),20))

y.pred <- predict(result,interval="confidence",x.pred,level=0.95)

plot(x[,c(1,3)],pch=20)
lines(x.pred[,1],y.pred[,1],lty=1)
lines(x.pred[,1],y.pred[,2],lty=2)
lines(x.pred[,1],y.pred[,3],lty=2)

# 予測区間も同じ方法で求めることができる

data.pred <- predict(result,interval="prediction",x.pred,level=0.95)

lines(x.pred[,1],data.pred[,2],lty=3)
lines(x.pred[,1],data.pred[,3],lty=3)
    • good
    • 0

#1です。



読み返していて、過ちに気付いたのでですが、R^2値(重決定係数)の信頼区間が欲しいのですね。効果量に用いるような・・・

それは少しお待ちください。今から出勤ですので、今夜までに調べます。
この回答への補足あり
    • good
    • 0

#1です。


回帰係数の信頼区間であれば、#1で回答済みです。confintで求められます。再掲します。

par(ask=T)

plot(iris[51:150,1:3],pch=16)
# これを使って、重回帰分析を行い、信頼区間を求めてみる

x <- iris[51:150,1:3]
result <- lm(Petal.Length ~ Sepal.Length + Sepal.Width,data=x)

summary(result)

# まずは、回帰係数の信頼区間

confint(result,level=0.95)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
スクリプトをそのまま貼って頂いたので非常に分かりやすかったです。

これで解析が前に進みます。
また不明点がありましたら、お世話になります。
ありがとうございました。

お礼日時:2018/04/14 07:27

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