La línea de mejor ajuste no parece un buen ajuste. ¿Por qué?

82

Echa un vistazo a este gráfico de Excel: la gráfica

La línea de "sentido común" de mejor ajuste aparecería como una línea casi vertical recta a través del centro de los puntos (editada a mano en rojo). Sin embargo, la línea de tendencia lineal según lo decidido por Excel es la línea diagonal negra que se muestra.

  1. ¿Por qué Excel ha producido algo que (para el ojo humano) parece estar mal?
  2. ¿Cómo puedo producir una línea de mejor ajuste que se vea un poco más intuitiva (es decir, algo así como la línea roja)?

Actualización 1. Aquí está disponible una hoja de cálculo Excel con datos y gráficos: datos de ejemplo , CSV en Pastebin . ¿Las técnicas de regresión tipo 1 y tipo 2 están disponibles como funciones de Excel?

Actualización 2. Los datos representan un parapente que sube en una térmica mientras se desplaza con el viento. El objetivo final es investigar cómo la fuerza y ​​dirección del viento varía con la altura. Soy ingeniero, NO matemático o estadístico, por lo que la información en estas respuestas me ha dado muchas más áreas de investigación.

ConanTheGerbil
fuente
55
xy
12
Este fenómeno fue uno de los principales descubrimientos estadísticos del siglo XIX (si no de todos los tiempos). Se denomina regresión hacia la media . De hecho, es la razón por la cual este procedimiento estadístico se llama "regresión".
whuber
3
Debo agregar que la razón principal por la que los ajustes se ven tan diferentes es que la gráfica exagera mucho la escala en el eje y. Al dibujarlo donde ambas escalas son proporcionales a las desviaciones estándar marginales, puede llegar a conclusiones completamente diferentes sobre qué ajuste es más "sentido común".
whuber
66
yx=0.714
77
Esto ya se ha abordado en numerosas ocasiones en el sitio (por ejemplo, ver aquí ). Cuando entiendes qué es una línea de regresión, es fácil ver por qué es la línea negra. Hágase dos preguntas: 1: ¿cuál es el valor promedio de y cuando x es aproximadamente 0.712? 2. ¿Qué predicen las líneas roja y negra que debería ser? ... [He retrasado el cierre como duplicado por ahora, ya que hay problemas específicos con sus datos que valdría la pena volver a centrar su pregunta en]
Glen_b

Respuestas:

111

¿Hay una variable dependiente?

(xi,yi)

ingrese la descripción de la imagen aquí

Así es como puedes hacerlo en R:

> para <- read.csv("para.csv")
> plot(para)
> 
> # run PCA
> pZ=prcomp(para,rank.=1)
> # look at 1st PC
> pZ$rotation
           PC1
lon 0.09504313
lat 0.99547316
> 
> colMeans(para) # PCA was centered
       lon        lat 
-0.7129371 53.9368720 
> # recover the data from 1st PC
> pc1=t(pZ$rotation %*% t(pZ$x) )
> # center and show
> lines(pc1 + t(t(rep(1,123))) %*% c)

yiy(xi)

Si desea tratar las variables por igual o no depende del objetivo. No es la calidad inherente de los datos. Debe elegir la herramienta estadística adecuada para analizar los datos, en este caso, elija entre la regresión y PCA.

Una respuesta a una pregunta que no se hizo

Entonces, ¿por qué en su caso una línea de tendencia (de regresión) en Excel no parece ser una herramienta adecuada para su caso? La razón es que la línea de tendencia es una respuesta a una pregunta que no se hizo. Este es el por qué.

lat=a+b×lon

Imagina que no hubiera viento. Un parapente estaría haciendo el mismo círculo una y otra vez. ¿Cuál sería la línea de tendencia? Obviamente, sería una línea horizontal plana, su pendiente sería cero, ¡pero no significa que el viento esté soplando en dirección horizontal!

yx

ingrese la descripción de la imagen aquí

