No estoy seguro de cómo tratar una variable continua discretizada / binned en el glm()
en R. Veo dos formas posibles de introducirla en el glm. O bien introduzco la variable binned tal cual o bien creo una representación numérica continua de la misma utilizando as.integer()
? ¿Qué método consideraría "estándar" de entre estos métodos?
Esto es lo que he probado: En primer lugar, la variable continua almacenada en mis datos es la edad de un individuo. En este momento he dividido esta variable continua en los siguientes niveles: (16-21 22-27 28-33 34-39 40-45 46-51 52-57 58-63 64-69 70+). Supongamos que la variable binned se llama ageBinned
.
Ahora no estoy seguro de cómo alimentar esta variable agrupada a la glm()
después del binning. En este momento he ordenado los grupos utilizando factor()
y relevel()
. Cuando ajusto el MLG basado en esta covariable, no sé cómo interpretar el resultado.
Ajuste del modelo mediante ageBinned
poisson.glm <- glm(NoClaims ~ ageBinned, family = poisson(link=log),
data=data, offset=log(Duration))
Obtengo el siguiente resultado:
Coefficients:
(Intercept) ageBinned22-27 ageBinned28-33 ageBinned34-39 ageBinned40-45
-2.23763 0.43223 0.43151 0.37040 0.31978
ageBinned46-51 ageBinned52-57 ageBinned58-63 ageBinned64-69 ageBinned70+
-0.21415 -0.80053 -0.08639 -0.27468 -0.74130
Ajuste del modelo utilizando as.integer(ageBinned):
Si en cambio trato el grupo binned como numérico utilizando as.integer(ageBinned)
obtengo el siguiente resultado:
(Intercept) as.integer(ageBinned)
-1.80403065 -0.03616828
Preguntas:
- Cuando miro la segunda salida, al utilizar
as.integer(ageBinned)
interpreto "Interceptar" como $\beta_0$ y el segundo parámetro de salida como $\beta_{age \; group}$ . Sin embargo, no sé cómo interpretar la salida del primer glm() en el que he utilizadoageBinned
. - ¿Qué método consideraría "estándar" de entre estos métodos?
- ¿Cómo se calculan los valores de
ageBinned
se refieren a los parámetros de regresión $\beta_{age \; group}$ ? ¿Existe todavía un único $\beta_{age \; group}$ ? ¿Sigue teniendo la siguiente forma la relación entre las covariables y el parámetro de regresión?
\begin{equation} \log(\mu_i) = \beta_0 + \beta_{\rm age \; group}\cdot x \end{equation}
ACTUALIZACIÓN
Parece como si hacer ageBinned
en una variable categórica ordinal es la mejor alternativa para mí. Sin embargo, no sé exactamente cómo conseguirlo. He intentado ordenar las ageBinned
mediante el siguiente comando
data$ageBinned = factor(data$ageBinned ,
ordered = TRUE,
levels = c("16-21", "22-27", "28-33", "34-39",
"40-45", "46-51", "52-57", "58-63","64 69", "70+"))
Al ponerlas en el glm()
recibo los siguientes parámetros
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.2939 0.1425 -16.095 <2e-16 ***
claim.data$age.group.factor.L -1.0050 0.5865 -1.713 0.0866 .
claim.data$age.group.factor.Q -0.3142 0.5650 -0.556 0.5781
claim.data$age.group.factor.C 0.4275 0.5231 0.817 0.4138
claim.data$age.group.factor^4 -0.4126 0.4821 -0.856 0.3921
claim.data$age.group.factor^5 -0.3993 0.4590 -0.870 0.3843
claim.data$age.group.factor^6 -0.1530 0.3979 -0.385 0.7005
claim.data$age.group.factor^7 0.3577 0.3413 1.048 0.2946
claim.data$age.group.factor^8 0.3474 0.3202 1.085 0.2779
claim.data$age.group.factor^9 0.0819 0.2663 0.308 0.7584
Preguntas
- ¿Es ésta la forma correcta de ordenar las variables?
- En caso afirmativo, ¿cómo se relaciona este resultado con el parámetro de regresión $\beta_{age}$ ?
- Si quiero calcular la log-verosimilitud de este modelo sin utilizar un paquete R, entonces necesito poder calcular \begin{equation} \log(\mu_i) = \beta_0 + \beta_{\rm age \; group}\cdot x \end{equation} ¿cómo lo consigo con las variables categóricas ordenadas (qué pondría para x)?