Итак ... Я использую Microsoft R Client для подгонки некоторых моделей.Это дает мне доступ к пакету revoScaleR (ранее создан Revolution Analytics).Это дает доступ к некоторым альтернативным алгоритмам подбора модели к встроенной версии R.Я не использовал их раньше, поэтому в качестве быстрого начального теста я взял небольшой набор данных и использовал функции R (lm и glm) и функции revoScaleR (rxGlm и rxLogit), чтобы соответствовать ряду (тривиальных) моделей, которыевсе должны давать один и тот же ответ ... но они не дают.
### 1. lm - gives correct answer
Propensity.Model <- lm(Large_Claim_Proportion ~ 1,
data = Data.Set.NZ.Claim.Version,
weights = NZ.Claim.Count)
Propensity.Model$fitted.values[1] # gives correct answer of 0.01837672
### 2. glm (logistic) - gives correct answer
Propensity.Model <- glm(Large_Claim_Proportion ~ 1,
data = Data.Set.NZ.Claim.Version,
weights = NZ.Claim.Count,
family = binomial(link = "logit"))
Propensity.Model$fitted.values[1] # gives correct answer is 0.01837672
### 3. rxLogit - giving wrong answer
Propensity.Model <- rxLogit(Large_Claim_Proportion ~ 1,
data = Data.Set.NZ.Claim.Version,
fweights = "NZ.Claim.Count")
Predicted_Values <- rxPredict(modelObject = Propensity.Model,
data = Data.Set.NZ.Claim.Version)
Predicted_Values[1,] # gives wrong answer of 0.0165901
### 4. rxGlm (logistic) (alternative to rxLogit) - giving wrong answer
Propensity.Model <- rxGlm(Large_Claim_Proportion ~ 1,
data = Data.Set.NZ.Claim.Version,
fweights = "NZ.Claim.Count",
family = binomial(link = "logit"))
Predicted_Values <- rxPredict(modelObject = Propensity.Model,
data = Data.Set.NZ.Claim.Version)
Predicted_Values[1,] # gives wrong answer of 0.0165901
### 5. rxGlm (log-binomial) - giving correct answer (although log-binomial isn't a natural pairing)
Propensity.Model <- rxGlm(Large_Claim_Proportion ~ 1,
data = Data.Set.NZ.Claim.Version,
fweights = "NZ.Claim.Count",
family = binomial(link = "log"))
Predicted_Values <- rxPredict(modelObject = Propensity.Model,
data = Data.Set.NZ.Claim.Version)
Predicted_Values[1,] # gives correct answer of 0.01837672
Элемент Large_Claim_Proportion всегда находится в диапазоне [0, 1], поэтому должен подходить в качестве зависимой переменной в модели логистической регрессииfit.
Если кто-нибудь, читающий это, понимает, как работают эти функции и что могло пойти не так, я был бы очень признателен за совет.Я хорошо приспособлен для подгонки GLM в других контекстах, но я относительно новичок в R - поэтому я подозреваю, что допустил какую-то элементарную ошибку кодирования новобранца.
Спасибо.