Código R para la simulación:

t=1:123
a=1 #1
b=0 #1/10
y=10*sin(t)+a*t
x=10*cos(t)+b*t

plot(x,y,xlim=c(-60,60))
xp=-60:60
lines(b*t,a*t,col='red')

model=lm(y~x)
lines(xp,xp*model$coefficients[2]+model$coefficients[1])

Entonces, la dirección del viento claramente no está alineada con la línea de tendencia. Están vinculados, por supuesto, pero de una manera no trivial. Por lo tanto, mi afirmación de que la línea de tendencia de Excel es una respuesta a alguna pregunta, pero no la que usted hizo.

¿Por qué PCA?

Como notó, hay al menos dos componentes del movimiento de un parapente: la deriva con un viento y un movimiento circular controlado por un parapente. Esto se ve claramente cuando conecta los puntos en su trama:

ingrese la descripción de la imagen aquí

Por un lado, el movimiento circular es realmente una molestia para ti: estás interesado en el viento. Aunque, por otro lado, no observas la velocidad del viento, solo observas el parapente. Por lo tanto, su objetivo es inferir el viento no observable a partir de la lectura de ubicación del parapente observable. Esta es exactamente la situación en la que herramientas como el análisis factorial y PCA pueden ser útiles.

El objetivo de PCA es aislar algunos factores que determinan las salidas múltiples mediante el análisis de las correlaciones en las salidas. Es efectivo cuando la salida está vinculada a factores linealmente, como sucede en los datos: la deriva del viento simplemente se suma a las coordenadas del movimiento circular, por eso PCA está trabajando aquí.

Configuración de PCA

Entonces, establecimos que PCA debería tener una oportunidad aquí, pero ¿cómo lo configuraremos realmente? Comencemos agregando una tercera variable, el tiempo. Vamos a asignar tiempo de 1 a 123 a cada 123 observación, suponiendo la frecuencia de muestreo constante. Así es como se ve el diagrama 3D de los datos, revelando su estructura espiral:

ingrese la descripción de la imagen aquí

La siguiente gráfica muestra el centro imaginario de rotación de un parapente como círculos marrones. Puedes ver cómo se desplaza en el plano lat-lon con el viento, mientras que el parapente que se muestra con un punto azul está dando vueltas alrededor de él. El tiempo está en eje vertical. Conecté el centro de rotación a la ubicación correspondiente de un parapente que muestra solo los dos primeros círculos.

ingrese la descripción de la imagen aquí

El código R correspondiente:

library(plotly)       

 para <- read.csv("C:/Users/akuketay/Downloads/para.csv")
 n=24

   para$t=1:123 # add time parameter

   # run PCA
     pZ3=prcomp(para)
     c3=colMeans(para) # PCA was centered
     # look at PCs in columns
       pZ3$rotation

       # get the imaginary center of rotation 
       pc31=t(pZ3$rotation[,1] %*% t(pZ3$x[,1]) )
     eye = pc31 + t(t(rep(1,123))) %*% c3
     eyedata = data.frame(eye)

     p = plot_ly(x=para[1:n,1],y=para[1:n,2],z=para[1:n,3],mode="lines+markers",type="scatter3d") %>%
       layout(showlegend=FALSE,scene=list(xaxis = list(title = 'lat'),yaxis = list(title = 'lon'),zaxis = list(title = 't'))) %>%
     add_trace(x=eyedata[1:n,1],y=eyedata[1:n,2],z=eyedata[1:n,3],mode="markers",type="scatter3d") 
     for( i in 1:n){
         p = add_trace(p,x=c(eyedata[i,1],para[i,1]),y=c(eyedata[i,2],para[i,2]),z=c(eyedata[i,3],para[i,3]),color="black",mode="lines",type="scatter3d")
       }

subplot(p)

