El 29 de abril de 2013 17:20, Jose Luis Cañadas
<canadasreche en gmail.com>escribió:
Hola Javier.
La idea es que, al ser un factor ordenado, lo trata como si fuera una
variable continua,
pero en el modelo introduce el equivalente a nivelest, nivelest^2 y
nivelest^3, pero sólo quiero el efecto lineal. Supongo que lo más sencillo
serÃa crear una nueva variable donde si nivelest=="Analfabetos"
nueva.variable==-0.67082 y asà sucesivamente.
Pero quizá haya una forma de decirle que se quede con una de las
variables, en mi caso con nivelest.L.
Saludos
El 29/04/13 21:44, Javier Marcuzzi escribió:
Estimado Jose Luis Cañadas
No se si entiendo correctamente, pero ¿porque no escribe un modelo para
cada nivel que le interesa?, o dicho de otro modo, a partir de datos.bin
crea un data.frame para cada nivel que desea y utiliza el mismo modelo
(cambiando el data.frame).
O utilizar un modelo donde se trabaja de otra forma, pero como yo no uso
glm no sabrÃa si es correcto, pero la idea va por utilizar el factor en
(fijos y aleatorios) ambas partes.
Javier Marcuzzi
El 29 de abril de 2013 15:41, Jose Luis Cañadas <canadasreche en gmail.com>escribió:
Hola.
¿Alguien sabe como elegir sólo el efecto lineal cuando tengo un factor
ordenado de 4 categorÃas?
Pongo un ejemplo, mejor.
Tengo la variable nivelest que en origen es de tipo factor
Con contrasts veo las variables dicotómicas que usará R por ejemplo en un
modelo lineal.
contrasts(datos.bin$nivelest)
Primaria Secundaria y F.P Universitaria o superior
Analfabetos 0 0 0
Primaria 1 0 0
Secundaria y F.P 0 1 0
Universitaria o superior 0 0 1
La convierto a tipo ordered
datos.bin$nivelest <- ordered(datos.bin$nivelest)
class(datos.bin$nivelest)
contrasts(datos.bin$nivelest)
.L .Q .C
[1,] -0.67082 0.5 -0.22361
[2,] -0.22361 -0.5 0.67082
[3,] 0.22361 -0.5 -0.67082
[4,] 0.67082 0.5 0.22361
Y la utilizo por ejemplo en un glm
res <- glm(uso_int ~ nivelest, data=datos.bin, family=binomial)
summary(res)
Call:
glm(formula = uso_int ~ nivelest, family = binomial, data = datos.bin)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.265 -0.853 -0.144 0.559 3.024
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.281 0.155 -1.81 0.07 .
nivelest.L 5.309 0.408 13.01 < 2e-16 ***
nivelest.Q -1.515 0.309 -4.90 9.7e-07 ***
nivelest.C -0.171 0.157 -1.09 0.28
---
Signif. codes: 0 ?***? 0.001 ?**? 0.01 ?*? 0.05 ?.? 0.1 ? ? 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 4817 on 3484 degrees of freedom
Residual deviance: 3379 on 3481 degrees of freedom
AIC: 3387
Number of Fisher Scoring iterations: 7
¿Cómo hago para ajustar un modelo sólo con nivelest.L?
Saludos.