0

複雑な質問で、できるだけ簡潔に表現できているかどうかわかりませんが...

私は、多変量の一般化された線形モデルに適合させたい立場にあります。モデルのサイズと複雑さのために、組み込み関数ではなくパッケージrxGlm()から使用する必要があります。RevoScaleRglm()

モデルの各因子には、選択した参照レベルがあり、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 = Ncountry = 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()

ありがとうございました。

4

1 に答える 1