La deriva del centro de rotación del parapente es causada principalmente por el viento, y la trayectoria y la velocidad de la deriva se correlacionan con la dirección y la velocidad del viento, variables de interés no observables. Así es como se ve la deriva cuando se proyecta al plano lat-lon:

ingrese la descripción de la imagen aquí

Regresión PCA

Entonces, anteriormente establecimos que la regresión lineal regular no parece funcionar muy bien aquí. También descubrimos por qué: porque no refleja el proceso subyacente, porque el movimiento del parapente es altamente no lineal. Es una combinación de movimiento circular y una deriva lineal. También discutimos que en esta situación el análisis factorial podría ser útil. Aquí hay un resumen de un posible enfoque para modelar estos datos: la regresión de PCA . Pero puño, te mostraré la curva ajustada de regresión de PCA :

ingrese la descripción de la imagen aquí

Esto se ha obtenido de la siguiente manera. Ejecute PCA en el conjunto de datos que tiene una columna adicional t = 1: 123, como se discutió anteriormente. Obtienes tres componentes principales. El primero es simplemente t. El segundo corresponde a la columna lon, y el tercero a la columna lat.

asin(ωt+φ)ω,φ

Eso es. Para obtener los valores ajustados, recupere los datos de los componentes ajustados conectando la transposición de la matriz de rotación de PCA a los componentes principales pronosticados. Mi código R anterior muestra partes del procedimiento, y el resto puede resolverlo fácilmente.

Conclusión

Es interesante ver cuán poderoso es PCA y otras herramientas simples cuando se trata de fenómenos físicos donde los procesos subyacentes son estables y las entradas se traducen en salidas a través de relaciones lineales (o linealizadas). Entonces, en nuestro caso, el movimiento circular es muy no lineal, pero lo linealizamos fácilmente mediante el uso de funciones seno / coseno en un parámetro de tiempo t. Mis tramas se produjeron con solo unas pocas líneas de código R como viste.

El modelo de regresión debe reflejar el proceso subyacente, entonces solo usted puede esperar que sus parámetros sean significativos. Si se trata de un parapente a la deriva en el viento, entonces un diagrama de dispersión simple como en la pregunta original ocultará la estructura temporal del proceso.

También la regresión de Excel fue un análisis transversal, para el cual la regresión lineal funciona mejor, mientras que sus datos son un proceso de series de tiempo, donde las observaciones se ordenan a tiempo. El análisis de series de tiempo debe aplicarse aquí, y se realizó en regresión PCA.

Notas sobre una función

y=f(x)xyxyyxlat=f(lon)

Aksakal
fuente
11
a sin ωt+b cos ωt
11
Si desea tratarlos por igual o no depende del objetivo. No es la calidad inherente de los datos. - Gran punto y +1.
Richard Hardy
@NickCox, es cierto, habría sido menos trabajo también
Aksakal
Vale la pena señalar que PCA es la generalización de la regresión del eje mayor a la situación en la que tiene> 2 variables. Pero dado que en este caso solo hay 2 variables, el nombre estándar de la técnica sería regresión de eje mayor (también llamada a veces regresión ortogonal o regresión de Tipo II).
Tom Wenseleers
61

La respuesta probablemente tenga que ver con cómo juzga mentalmente la distancia a la línea de regresión. La regresión estándar (Tipo 1) minimiza el error al cuadrado, donde el error se calcula en función de la distancia vertical a la línea .

La regresión de tipo 2 puede ser más análoga a su juicio de la mejor línea. En él, el error al cuadrado minimizado es la distancia perpendicular a la línea . Hay una serie de consecuencias a esta diferencia. Una importante es que si intercambia los ejes X e Y en su gráfico y vuelve a ajustar la línea, obtendrá una relación diferente entre las variables para la regresión de Tipo 1. Para la regresión de tipo 2, la relación sigue siendo la misma.

