3

lm 呼び出しオブジェクトのデータ部分の更新に相当するものはありますか?

たとえば、次のモデルがあるとします。

dd = data.frame(y=rnorm(100),x1=rnorm(100))
Model_all <- lm(formula = y ~ x1, data = dd)

lm オブジェクトを操作して同等の効果を得る方法はありますか?

Model_1t50 <- lm(formula = y ~ x1, data = dd[1:50,])

サンプルの予測テストからいくつかの擬似を構築しようとしていますが、単一の lm オブジェクトを使用してデータを単純にロールするのは非常に便利です。

4

2 に答える 2

6

私はそれがupdate実際にあなたが望むことをすることをかなり確信しています!

example(lm)
dat1 <- data.frame(group,weight)
lm1 <- lm(weight ~ group, data=dat1)
dat2 <- data.frame(group,weight=2*weight)
lm2 <- update(lm1,data=dat2)
coef(lm1)
##(Intercept)    groupTrt 
##      5.032      -0.371 
coef(lm2)
## (Intercept)    groupTrt 
##     10.064      -0.742 

これによる効率の向上を期待している場合は、がっかりします。Rは新しい引数を置き換えて、呼び出しを再評価します(のコードを参照update.default)。しかし、それはコードをかなりきれいにします...

于 2013-01-20T01:45:26.227 に答える
1

biglm オブジェクトを更新して、より多くのデータを含めることはできますが、少なくすることはできません。したがって、これを逆の順序で行うことができます。つまり、少ないデータから始めて、より多くのデータを追加します。http://cran.r-project.org/web/packages/biglm/biglm.pdfを参照してください。

ただし、部分母集団について推定されたパラメータに関心があると思われます (つまり、行 1:50"a"が因子変数 のレベルに対応するfactrvar場合)。この場合、 に~factrvar*x1サブセット化するのではなく、式 ( ) で交互作用を使用する必要がありますdata[1:50,]。このタイプの交互作用は、のレベルごとに異なる効果推定値を与えるfactrvar. これは各パラメータを個別に推定するよりも効率的であり, の値全体で追加のパラメータ (つまりx2~factrvar*x1 + x2) が同じになるように制約するfactrvar. --異なるサブセットに対して同じモデルを複数回推定した場合,x2毎回個別のパラメータ推定値を受け取ります。

于 2013-01-19T23:52:51.250 に答える