11 votos

Cómo aplicar el coeficiente de plazo para factores e interactivo términos en una ecuación lineal?

El uso de R, he ajustado un modelo lineal de una única variable respuesta a partir de una mezcla de continuos y discretos predictores. Esto es súper básico, pero estoy teniendo problemas para comprender cómo un coeficiente para un discreto factor de obras.

Concepto: Obviamente, el coeficiente de la variable continua 'x' se aplica en el formulario y = coefx(varx) + intercept pero, ¿cómo hace ese trabajo por un factor de z si el factor es no numérico? y = coefx(varx) + coefz(factorz???) + intercept

Específicos: he ajustado un modelo en el R lm(log(c) ~ log(d) + h + a + f + h:a) donde h y f son discretos, no numéricos factores. 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 puedo utilizar estos para crear la ecuación predictiva:

log(c) =  1.791294(log(d)) + 0.037362(a) + h??? + f???? + h:a???? + -0.679695

O estoy haciendo mal?

CREO que ese concepto es si el sujeto cae en la 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 no tengo claro cómo es que el h:a interactivo plazo obtiene analiza. Gracias por ir fácil en mí.

14voto

jldugger Puntos 7490

Esto no es un problema específico de R. R utiliza una pantalla convencional de los coeficientes.

Al leer este tipo de resultados de regresión (en un papel, el libro de texto, o de software estadístico), usted necesita saber cuáles son las variables "continuo" y que son "categórico":

  • El "continuo" son explícitamente numéricos y sus valores numéricos fueron utilizados como está en la regresión de ajuste.

  • El "categórica" las variables pueden ser de cualquier tipo, incluyendo aquellos que son numéricos! Lo que los hace categórico es que el software les trata como "factores": es decir, cada valor distinto que se encuentra es considerado un indicador de algo distinto.

    La mayoría del software tratará valores no numéricos (como cadenas) como factores. La mayoría del software puede ser persuadido para el tratamiento de los valores numéricos como factores, demasiado. Por ejemplo, un servicio postal code (código POSTAL en los estados unidos) se ve como un número, pero en realidad es sólo un código para un conjunto de buzones; no tendría ningún sentido para sumar, restar, y multiplicar los códigos postales por otros números! (Esta flexibilidad es la fuente de un error común: si usted no es cuidadoso, o involuntaria, su software puede tratar una variable que consideramos ser categórico como continuo, o viceversa. Cuidado!)

    Sin embargo, las variables categóricas tienen que ser representados de alguna manera como números en orden a aplicar el ajuste de los algoritmos. Hay muchas maneras de codificar . Los códigos que se crean con "variables ficticias." Averiguar más acerca de la variable ficticia de codificación mediante la búsqueda en este sitio; los detalles no importan aquí.

En la pregunta se nos dice que h y f son categóricos ("discretos") de los valores. De forma predeterminada, log(d) y a son continuas. Eso es todo lo que necesitamos saber. El modelo es

$$\eqalign{ y &= \color{red}{-0.679695} & \\ &+ \color{Azulreal}{1.791294}\ \log(d) \\ &+ 0.870735 &\text{ si }h=h_1 \\ Y -0.447570 &\text{ si }h=h_2 \\ &+ \color{verde}{0.542033} &\text{ si }h=h_3 \\ &+ \color{orange}{0.037362}\ un \\ Y -0.588362 &\text{ si }f=f_1 \\ &+ \color{color púrpura}{0.816825} &\text{ si }f=f_2 \\ &+ 0.534440 &\text{ si }f=f_3 \\ Y -0.085658\ &\text{ si }h=h_1 \\ Y -0.034970\ &\text{ si }h=h_2 \\ & -\color{color marrón}{0.040637}\ &\text{ si }h=h_3 \\ }$$

Las reglas que se aplican en este caso son:

  • El "interceptar" plazo, si aparece, es una constante aditiva (primera línea).

  • Las variables continuas son multiplicadas por sus coeficientes, incluso en las "interacciones" como el h1:a, h2:ay h3:a términos. (Esto responde a la pregunta original.)

  • Cualquier variable categórica (o factor) se incluye sólo para los casos en que el valor de ese factor aparece.

Por ejemplo, supongamos que $\log(d)=2$, $h=h_3$, $a=-1$, y $f=f_2$. El amueblada valor en este modelo es

$$\hat{y} = \color{red}{-0.6797} + \color{RoyalBlue}{1.7913}\times (2) + \color{green}{0.5420} + \color{orange}{0.0374}\times (-1) + \color{purple}{0.8168} -\color{brown}{0.0406}\times (-1).$$

