オブジェクトは、他のlme
クラスと同様に、呼び出されるように記述された関数に必要なすべてを含むように設計されています。必要最小限のものだけを使用したい場合は、必要なものだけを取り出してクラスを再割り当てし、正しい S3 メソッドが呼び出されるようにする必要があります。必要なコンポーネントを確認するには、ソースを確認する必要がありますnlme:::predict.lme
。データセットの例を次に示しOrthodont
ます。
library(nlme)
data(Orthodont)
# Just fit a model
fm1 <- lme(distance ~ age, data = Orthodont)
# pull out the minimal components needed for prediction
min_fm1 <- list(modelStruct = fm1$modelStruct,
dims = fm1$dims,
contrasts = fm1$contrasts,
coefficients = fm1$coefficients,
groups = fm1$groups,
call = fm1$call,
terms = fm1$terms)
# assign class otherwise the default predict method would be called
class(min_fm1) <- "lme"
# By dropping this like fm1$data you trim it down quite a bit
object.size(fm1)
63880 bytes
object.size(min_fm1)
22992 bytes
# make sure output identical
identical(predict(min_fm1, Orthodont, level = 0, na.action = na.omit),
predict(fm1, Orthodont, level = 0, na.action = na.omit))
[1] TRUE