Mi impresión es que hay una gran cantidad de debate sobre dónde usar la regresión Tipo 1 vs Tipo 2, por lo que sugiero leer detenidamente las diferencias antes de decidir cuál aplicar. La regresión tipo 1 se recomienda con frecuencia en los casos en que un eje se controla experimentalmente o al menos se mide con mucho menos error que el otro. Si no se cumplen estas condiciones, la regresión de Tipo 1 sesgará las pendientes hacia 0 y, por lo tanto, se recomienda la regresión de Tipo 2. Sin embargo, con suficiente ruido en ambos ejes, la regresión tipo 2 aparentemente tiende a sesgarlos hacia 1. Warton et al. (2006) y Smith (2009) son buenas fuentes para comprender el debate.

También tenga en cuenta que hay varios métodos sutilmente diferentes que caen dentro de la categoría amplia de regresión de Tipo 2 (eje mayor, eje mayor reducido y regresión de eje mayor estándar), y que la terminología sobre los métodos específicos es inconsistente.

Warton, DI, IJ Wright, DS Falster y M. Westoby. 2006. Métodos bivariados de ajuste de línea para alometría. Biol. Apocalipsis 81: 259–291. doi: 10.1017 / S1464793106007007

Smith, RJ 2009. Sobre el uso y mal uso del eje mayor reducido para el ajuste de línea. A.m. J. Phys. Anthropol 140: 476–486. doi: 10.1002 / ajpa.21090


EDITAR :

@amoeba señala que lo que llamo regresión Tipo 2 anterior también se conoce como regresión ortogonal; Este puede ser el término más apropiado. Como dije anteriormente, la terminología en esta área es inconsistente, lo que garantiza un cuidado adicional.

mkt - Restablecer a Monica
fuente
19
¿Debate sobre si usar el tipo 1 o el tipo 2? No hay nada de qué debatir cuando sabe cuál es su objetivo (función objetivo o función de pérdida). Y si no lo hace, bueno, entonces debe aclarar eso antes de continuar.
Richard Hardy
77
El tipo 2 también produce resultados sin sentido si ambos ejes usan unidades diferentes.
John Dvorak
44
Está utilizando "Tipo 1" y "Tipo 2" como si fueran términos estándar. ¿Son ellos? Nunca he visto a nadie llamar a la regresión habitual y la regresión ortogonal "tipo 1" y "tipo 2".
ameba dice Reinstate Monica
2
@RichardHardy Por supuesto, aclarar el objetivo específico es lo mejor. Pero como dije en la respuesta, mi impresión es que hay un debate en curso sobre su uso en un subconjunto de casos, y los documentos que cito (así como las recomendaciones contradictorias que sigo recibiendo de los revisores) parecen confirmar esto.
mkt - Restablecer Monica
3
@mkt, gracias por tu aclaración. De hecho, podría haber algún debate entre las personas que no están seguras de lo que buscan. Allí, el foco del debate es cuál de los dos es más relevante para su objetivo temático. Lo que quería enfatizar es que no hay debate una vez que su objetivo está bien definido, es decir, el objetivo del tema se traduce al lenguaje estadístico (lo cual es inevitable si se emplean métodos estadísticos). Así que supongo que estamos de acuerdo, solo estamos enfatizando diferentes partes del argumento.
Richard Hardy
31

La pregunta que Excel intenta responder es: "Suponiendo que y depende de x, qué línea predice y mejor". La respuesta es que debido a las grandes variaciones en y, ninguna línea podría ser particularmente buena, y lo que Excel muestra es lo mejor que puede hacer.

Si toma su línea roja propuesta y la continúa hasta x = -0.714 yx = -0.712, encontrará que sus valores están muy, muy lejos del gráfico, y está a una gran distancia de los valores de y correspondientes .

La pregunta que Excel responde no es "qué línea está más cerca de los puntos de datos", sino "qué línea es mejor para predecir los valores y de los valores x", y lo hace correctamente.

gnasher729
fuente
44
Exactamente. La suposición subyacente es "se da x, y se mide / predice".
Floris
12

