5 votos

¿Realizando múltiples regresiones lineales, en Excel, que tienen un intersticio x común?

Estaba trazando algunos conjuntos de datos lineales en Excel, incluyendo líneas de tendencia lineales:

enter image description here

Estaba a punto de realizar 5 regresiones lineales separadas, para poder obtener el slope y y-intercept de cada uno "independiente" conjunto de datos. Pero entonces, en un instante, me di cuenta de que los datos podrían tener un punto en común:

enter image description here

De hecho, podría ser incluso: el x-intercepción en sí mismo.

Así que lo que necesito ahora es una forma de ejecutar múltiples regresiones lineales simultáneas, asumiendo que todas las líneas se intersectan en un punto común.

¿Existe tal método de análisis de regresión lineal? ¿Tiene un nombre? ¿Existe en Excel?


Lo mejor que he podido reunir hasta ahora es ejecutar cinco regresiones lineales independientes, obteniendo la pendiente e interceptación de cada conjunto de datos:

Slope (m)  Intercept (b)
=========  =============
 1.15287     11484.8  
 0.86301      7173.5
 0.43212      4306.4
 0.25894      2853.6

Trazado slope contra y-intercept se ve algún tipo de correlación:

enter image description here

Si yo asumir que mis conjuntos de datos comparten una x-intercept entonces puedo encontrar el valor X a través de él:

 y = mx + b
 0 = mx + b
-b = mx
 x = m / -b

Lo que da:

Slope (m)  Intercept (b)  Common x-intercept (assuming their is one)
=========  =============  ============================
 1.15287     11484.8        -9961.9
 0.86301      7173.5        -8312.2
 0.43212      4306.4        -9965.6
 0.25894      2853.6       -11020.2

Lo cual, aparte de un punto realmente torpe, converge bastante bien.

5voto

jldugger Puntos 7490

Hay varias formas sencillas de hacerlo en Excel.

Tal vez el más simple utiliza LINEST para ajustar las líneas condicionadas a un valor de prueba de la intersección x. Una de las salidas de esta función es el residuo medio cuadrado. Utilice Solver para encontrar la intersección X minimizando el residuo medio cuadrado. Si tienes algún cuidado en el control Solver --especialmente al restringir la intersección x dentro de límites razonables y darle un buen valor de partida-- debería obtener excelentes estimaciones.

