複雑な質問で、できるだけ簡潔に表現できているかどうかわかりませんが...
私は、多変量の一般化された線形モデルに適合させたい立場にあります。モデルのサイズと複雑さのために、組み込み関数ではなくパッケージrxGlm()
から使用する必要があります。RevoScaleR
glm()
モデルの各因子には、選択した参照レベルがあり、relevel()
もちろんこれを使用して設定できることが重要です。ただし、ここでの厄介な点は、因子レベルが並べ替えられることです。そのため、GLM モデルの出力が扱いにくくなります。プレゼンテーションの目的で、モデルを適合させた後、元の因子レベルの順序を取得できるようにしたいと考えています。
簡単な例:
library(RevoScaleR) # from Microsoft R Client
x <- data.frame(country = c("Australia", "Belgium", "Chile", "Belgium", "Belgium"),
degree = c("Y", "Y", "N", "Y", "N"),
salary = c(10000, 15000, 5000, 20000, 4000))
model <- rxGlm(salary ~ country + degree, data = x, dropFirst = TRUE)
model$coefficients
これは与える
(Intercept) country=Australia country=Belgium country=Chile degree=N degree=Y
-3500 NA 7500 8500 NA 13500
ここでは両方の要因がアルファベット順に並べられているため、参照レベルはcountry = Australia
ですdegree = N
。country = Belgium
参照レベルを、にしたいとしますdegree = Y
。これを行ってから、モデルを再実行できます。
x$country <- relevel(x$country, ref = "Belgium")
x$degree <- relevel(x$degree, ref = "Y")
model <- rxGlm(salary ~ country + degree, data = x, dropFirst = TRUE)
model$coefficients
これで同じモデルが得られますが、表現が異なります。
(Intercept) country=Belgium country=Australia country=Chile degree=Y degree=N
17500 NA -7500 1000 NA -13500
これらは私が望む係数ですが、順序が間違っています。コマンドの前に持っていた要素の順序付けを使用して、このアイテムを再配置する簡単な方法はありますか?relevel()
ありがとうございました。