2016-05-19 5 views
1

グループ化係数に従ってデータを分割した後、共通モデルを持つlmオブジェクトのリストを含むR関数(nlmeパッケージ経由)lmListがあります。これには、モデルが典型的に持つ有用なメソッドがたくさんあります(例えば、予測)。 glmに相当する機能はありますか?Rには "predict.glmList"機能がありますか?

私はglmlistと表示されますが、lmlistと違って、それは予測のような方法のない、派手なコンテナであるように思えます。

I.e. glmの次のコードに相当するものはありますか?

library(nlme) 
fit <- lmList(disp ~ hp | vs, mtcars) 
predict(fit,mtcars) 
+0

は、あなただけの 'リスト上lapply'できませんか?あなたは何をしようとしていますか(関数がすでに存在するかどうか気にしないでください)?サンプル入力と現在実行しているコードで、何らかの[再現可能なサンプル](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)を提供する必要があります。希望の出力を明確に記述します。 – MrFlick

+0

私はそれを編集しました –

答えて

2

lme4パッケージでlmListのバージョンもGLMフィットを扱うことができます。おそらく、このユースケースについて広範にテストされていないので、見つけた問題を気にして/報告してください。https://github.com/lme4/lme4/issues/ ...

library(lme4) 
fit <- lmList(round(disp) ~ hp | vs, family=poisson, mtcars) 
predict(fit,mtcars) 

は、線形予測スケールで予測値を与える。紛らわしい、predict(fit)、すなわち

、応答スケールの近似値を与える
all.equal(c(predict(fit)),c(exp(predict(fit,mtcars)))) 

(このケースでは、モデルは、ログ・リンクを使用するたびに)TRUEあります。 predict(fit,mtcars,type="response")黙っvcdExtraの文書から引用

+0

これは私が探していたものです。私は周りを回ることができたいくつかの問題がありましたが、私はそれらを報告するつもりです。 –

1

、1があるようには思えない... type指定を無視します:

glmlistは彼らを装着しGLMオブジェクトのリストを含むglmlistオブジェクトを作成します名前。 [...]

モデルの比較、抽出、サマリー、およびおそらくlapplyなどを使用したモデルコンポーネントのプロットなどを容易にするオブジェクトクラスを提供することを意図しています。

しかし、あなたはちょうどそれをしてlapplyに基づく方法を予測する独自に定義することができます。

library(vcdExtra) 

# simulate data 
x <- rnorm(100) 
y <- as.numeric(rnorm(100)>0) 

fit <- glm(y~x, family=binomial(link=logit)) 
gl <- glmlist(fit,fit) 

# define method 
predict.glmlist <- function(object, ...){ 

    expr <- substitute(predict.glm(obj,...)) 
    lapply(object, function(obj) eval(expr)) 

} 

# use method 
predict(gl) 
predict(gl, type="response") 
関連する問題