我需要手动预测概率。我正在使用这个邮政编码。我想从模型中删除一个变量并保留原始系数来预测另一个时期。我的公式是:
> lr$formula
target ~ grupoAntig + nu_seguros_1TRUNC + cd_sexo + grupoEdad +
vl_limite_aeQU + vl_ltd_6QU + Revolv3 + nu_servicios_1TRUNC +
fl_cliente_hit + nu_resumen_6 + fl_rv
我想删除 fl_cliente_hit。所以我使用 model.matrix 并排除它:
mm<-model.matrix(~ grupoAntig + nu_seguros_1TRUNC + cd_sexo + grupoEdad +
vl_limite_aeQU + vl_ltd_6QU + Revolv3 + nu_servicios_1TRUNC +
nu_resumen_6 + fl_rv, train)[,]
所以这个矩阵的第一行是:
> mm[1,]
(Intercept) grupoAntigh20 grupoAntigm40
1 0 1
nu_seguros_1TRUNC cd_sexoF cd_sexoM
0 0 1
grupoEdadh25 grupoEdadm40 vl_limite_aeQU145
0 1 0
vl_ltd_6QU5 Revolv3 nu_servicios_1TRUNC
0 0 0
nu_resumen_6 fl_rv1
4 0
我想这应该保持变量的(级别数-1)级别。例如:
> ddply(train, .(grupoEdad ), summarize, cant=length(target))
grupoEdad cant
1 25a40 7864
2 h25 60
3 m40 11684
如您在 mm[1,] 中看到的,矩阵仅包含这 3 个级别中的 2 个
但问题在于 cd_sexo:
> ddply(train, .(cd_sexo), summarize, cant=length(target))
cd_sexo cant
1 F 8962
2 M 10646
它只有 2 个级别,并且包括两个级别。
我的问题是,由于我想预测概率,我将使用 coeff(lr) 并且与 mm 矩阵相比,我将拥有不同数量的变量。