• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:統計解析ソフトRで単回帰分析(繰り返しあり)とその95%信頼限界を求めたい)

Rで単回帰分析(繰り返しあり)とその95%信頼限界の求め方

このQ&Aのポイント
  • Rで単回帰分析(繰り返しあり)を行い、その95%信頼限界を求める方法について知りたい。
  • 単回帰分析を行う際に繰り返しがある場合、通常のlm関数では解析できないことがある。
  • 95%信頼限界の求め方についても具体的な手順を知りたい。

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

  • ベストアンサー
noname#227064
noname#227064
回答No.3

> 95%信頼限界ですが、predict関数をつぎのように書くことで求めることはできますか? > 回帰式<-lm(従属変数~独立変数) > 信頼限界<-predict(回帰式) > また、入力した独立変数の値を入力して、95%信頼限界の値を求めたいのですが、どのようにすればよいでしょうか? 実際に実行してみればわかりますが、それではうまくいきません。 例を下に挙げますので、実際に実行してみてください。 ###### ここから ##### (mydata <- data.frame(x = 1:10, y = c(0.5365829, 1.6717796, 3.5224681, 4.6027141, 3.8602299, 5.2651266, 8.6274736, 7.5756941, 11.0286530, 8.1631078))) # テストデータ with(mydata, plot(y~x)) # 散布図の表示 mydata.lm <- lm(y~x, data = mydata) # 回帰分析 summary(mydata.lm) # 分散分析表 abline(mydata.lm) # 回帰直線の追加 predict(mydata.lm, interval = "confidence") # mydata$xについての95%信頼区間を求める predict(mydata.lm, newdata = data.frame(x = c(1:9 + 0.5)), interval = "confidence") # data.frame(x = c(1:9 + 0.5))についての95%信頼区間を求める ###### ここまで ##### 一つ目のpredictは、newdataの指定がないため、独立変数xの1,2,...10についての予測値がfitに95%信頼区間がlwr, uprに計算されます。 二つ目のpredictは、newdataの指定があるため、newdataのデータフレームの値、つまり1.5, 2.5,...9.5についての予測値がfitに95%信頼区間がlwr, uprに計算されます。 実際には、predictで信頼区間を計算しているのではなく、predict.lmが下請けをしているので、使い方がわからない場合は、 ?predict.lm を実行してヘルプをご覧ください。

mas_cot
質問者

お礼

詳しい説明ありがとうございました。 なんとか、目的を達成しました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • backs
  • ベストアンサー率50% (410/818)
回答No.2

要するにこういうのが書きたいのですか? conf.limit <- function(x, y, alpha=0.05){ plot(x, y) n <- length(x) b <- var(x, y)/var(x) a <- mean(y)-b*mean(x) abline(a, b) sx2 <- var(x)*(n-1) # SSX R <- max(x)-min(x) x1 <- seq(min(x)-R*0.1, max(x)+R*0.1, R/20) # x軸の値(=x') y1 <- a+b*x1 ta <- -qt(alpha/2, n-2) # t.crit Ve <- (var(y)-var(x, y)^2/var(x))*(n-1)/(n-2) # MSe(=s) temp <- ta*sqrt(Ve)*sqrt(1/n+(x1-mean(x))^2/sx2) # 信頼区間 y2 <- y1-temp lines(x1, y2, lty="dotted", col="red") y2 <- y1+temp lines(x1, y2, lty="dotted", col="red") temp <- ta*sqrt(Ve)*sqrt(1+1/n+(x1-mean(x))^2/sx2) # 予測区間 y2 <- y1-temp lines(x1, y2, lty="dashed", col="blue") y2 <- y1+temp lines(x1, y2, lty="dashed", col="blue") } # 使い方 > conf.limit(x, y) # これだけ。 ともあれ、実行例を示してもらえばより的確な回答ができるのかもしれませんが^^;

mas_cot
質問者

補足

アドバイスありがとうございます。 現在の私の理解範囲ではグラフを書くところまでは行っていません。将来、グラフ化が必要なときにはまたアドバイスをよろしくお願いします。 さて、今すぐに対応しなくてはいけないのは、独立変数の各数値における95%信頼限界を求めることです。 predict関数を使えばよいことがわかったのですが、その使い方がわかりません。ご教示をよろしくお願いします。 たとえば、 回帰式<-lm(従属変数~独立変数) 信頼限界<-predict(回帰式) とすることで、95%信頼限界の式を求めることはできるのでしょうか。さらに、上述したように、入力した独立変数の値を入力して、95%信頼限界の値を求めるにはどのようにすればよいのでしょうか。 先日、成書を購入して勉強し始めたばかりで初歩的なことで申し訳ありませんがよろしくお願いします。

すると、全ての回答が全文表示されます。
noname#227064
noname#227064
回答No.1

1.繰り返しがある場合でもlmでできますがどうやったのでしょうか? > n=3のデータをそのままlm(従属変数~独立変数)として計算させると、Coefficientsの値(切片、傾き)が全く異なる値となります。 どう入力してどう異なったのかを補足に記載は可能でしょうか? 2.predictを使用しましょう。

mas_cot
質問者

補足

ご回答ありがとうございます。 よく確認してみますと、独立変数と従属変数を逆に入れていたことに気づきました。変数を入れ替えたところ、期待通りの回帰式ができました。 さて、95%信頼限界ですが、predict関数をつぎのように書くことで求めることはできますか? 回帰式<-lm(従属変数~独立変数) 信頼限界<-predict(回帰式) また、入力した独立変数の値を入力して、95%信頼限界の値を求めたいのですが、どのようにすればよいでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A