No quiero agregar nada a las otras respuestas, pero sí quiero decir que se ha desviado por una mala terminología, en particular el término "línea de mejor ajuste" que se utiliza en algunos cursos de estadística.

Intuitivamente, una "línea de mejor ajuste" se vería como su línea roja. Pero la línea producida por Excel no es una "línea de mejor ajuste"; Ni siquiera está tratando de ser. Es una línea que responde a la pregunta: dado el valor de x, ¿cuál es mi mejor predicción posible para y? o alternativamente, ¿cuál es el valor promedio de y para cada valor de x?

Observe la asimetría aquí entre x e y; el uso del nombre "línea de mejor ajuste" lo oculta. También lo hace el uso de Excel de "línea de tendencia".

Se explica muy bien en el siguiente enlace:

https://www.stat.berkeley.edu/~stark/SticiGui/Text/regression.htm

Es posible que desee algo más parecido a lo que se llama "Tipo 2" en la respuesta anterior, o "Línea SD" en la página del curso de estadísticas de Berkeley.

Flounderer
fuente
11

Parte del problema óptico proviene de las diferentes escalas: si usa la misma escala en ambos ejes, ya se verá diferente.

En otras palabras, puede hacer que la mayoría de las líneas de "mejor ajuste" parezcan "poco intuitivas" extendiendo la escala de un eje.

Aganju
fuente
1
Estoy de acuerdo en que esta es la respuesta: el rango X de los valores es de aproximadamente 0.02 de ancho, pero el rango Y solo de aproximadamente 0.005, de hecho, el gráfico debe ser aproximadamente 4 veces más ancho que alto, y sería obvio que el El mejor ajuste sería horizontal. El fenómeno en la pregunta es puramente visual debido a las diferentes escalas.
RemcoGerlich
3
@RemcoGerlich Podemos aceptar que, como se muestra en la pregunta, la relación de aspecto del gráfico no es útil. Pero la sugerencia de que necesita un gráfico 4 veces más ancho que alto porque numéricamente los rangos están en esa proporción es inverosímil y ciertamente no es una cuestión de hecho. Si las unidades en cualquiera de los ejes fueran cambiadas por un factor de 1000, ¿sugeriría una relación de aspecto de 4000 o 0.004? Es probable que la relación 4x sea solo un efecto secundario de diferentes unidades.
Nick Cox
44
Las otras respuestas dan la respuesta correcta. Este tristemente no lo hace. Si volvemos a escalar los valores, de modo que obtengamos la misma imagen visual, pero con ejes iguales, sigue siendo un problema de ajuste "tipo 1" frente a "tipo 2".
Hans Janssen
1
Habla sobre el "sentido común" que mejor se ajusta, lo que es correcto "para el ojo humano". Y luego la escala de los ejes es lo principal que es relevante.
RemcoGerlich
Él tiene un punto, a veces lo que parece intuitivo está influenciado por cosas tontas como la escala, aunque este no es el caso. Aquí tenemos un desajuste genuino entre lo que hace Excel y lo que OP quiere
Aksakal
4

Algunas personas han notado que el problema es visual: la escala gráfica empleada produce información engañosa. Más específicamente, la escala de "lon" es tal que parece ser una espiral apretada que sugiere que la línea de regresión proporciona un ajuste deficiente (una evaluación con la que estoy de acuerdo, la línea roja que dibuje proporcionaría errores al cuadrado más bajos si los datos fueron formados de la manera presentada).

A continuación proporciono un diagrama de dispersión creado en Excel con una escala para "lon" alterada para que no produzca la espiral apretada en su diagrama de dispersión. Con este cambio, la línea de regresión ahora proporciona un mejor ajuste visual y creo que ayuda a demostrar cómo la escala en el diagrama de dispersión original proporcionó una evaluación engañosa del ajuste.

Creo que la regresión funciona bien aquí. No creo que se necesite un análisis más complejo.

