3

私は R の初心者で、Stata の世界から来ました。次のように線形モデルを実行しました(約100個の変数、それぞれに500個のデータポイントなどがあります):

RegModel.3 <- lm(ordercount~timecount2+timecount4 .... expeditedrop, data=Dataset)

stdfここで、適合値ごとに、stataの関数のように、予測の標準誤差を見つけたいと考えています。

私は次のコードを試しました:

predict(RegModel.3$fitted.values, new, se.fit=TRUE)

しかし、次のエラーが発生します。

Error in UseMethod("predict") : no applicable method for 'predict' applied to an object of class "c('double', 'numeric')"

私は何を間違っていますか?また、係数を書いたのと同様の方法で write.csv コマンドを使用して出力をエクスポートするにはどうすればよいですか。

write.csv(RegModel.3$coefficients, file='results.csv')

ありがとう!

4

1 に答える 1

4

から取られた再現可能な例?lm:

ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2,10,20, labels=c("Ctl","Trt"))
weight <- c(ctl, trt)
lm.D9 <- lm(weight ~ group)


pp <- predict(lm.D9, interval="prediction",se.fit=TRUE)

(参照?predict.lm用に参照)および

write.csv(cbind(pp$fit,stderr=pp$se.fit),file="predintervals.csv")

するべきです。(この場合、単一のカテゴリ予測因子があり、連続予測因子がないため、標準誤差はすべて同じです...)

PS: 可能な限りcoef()、係数を抽出したりfitted()、適合値を抽出したりするなど、標準のアクセサーを使用して、オブジェクトの内部に到達するよりも優れています$methods(class="lm")利用可能なアクセサを確認してください。

編集: 一般的なアプローチが依然として大きな問題を抱えていることを示す図:

set.seed(101)
X <- matrix(runif(101*500),nrow=500)
prednames <- paste0("predictor",1:100)
X2 <- setNames(as.data.frame(X),
               c("response",prednames))
form <- reformulate(paste(prednames,collapse="+"),response="response")
fit1 <- lm(form,data=X2)
pp <- predict(fit1,interval="predict",se.fit=TRUE)
于 2012-12-07T00:36:25.170 に答える