10 votos

¿Es posible en R (o en general) a los coeficientes de regresión como una cierta señal de la fuerza?

Estoy trabajando con algunos datos del mundo real y los modelos de regresión están dando resultados poco intuitivos. Normalmente confío en las estadísticas, pero en realidad algunas de estas cosas no pueden ser ciertas. El principal problema que estoy viendo es que un aumento en una variable está causando un aumento en la respuesta, cuando, en realidad, en la realidad, deben ser correlacionadas negativamente.

Es allí una manera de forzar un signo específico para cada uno de los coeficientes de regresión? Cualquier R código para hacer esto, se agradecería también.

Gracias por cualquier ayuda!

11voto

AdamSane Puntos 1825
  1. tenga cuidado con la distinción entre lo marginal y correlación la correlación parcial (correlación condicional en otras variables). Que legítimamente pueden ser de distinto signo.

    Que es $\text{corr}(Y, X_i)$ puede de hecho ser negativo, mientras que el coeficiente de regresión en una regresión múltiple es positivo. No hay necesariamente una contradicción en esas dos cosas. Véase también el de la paradoja de Simpson, que es algo relacionado (especialmente el diagrama). En general se puede inferir que un coeficiente de regresión debe ser de un signo meramente basado en un argumento sobre la marginal de la correlación.

  2. Sí, ciertamente es posible restringir los coeficientes de regresión a ser $\geq 0$ o $\leq 0$*. Hay varias maneras de hacerlo; algunos de estos se pueden hacer fácilmente bastante en R, como a través de nnls. Véanse también las respuestas a esta pregunta que mencionar una serie de paquetes de R y otros posibles enfoques.

    Sin embargo, tengo la precaución contra toda prisa ignorando los puntos en 1. sólo porque muchos de ellos son fáciles de implementar.

    * (puedes usar programas que no-negativo, no positivo mediante la negación de la variable correspondiente)

11voto

Zizzencs Puntos 1358

Bien puede ser una manera, pero yo diría que es no recomendable en sus circunstancias.

Si usted tiene un resultado que es imposible:

1) Hay un problema con tus datos 2) Hay un problema con la definición de "imposible" o 3) utiliza el método incorrecto

En primer lugar, comprobar los datos. En segundo lugar, revise el código. (O pedir a otros a hacerlo). Si ambos están bien, entonces tal vez algo inesperado sucede.

Afortunadamente para usted, usted tiene un simple "imposibilidad" - usted dice que dos variables no pueden ser correlacionados positivamente. Así, hacer un gráfico de dispersión y añadir una más suave y ver. Un único valor atípico podría causar esta; o podría ser que una relación no lineal. O algo más.

Pero, si tienes suerte, has encontrado algo nuevo. Como mi profesor favorito solía decir "Si no estás sorprendido, usted no ha aprendido nada".

6voto

RoMa Puntos 401

Para responder a su pregunta específica, usted puede probar el nnls paquete que hace menos de cuadrados de la regresión con los no-negativo de las restricciones sobre los coeficientes. Usted puede utilizar para recibir las señales de que usted desee, cambiando los signos de los adecuados predictores.

Por cierto, aquí es una manera muy sencilla de crear un conjunto de datos para demostrar cómo es posible tener correlaciones positivas y negativas de los coeficientes de regresión.

> n <- rnorm(200)
> x <- rnorm(200)
> d <- data.frame(x1 = x+n, x2= 2*x+n, y=x)
> cor(d)
      x1        x2         y
 x1 1.0000000 0.9474537 0.7260542
 x2 0.9474537 1.0000000 0.9078732
 y  0.7260542 0.9078732 1.0000000
> plot(d)
> lm(y~x1+x2-1, d)

Call:
lm(formula = y ~ x1 + x2 - 1, data = d)

Coefficients:
x1  x2  
-1   1  

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