2017-08-24 24 views
1

rxGlmモデルを通常のglmモデルに変換する際に問題があります。私がしようとすると私は同じエラーを取得する私のモデルをひそかたび:rxGlmをGLMに変換中にエラーが発生しました

Error in qr.lm(object) : lm object does not have a proper 'qr' component. 
Rank zero or should not have used lm(.., qr=FALSE). 

ここでは簡単な例です:

cols <- colnames(iris) 
vars <- cols[!cols %in% "Sepal.Length"] 
form1 <- as.formula(paste("Sepal.Length ~", paste(vars, collapse = "+"))) 

rx_version <- rxGlm(formula = form1, 
        data = iris, 
        family = gaussian(link = 'log'), 
        computeAIC = TRUE) 

# here is the equivalent model with base R 
R_version <- glm(formula = form1, 
       data = iris, 
       family = gaussian(link = 'log')) 


summary(as.glm(rx_version)) #this always gives the above error 

私は、この「QR」コンポーネントを見つけるように見えるカント(私はこれがあると仮定しています行列分解に関連する)をrxGlmの式で指定します。

他にも誰かがこれに対処しましたか?

+0

なぜ変換しますか? –

+0

'RevoScaleR'のバージョンを指定することができます – akrun

+0

@NielsBerglund Broomパッケージで使用するために変換したいのですが(特にプロットのための係数出力を扱いやすくします) –

答えて

1

rxGlmオブジェクトにはqrコンポーネントがなく、glmオブジェクトに変換するとオブジェクトが作成されません。これは意図的です。モデル行列のQR分解を計算するには、rx *関数を使用する目的を無効にする完全なデータセットをメモリに格納する必要があります。

as.glmは、PMMLを介したモデルインポート/エクスポートをサポートするためのものです。あなたがしたいことのほとんどは、変換せずにrxGlmオブジェクトで行うことができます。例えば、rxGlmは、後でqrコンポーネントを必要とせずに、適合の一部として係数stdエラーを計算します。

+0

もう一度おねがいします - 私はBroomがすべてがうまくいかないところであるサマリー機能を呼び出すと思います。私は回避策を作ることができると思うが、明らかにバグではないことを知ってうれしい。 –

関連する問題