Notice how most of the model coefficients simply do not appear in the calculation, because h can take on exactly one of the three values $h_1$, $h_2$, $h_3$ and therefore only one of the three coefficients $(0.870735, -0.447570, 0.542033)$ applies to h and only one of the three coefficients $(-0.085658, -0.034970, -0.040637)$ se multiplican a en la h:a interacción; de manera similar, sólo uno de los coeficientes se aplica a f en cualquier caso particular.

8voto

DavLink Puntos 101

Esto es solo un comentario pero no entra como tal en los cuadros de edición limitada, tenemos a nuestra disposición.

Me gusta ver a una ecuación de regresión claramente escrito en formato de texto, como @whuber hizo en su respuesta. Aquí está una manera rápida de este en R, con la Hmisc paquete. (Voy a usar rms demasiado, pero eso realmente no importa.) Básicamente, se asume que un $\LaTeX$ sistema de tipografía está disponible en su máquina.

Vamos a simular algunos de los datos de

n <- 200
x1 <- runif(n)
x2 <- runif(n)
x3 <- runif(n)
g1 <- gl(2, 100, n, labels=letters[1:2])
g2 <- cut2(runif(n), g=4)
y <- x1 + x2 + rnorm(200)

a continuación, ajuste un modelo de regresión,

f <- ols(y ~ x1 + x2 + x3 + g1 + g2 + x1:g1)

que produce los siguientes resultados:

Linear Regression Model

ols(formula = y ~ x1 + x2 + x3 + g1 + g2 + x1:g1)

                Model Likelihood     Discrimination    
                   Ratio Test           Indexes        
Obs      200    LR chi2     35.22    R2       0.161    
sigma 0.9887    d.f.            8    R2 adj   0.126    
d.f.     191    Pr(> chi2) 0.0000    g        0.487    

Residuals

    Min      1Q  Median      3Q     Max 
-3.1642 -0.7109  0.1015  0.7363  2.7342 

                   Coef    S.E.   t     Pr(>|t|)
Intercept           0.0540 0.2932  0.18 0.8541  
x1                  1.1414 0.3642  3.13 0.0020  
x2                  0.8546 0.2331  3.67 0.0003  
x3                 -0.0048 0.2472 -0.02 0.9844  
g1=b                0.2099 0.2895  0.73 0.4692  
g2=[0.23278,0.553)  0.0609 0.1988  0.31 0.7598  
g2=[0.55315,0.777) -0.2615 0.1987 -1.32 0.1896  
g2=[0.77742,0.985] -0.2107 0.1986 -1.06 0.2901  
x1 * g1=b          -0.2354 0.5020 -0.47 0.6396  

Luego, para imprimir la ecuación de regresión correspondiente, sólo tiene que utilizar el genérico latex de su función, como este:

latex(f)

Tras la conversión del dvi a png, usted debe obtener algo como que

enter image description here

OMI, este tiene el mérito de mostrar cómo calcular los valores de la predicción en función real o la elección de los valores numéricos y los predictores categóricos. Por último, los niveles del factor se indica en el soporte de cerca el coeficiente correspondiente.

5voto

Ted Puntos 854

Usted puede comprobar su "contrastes" son las predeterminadas por options() y busca:

$contrasts
        unordered           ordered 
"contr.treatment"      "contr.poly" 

Si su desordenada contrastes se establecen como contr.treatment (como debe ser, a menos que hayas cambiado de ellos), entonces el primer nivel de cada uno de sus factores se establece como una línea de base. Usted sólo será dado las estimaciones de los coeficientes delante de las variables ficticias creadas por los otros niveles del factor. En efecto, los coeficientes serán "cómo diferentes, la media de la variable de respuesta en este nivel del factor, en comparación con el nivel de referencia de el factor, de haber controlado para todo lo demás, en el modelo".

Supongo que a partir de su salida hay un h0 y f0 cuales son los niveles de referencia para la h y f (a menos que usted no tiene una opción predeterminada para los contrastes, en cuyo caso hay varias posibilidades; intente ?contr.treatment de la ayuda).

Es similar con el de la interacción. Si mi párrafo anterior es correcto, la estimación dada por a realmente va a ser la pendiente de a cuando h=h0. Las estimaciones dadas en el resumen que se aplican a las interacciones son de lo mucho que la pendiente de los cambios para los diferentes niveles de h.

Así, en el ejemplo donde h=h1 y f=f2, trate de:

log(c) =  1.791294(log(d)) + (0.037362 - 0.085658) (a) +  0.870735  + 0.816825  -0.679695

Oh, y usted puede utilizar predict() hacer un montón de cosas útiles también... si en realidad se desea predecir algo (en lugar de escribir la ecuación de un informe). Intente ?predict.lm a ver qué predict() a un objeto creado por lm.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X