La parte más difícil es configurar los datos de la manera correcta. Podemos averiguarlo mediante una expresión matemática para el modelo implícito. Hay cinco grupos de datos: vamos a indexarlos por $k$ que van desde $1$ a $5$ (de abajo a arriba en la trama). Cada punto de datos puede entonces ser identificado por medio de un segundo índice $j$ como el par ordenado $x_{kj}, y_{kj}$ . (Parece que $x_{kj} = x_{k'j}$ para dos índices cualesquiera $k$ y $k'$ pero esto no es esencial.) En estos términos el modelo supone que hay cinco pendientes $ \beta_k $ y una intercepción X $ \alpha $ es decir.., $y_{kj}$ debe aproximarse mucho a $ \beta_k (x_{kj}- \alpha )$ . El combinado LINEST / Solver solución minimiza la suma de los cuadrados de las discrepancias. Alternativamente, esto será útil para evaluar los intervalos de confianza, podemos ver el $y_{kj}$ como independiente extrae de las distribuciones normales que tienen una varianza común desconocida $ \sigma ^2$ y significa $ \beta_k (x_{kj}- \alpha )$ .

Esta formulación, con cinco coeficientes diferentes y el uso propuesto de LINEST sugiere deberíamos establecer los datos en una matriz donde haya un separado columna para cada $k$ y estos son inmediatamente seguidos por una columna para el $y_{kj}$ .

He elaborado un ejemplo usando datos simulados similares a los que se muestran en la pregunta. Este es el aspecto de la matriz de datos:

[B] [C] [D] [E] [F] [G] [H] [I]
k   x   1   2   3   4   5   y
-----------------------------------------------
355 7355    0   0   0   0   636
355 0   7355    0   0   0   3705
355 0   0   7355    0   0   6757
355 0   0   0   7355    0   9993
355 0   0   0   0   7355    13092
429 7429    0   0   0   0   539
...

Los extraños valores 7355 , 7429 etc., así como todos los ceros, se producen por medio de fórmulas. El uno en la célula D3 por ejemplo, es

=IF($B2=D$1, $C2-Alpha, 0)

Aquí, Alpha es una célula con nombre que contiene la intercepción (actualmente fijada en -7000). Esta fórmula, cuando se pega en toda la extensión de las columnas encabezadas por "1" a "5", pone un cero en cada celda excepto cuando el valor de $k$ (que se muestra en la columna de la izquierda) corresponde al encabezamiento de la columna, donde pone la diferencia $x_{kj}- \alpha $ . Esto es lo que se necesita para realizar una regresión lineal múltiple con LINEST . La expresión se parece a

LINEST(I2:I126,D2:H126,FALSE,TRUE)

Rango I2:I126 es la columna de valores y; rango D2:H126 comprende las cinco columnas computarizadas; FALSE estipula que la intercepción Y es forzada a $0$ y TRUE pide que se amplíen las estadísticas. El resultado de la fórmula ocupa un rango de 6 filas por 5 columnas, de las cuales las tres primeras filas pueden parecer

1.296   0.986   0.678   0.371   0.062
0.001   0.001   0.001   0.001   0.001
1.000   51.199
...     

Extrañamente (hay que aguantar lo extraño cuando se hacen estadísticas en Excel :-), las columnas de salida corresponden a las columnas de entrada en orden inverso así, 1.296 es el coeficiente estimado para la columna H (correspondiente a $k=5$ que hemos llamado $ \beta_5 $ ) mientras que 0.062 es el coeficiente estimado para la columna D (correspondiente a $k=1$ que hemos llamado $ \beta_1 $ ).

Fíjese, en particular, en la 51.199 en la fila 3, columna 2 de la LINEST salida: es la suma media de los cuadrados de los residuos. Eso es lo que nos gustaría minimizar. En mi hoja de cálculo este valor está en la celda U9 . Al observar los gráficos, pensé que la intersección X estaba seguramente entre $-20000$ y $0$ . Aquí está el correspondiente Solver diálogo para minimizar U9 variando $ \alpha $ llamado XIntercept en esta hoja:

Solver dialog

Devolvió un resultado razonable casi instantáneamente. Para ver cómo puede funcionar, compare los parámetros establecidos en la simulación con las estimaciones obtenidas de esta manera:

Parameter Value   Estimate
Alpha     -10000  -9696.2
Beta1        .05    .0619
Beta2        .35    .3710
Beta3        .65    .6772
Beta4        .95    .9853
Beta5       1.25   1.2957
Sigma      50     51.199

Usando estos parámetros, el ajuste es excelente:

Scatter plot with linear fits

Uno puede ir más allá al computar el ajuste y usar eso para calcular la probabilidad del registro. Solver puede modificar un conjunto de parámetros (initalizados a la LINEST estimaciones) un parámetro a la vez para lograr cualquier valor deseado de la probabilidad logarítmica menos que el valor máximo. De la manera habitual, reduciendo la probabilidad de logaritmo en un cuantil de un $ \chi ^2$ distribución se pueden obtener intervalos de confianza para cada parámetro. De hecho, si quieres es una excelente manera de aprender cómo funciona la maquinaria de máxima probabilidad puedes saltarte la LINEST enfoque en su conjunto y el uso Solver para maximizar la probabilidad del registro. Sin embargo, el uso de Solver de esta manera "desnuda" -sin saber de antemano aproximadamente lo que los parámetros estimados deberían ser- es arriesgado. Solver se detendrá fácilmente en un máximo local (pobre). La combinación de una estimación inicial, como la que permite adivinar en $ \alpha $ y aplicando LINEST junto con una rápida aplicación de Solver para pulir estos resultados, es mucho más fiable y tiende a funcionar bien.

4voto

Eero Puntos 1612

Es muy poco probable que Excel sea capaz de hacer esto de manera fácil o fiable (realmente no se debe usar Excel para ninguna de las estadísticas más simples, y a veces ni siquiera entonces).

Si sabes (o crees saber) cuál es la intercepción común de x (no sólo estimarla a partir de los datos) entonces puedes restar ese valor de todas las variables x y hacer una regresión sin interceptar (porque la línea debería pasar por 0,0 ahora). Se puede comparar ese modelo con el modelo en el que cada recta tiene su propia intercepción (si todas pasan por la misma intercepción fija, entonces todas las intercepciones ajustadas simultáneamente no deberían ser significativamente diferentes de 0.

Una manera rápida de tener una idea de si las interceptaciones x son probablemente las mismas sería invertir las variables x e y y ajustar las líneas, esto significa que ahora las interceptaciones y serían las mismas, lo que es más fácil de probar. Sin embargo, esto también cambia la dirección del error y por lo tanto responde a una pregunta un poco diferente y probablemente debería ir seguida de algo más formal.

Se podrían crear estimaciones bootstrap de la intercepción x (calculadas como -b/m) y utilizarlas para estimar si las intercepciones difieren.

Se podría ajustar un modelo no lineal de mínimos cuadrados para estimar el modelo con una intersección x común y compararlo con un modelo en el que cada uno obtiene su propia intercepción para ver si son significativamente diferentes (el modelo sería de la forma de la pendiente*(x-x0) con la pendiente y x0 como parámetros (x0 siendo la intersección x).

Podrías encajar el modelo similar usando técnicas bayesianas también para comparar.

Cualquiera de estos sería factible en R u otros paquetes estadísticos.

0voto

Urban Puntos 111

Sólo soy un químico, no un estadístico, pero la forma más fácil que conozco es usar variables ficticias. Es decir, para cada (n-1) pendiente, asignar un 1 en la columna z y multiplicar x*z. Esto significa que una pendiente tendrá 0 en todas las z. Para una intercepción común con 3 pendientes se vería así.

batch   y   x   xz 48   xz 58
48          0.9 0   0   0
48          0.7 12  12  0
48          0.6 24  24  0
48          0.6 36  36  0
48          0.66    48  48  0
48          0.59    60  60  0
58          1   0   0   0
58          0.9 12  0   12
58          0.8 24  0   24
58          0.75    36  0   36
58          0.82    48  0   48
69          1   0   0   0
69          0.9 12  0   0
69          0.84    24  0   0
69          0.83    36  0   0

Entonces usa el complemento de regresión de Excel. RESUMEN

Regression Statistics                       
Multiple R  0.838                   
R Square    0.703                   
Adjusted R Square   0.622                   
Standard Error  0.0851                  
Observations    15                  

ANOVA                       
    df  SS  MS  F   Significance F  
Regression  3   0.1886  0.0629  8.68    0.003   
Residual    11  0.0797  0.00725         
Total   14  0.2683              

    Coefficients    Standard Error  t Stat  P-value Lower 95%   Upper 95%
Intercept    0.901          0.0381   23.7   9.E-11   0.817          0.984
months  -0.00199    0.00233 -0.85   0.41    -0.00712    0.00315
xz 48   -0.00441    0.00218 -2.02   0.068   -0.00921    0.00039
xz 58   -0.000725   0.00232 -0.31   0.76    -0.00582    0.00437

El ANOVA es una basura, pero la salida le dará todas las ecuaciones para cada una de las líneas, por ejemplo.

Y=0.901-0.00199x for b69
Y=0.901-0.00199x-0.00218zx for b48
Y=0.901-0.00199x-0.000725zx for b58

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