Usando R, he ajustado un modelo lineal para una variable de respuesta única a partir de una combinación de predictores continuos y discretos. Esto es súper básico, pero tengo problemas para comprender cómo funciona un coeficiente para un factor discreto.
Concepto: Obviamente, el coeficiente de la variable continua 'x' se aplica en la forma, y = coefx(varx) + intercept
pero ¿cómo funciona eso para un factor z si el factor no es numérico?y = coefx(varx) + coefz(factorz???) + intercept
Específico: He ajustado un modelo en R como lm(log(c) ~ log(d) + h + a + f + h:a)
donde h
y f
son factores discretos, no numéricos. Los coeficientes son:
Coefficients:
Estimate
(Intercept) -0.679695
log(d) 1.791294
h1 0.870735
h2 -0.447570
h3 0.542033
a 0.037362
f1 -0.588362
f2 0.816825
f3 0.534440
h1:a -0.085658
h2:a -0.034970
h3:a -0.040637
¿Cómo los uso para crear la ecuación predictiva?
log(c) = 1.791294(log(d)) + 0.037362(a) + h??? + f???? + h:a???? + -0.679695
¿O lo estoy haciendo mal?
Creo que ese concepto es si el sujeto cae en categoría h1
y f2
la ecuación se convierte en:
log(c) = 1.791294(log(d)) + 0.037362(a) + 0.870735 + 0.816825 + h:a???? + -0.679695
Pero realmente no tengo claro cómo h:a
se analiza el término interactivo. Gracias por ser fácil conmigo.
fuente
g1
c
puede ser confusa en este caso particular, porque elijo dos letras para representan niveles de g1, pero por lo general es bastante intuitivo, y eso es texto puro, por lo que aún podemos editar el archivo fuente después). Adjunto hay otro resumen donde lo modifiquég1
para que ahora sea un factor de cuatro niveles. Sin embargo, con 0/1 etiquetas que podrían ser más confusas .Puede comprobar que sus "contrastes" son los predeterminados
options()
y buscando:Si sus contrastes desordenados se establecen como
contr.treatment
(como deberían ser a menos que los haya cambiado), entonces el primer nivel de cada uno de sus factores se establecerá como una línea de base. Solo se le darán estimaciones para los coeficientes frente a las variables ficticias creadas para otros niveles del factor. En efecto, esos coeficientes serán "cuán diferente en promedio es la variable de respuesta en este nivel del factor, en comparación con el nivel de referencia del factor, habiendo controlado todo lo demás en el modelo".Supongo que de su salida hay un
h0
yf0
cuáles son los niveles de referencia para h y f (a menos que tenga una opción no predeterminada para contrastes, en cuyo caso hay varias posibilidades; intente?contr.treatment
obtener ayuda).Es similar con la interacción. Si mi párrafo anterior es correcto, la estimación dada
a
será realmente la pendiente dea
cuándoh=h0
. Las estimaciones dadas en el resumen que se aplican a las interacciones son cuánto cambia esa pendiente para diferentes niveles deh
.Entonces, en su ejemplo donde h = h1 yf = f2, intente:
Ah, y también puedes
predict()
hacer muchas cosas útiles ... si realmente quieres predecir algo (en lugar de escribir la ecuación para un informe). Intenta?predict.lm
ver qué lepredict()
hace a un objeto creado porlm
.fuente
options()
. Tendrás que desplazarte por un montón de basura para encontrar lo que necesitas. Puede intentarlooptions()$contrasts
, que solo generará lo que desea.