ingrese la descripción de la imagen aquí

Para cualquier interesado, he trazado los datos usando una herramienta de mapeo y muestro la regresión ajustada a los datos. Los puntos rojos son los datos registrados y el verde es la línea de regresión.

ingrese la descripción de la imagen aquí

Y aquí están los mismos datos en un diagrama de dispersión con línea de regresión; aquí lat se trata como dependiente y los puntajes lat se invierten para ajustarse al perfil geográfico.

ingrese la descripción de la imagen aquí

Bryan
fuente
1
La regresión no muestra la dirección de una deriva del viento
Aksakal
Solo conocemos lat y lon, y para los datos proporcionados, muestra un cambio de uno en relación con el otro.
Bryan
Entonces, ¿qué significa esta línea de tendencia?
Aksakal
Suponiendo que el primer punto en el archivo de datos es la ubicación de inicio, parece que hay un ligero aumento hacia el norte en la ruta que recorrió el este. Los datos no proporcionan información sobre la fuerza o la altura del viento, pero sí proporcionan dirección, de este a norte.
Bryan
Corrección, el software de mapeo que utilicé solicita lat-lon, pero sus datos son lon-lat, por lo que la dirección del viento sería leve de norte a este, es decir, hay un ligero movimiento hacia el este a medida que avanza hacia el norte (o un ligero movimiento hacia el oeste hacia el sur viajado).
Bryan
1

Su regresión confusa de mínimos cuadrados ordinarios (MCO) (que minimiza la suma de la desviación al cuadrado sobre los valores pronosticados, (observada-predicha) ^ 2) y la regresión del eje mayor (que minimiza las sumas de cuadrados de la distancia perpendicular entre cada punto y la línea de regresión, a veces esto se conoce como regresión de Tipo II, regresión ortogonal o regresión estandarizada de componentes principales).

Si desea comparar los dos enfoques solo en R, simplemente eche un vistazo

data=read.csv("https://pastebin.com/raw/4TsstQYm")
require(lmodel2)
fit = lmodel2(lat ~ lon, data=data)
plot(fit,method="OLS") # ordinary least squares regression

ingrese la descripción de la imagen aquí

plot(fit,method="MA") # major axis regression

ingrese la descripción de la imagen aquí

Lo que encuentra más intuitivo (su línea roja) es solo la regresión del eje mayor, que visualmente hablando es la que parece más lógica, ya que minimiza la distancia perpendicular a sus puntos. La regresión OLS solo aparecerá para minimizar la distancia perpendicular a sus puntos si las variables xey están en la misma escala de medición y / o tienen la misma cantidad de error (puede ver esto simplemente basado en el teorema de Pitágoras). En su caso, su variable y tiene mucha más difusión, de ahí la diferencia ...

Tom Wenseleers
fuente
0

La respuesta de PCA es la mejor porque creo que eso es lo que debería estar haciendo dada la descripción de su problema, sin embargo, la respuesta de PCA podría confundir PCA y la regresión, que son cosas totalmente diferentes. Si desea extrapolar este conjunto de datos en particular, entonces necesita hacer una regresión, y es probable que desee hacer la regresión de Deming (que supongo que a veces pasa por Tipo II, nunca escuché esta descripción). Sin embargo, si desea averiguar qué direcciones son más importantes (vectores propios) y tener una métrica de su impacto relativo en el conjunto de datos (valores propios), entonces PCA es el enfoque correcto.

Andrew H
fuente
44
Esto es principalmente una serie de comentarios sobre otras respuestas. Sería mejor comentar directamente sobre cada uno. No veo que la respuesta de @Aksakal confunda PCA y la regresión en absoluto.
Nick Cox
Quería comentar directamente, pero no tenía la reputación suficiente. No creo que Aksakal sea una regresión confusa, pero pensé que vale la pena señalarle al OP que PCA y la regresión son totalmente diferentes.
Andrew H