12

データセットと係数を指定して lm オブジェクトを作成できる関数を知っている人はいますか?

ベイジアン モデル平均化 (BMA) を使い始めたので、これに興味があります。bicreg の結果から lm オブジェクトを作成できるようにしたいと考えています。診断プロット、予測、cv.lm などの優れた一般的な lm 関数のすべてにアクセスしたいと思います。

そのような関数が存在しないと確信している場合は、それを知っておくと非常に役立ちます!

library(BMA)
mtcars_y <- mtcars[, 1] #mpg
mtcars_x <- as.matrix(mtcars[,-1])
res <- bicreg(mtcars_x, mtcars_y)

summary(res)
res$postmean # bma coefficients

# The approximate form of the function
# I'm looking for
lmObject <- magicFunction(data=mtcars, coefficients=res$postmean)
4

2 に答える 2

7

私が知っているこれを行う機能はありません。もちろん作ることもできます。あなたの magicFunction がする必要があるのは、要素を持つリストを作成することだけです:

> names(fakeModel)
[1] "coefficients"  "residuals"     "effects"       "rank"         
 [5] "fitted.values" "assign"        "qr"            "df.residual"  
 [9] "xlevels"       "call"          "terms"         "model"  

次に、それを lm オブジェクトにします

> class(fakeModel) <- c("lm")

ただ、これは悪い考えだと思います。適用するジェネリック関数が bicreg オブジェクトに適用されると誰が言いますか。たとえば、AIC(fakeModel) をどのように解釈しますか?

診断と予測を行う独自の関数を作成することをお勧めします。

于 2010-01-14T06:03:04.587 に答える
3

通常どおりオブジェクトを計算lmし、その後結果の$coefficients属性を変更して係数を変更できるようですlm()

詳細については、この質問と結果を参照してください。

http://tolstoy.newcastle.edu.au/R/e2/help/07/08/24294.html

それがあなたのやりたいことと一致するかどうかはわかりませんが...

于 2010-01-14T10:42:21.017 に答える