Cálculo de la pendiente de regresión lineal en fórmulaHola,
Me preguntaba si había una manera de calcular la pendiente de regresión lineal de los datos de la columna dentro de una fórmula de tabla de datos.
A continuación se muestra un ejemplo sencillo de la tabla. Los datos están ordenados y me gustaría calcular la pendiente de una línea de ajuste de volumen a lo largo del tiempo utilizando los datos de la fila actual y los puntos anteriores para realizar la regresión.
La idea es que me gustaría ver cómo cambia la pendiente calculada al aumentar la cantidad de puntos de datos. Al hacer esto manualmente, los valores de la pendiente terminan acercándose a un valor dado y permanecen dentro de +/-5% después de 20 o más puntos.
| Instancia | Tiempo (s) | Volumen (ml) | Pendiente (mL/s) |
| 1 | 0 | 0 | n / A |
| 2 | 5 | 0.5 | m1 |
| 3 | 10 | 0.8 | m2 |
| ... | ... | ... | ... |
| norte | T | V | mN-1 |
Si eso es posible, mi próximo desafío sería configurar esto para poder calcular la fórmula de la pendiente de modo que use N puntos de datos a cada lado de la fila actual para un cálculo de movimiento simétrico.
Gracias de antemano.
Re: Cálculo de pendiente de regresión lineal en fórmulaEsto es interesante... si quisiera aplicar un valor p a esto... basado en una hipótesis nula (pendiente = 0)... ¿hay alguna manera de integrar esto en la fórmula?
En otras palabras, me gustaría ver cuándo la pendiente móvil cambia significativamente según el intervalo de confianza alrededor de la pendiente.
Re: Cálculo de pendiente de regresión lineal en fórmulaUsted dijo, " Muchas veces, no sabemos cuándo ha cambiado la correlación entre las X, por lo que este es un intento de analizar el impacto del tiempo para cualquier análisis disponible. " ¿Has probado el Explorador de datos funcionales en JMP Pro? Puede ser útil para detectar un cambio en la forma a través de los componentes principales funcionales.
Re: Cálculo de pendiente de regresión lineal en fórmulaHola equipo JMP...
El enfoque de Nelson es muy probablemente lo que estaba buscando. Estoy conversando con él sobre una necesidad similar con la prueba de mann kendall tau.
Mi entrada no está en una sola fila.
Mis datos normalmente contienen varios parámetros, cada uno medido en un paso de tiempo diferente. Formato de datos ordenado; los parámetros están en columnas, cada fila es un estado de tiempo diferente, es decir, la cronología está en filas.
Estoy investigando muchas funciones estadísticas que miden la tendencia en una de estas o un ajuste frente a alguna otra X en el tiempo, pero en función de las ventanas enrollables.Entonces, en lugar de retroceder toda la historia de X vs Y, por ejemplo, me gusta una lógica que analice la regresión de los dos dentro de N pasos de tiempo pasados constantes. Luego, cada fila vuelve a evaluar y me da un nuevo resultado. Estos podrían ser una pendiente de regresión lineal, o una prueba tau de una prueba MK no paramétrica o alguna otra salida estadística.
Muchas veces, no sabemos cuándo ha cambiado la correlación entre las X, por lo que este es un intento de analizar el impacto del tiempo para cualquier análisis disponible. N mencionado anteriormente se puede cambiar a varios valores para examinar las tendencias a corto plazo frente a mediano/largo plazo.
Estoy bien con los scripts, no son mi preferencia a menos que los cálculos puedan beneficiar mucho un método ofrecido solo por scripts.
Mi preferencia es generalmente poner los cálculos en fórmulas y mantenerlos dentro de los marcos de datos.
Hasta hoy, I No sepa que las estructuras de secuencias de comandos se pueden implementar dentro de las fórmulas.
Probablemente esa fue la causa principal de mi confusión.
Agradezco toda su ayuda.
Re: Cálculo de pendiente de regresión lineal en fórmulaLo sé.
Mi punto es que la mejor manera de comenzar a aprender acerca de las funciones que podría usar en una fórmula es con el Índice de secuencias de comandos.
Re: Cálculo de pendiente de regresión lineal en fórmula¿Puede darnos más antecedentes sobre lo que está buscando?
Las fórmulas, en términos generales, funcionan en filas de una tabla de datos, evaluando una por fila con valores de columna de esa fila como entradas.
Entonces, al solicitar una función de regresión en el editor de fórmulas, uno esperaría que tuviera una matriz de valores de entrada en cada fila de su tabla de datos. Tal vez eso es lo que tienes, pero esa es una estructura inusual.
Entonces, con más información, podemos ayudarlo a comprender cómo podría usar una fórmula para esto, o tal vez, indicarle una dirección fuera del editor de fórmulas.
Re: Cálculo de pendiente de regresión lineal en fórmulaUna fórmula JMP puede ser prácticamente cualquier cosa que desee que sea.Al indicarle la función Linear Regression() en el índice de secuencias de comandos, resulta que muestra su ejemplo en forma de secuencia de comandos, pero la función también se puede usar en una fórmula.A continuación se muestra un ejemplo tonto del cálculo de la regresión para las primeras filas 1-3, luego 1-4, 1-5, etc. para todas las filas en la tabla de datos de Big Class.Aquí está la fórmula...….adjunta en la tabla de datos con la nueva columna de fórmula añadida

Re: Cálculo de pendiente de regresión lineal en fórmulaNo estoy buscando un guión.
Estoy buscando una aplicación de fórmula (es decir, usando el generador de fórmulas)Re: Cálculo de pendiente de regresión lineal en fórmulaSeleccione Ayuda > Índice de secuencias de comandos. Introduzca "regresión" en el cuadro de filtro. Debería encontrar la función Linear Regression() en la segunda lista. Selecciónelo para ver información sobre esta función a la derecha.
Re: Cálculo de pendiente de regresión lineal en fórmulaHola ...
Mencionaste " Función de regresión lineal (), que podría usarse en una fórmula" ... y obtener una pendiente de una fórmula que se ajuste al conjunto de datos proporcionado como objetivo final , ¿dónde se puede encontrar la función Linear Regression() o alguna ayuda?
¿Tienes algún ejemplo?
gracias
Re: Cálculo de pendiente de regresión lineal en fórmulaJ() es una función que crea una matriz de valores idénticos.El valor predeterminado es 1.
|| es un operador que indica concatenación.Entonces, en el ejemplo de Mark, está concatenando 2 matrices.
Estas funciones y operadores están completamente documentados en la Guía de secuencias de comandos
Ayuda==>Biblioteca de documentos JMP …..Guía de secuencias de comandos
Re: Cálculo de pendiente de regresión lineal en fórmula@Mark_Bailey Hola Mark, soy nuevo en JMP y estoy tratando de hacer algo similar a bio_grad donde realizo una regresión lineal en 3 puntos, luego en 4 puntos, luego en una columna en mi tabla de datos. Estoy tratando de entender qué está haciendo realmente su respuesta y tenía un par de preguntas. ¿Qué significa || ¿significar? también lo que es J?Re: Cálculo de pendiente de regresión lineal en fórmulaEstimado @txnelson , ¿puede mostrar cómo modificar el código anterior para ejecutar modelos de ajuste en selecciones de filas basadas en cada id/valor de 'oblea', en lugar del muestreo aleatorio? ¡Gracias!Re: Cálculo de pendiente de regresión lineal en fórmulaHola,
Menciona un "intervalo de 3", si queremos modificarlo para que se mueva la pendiente de "N" muestras, ¿qué valor deberá cambiar?
¡Gracias!
Re: Cálculo de pendiente de regresión lineal en fórmulaEche un vistazo a la función Linear Regression(), que podría usarse en una fórmula.Puede ser algo que puedas usar.
Re: Cálculo de pendiente de regresión lineal en fórmulaHola,
¿Hay algún plan para poner la pendiente y la intersección en el generador de fórmulas de una futura versión de JMP con una función directa más sencilla?
Gracias.
Re: Cálculo de pendiente de regresión lineal en fórmulaExcelente, eso funciona, gracias
Re: Cálculo de pendiente de regresión lineal en fórmulaEsta fórmula modificada produce una pendiente móvil de tramo 8:
If( Row() > 7,
x = J( 8, 1, 1 ) || :height[Index( Row() - 7, Row() )]`;
y = :weight[Index( Row() - 7, Row() )]`;
(Inv( x` * x ) * x` * y)[2];
)
Re: Cálculo de pendiente de regresión lineal en fórmulaHola
Estoy tratando de aplicar su fórmula para calcular la pendiente móvil con una ventana de 8, lo que quiero decir (para Fila ()> 7), quiero calcular la pendiente de la regresión lineal para el primer conjunto de datos x e y puntos [1 a 8], y luego el siguiente conjunto de 8 puntos de datos incrementando en 1 [2 a 9], y así sucesivamente. Estoy tratando de calcular la pendiente máxima para obtener la velocidad inicial de una reacción enzimática.
Por favor, ¿puede decirme cómo modificaría su secuencia de comandos para lograr esto? He probado su fórmula y obtengo la pendiente para todos los puntos de datos desde la Fila 1 hasta la Fila n, en lugar de una ventana móvil de tamaño definido.
gracias de antemano
Re: Cálculo de pendiente de regresión lineal en fórmulaguau~~ Impresionante!!!!!!
¡¡¡¡¡Muchas gracias!!!!! : )
Re: Cálculo de pendiente de regresión lineal en fórmulaEsto es exactamente lo que estaba buscando. ¡No tenía idea de que estas operaciones estaban disponibles!
¡Gracias!
Re: Cálculo de pendiente de regresión lineal en fórmulaTambién puede usar una fórmula de columna. Abrí Big Class.jmp desde la carpeta Sample Data. (Seleccionar Ayuda > Biblioteca de datos de muestra > Clase grande.jmp > Abierto ) Creé una nueva columna numérica llamada pendiente móvil . Este ejemplo calcula la pendiente móvil con un intervalo de 3 para Y = peso y X = altura con la siguiente fórmula de columna:
If( Row() > 1,
x = J( Row(), 1, 1 ) || :height[Index( 1, Row() )]`;
y = :weight[Index( 1, Row() )]`;
(Inv( x` * x ) * x` * y)[2];
,
Empty()
)
Luego, grafique la pendiente móvil frente a la fila en Graph Builder.
Re: Cálculo de pendiente de regresión lineal en fórmulaIntente conectar esta fórmula en una nueva columna de fórmula (esto calculará la pendiente hasta la fila actual):
(Row() * Summation( i = 1, Row(), :Time[i] * :Volume[i] )
-Summation( i = 1, Row(), :Time[i] ) * Summation( i = 1, Row(), :Volume[i] )) / (
Row() * Summation( i = 1, Row(), :Time[i] ^ 2 )
-Summation( i = 1, Row(), :Time[i] ) ^ 2)
Hacer la segunda parte de su pregunta solo requeriría cambiar el índice en la sumatoria, es decir, de i=Row()-N a Row()+N.
Espero que esto ayude.
-Alemán
Re: Cálculo de pendiente de regresión lineal en fórmulaAquí hay una secuencia de comandos que le brinda el resultado que desea, simplemente lo hace de una manera diferente.Utiliza la plataforma Fit Model y la recorre varias veces, aumentando la N.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );
// Create an output table to hold the results
dtOut = New Table( "summary",
New Column( "Instance" ),
New Column( "N" ),
New Column( "RSquare" ),
New Column( "RSM" ),
New Column( "Intercept" ),
New Column( "b1" ),
New Column( "b2" )
);
Loop Counter = 0;
// Loop across the different sizes
For( i = 5, i <= 111, i = i + 5,
Loop Counter++;
// Create a random sample data table from the original data table
dt << New Column( "random", formula( Random Uniform() ) );
dt << sort( by( dt:random ), , Order( Ascending ), replace table( 1 ) );
dt << delete columns( "Random" );
dt << select where( Row() <= i );
dtSample = dt << subset( invisible, selected rows( 1 ), selected columns( 0 ) );
// Run the regression
fm = dtSample << Fit Model(
Y( :NPN1 ),
Effects( :PNP1, :PNP2 ),
Personality( "Standard Least Squares" ),
Emphasis( "Minimal Report" ),
Run(
:NPN1 << {Summary of Fit( 1 ), Analysis of Variance( 1 ), Parameter Estimates( 1 ),
Lack of Fit( 0 ), Plot Actual by Predicted( 0 ), Plot Regression( 0 ),
Plot Residual by Predicted( 0 ), Plot Effect Leverage( 0 )}
)
);
// Capture the output data
dtOut << Add Rows( 1 );
dtOut:Instance[N Rows( dtOut )] = Loop Counter;
dtOut:N[N Rows( dtOut )] = i;
dtOut:RSquare[N Rows( dtOut )] = (Report( fm )["Summary of Fit"][1][2] << get)[1];
dtOut:RSM[N Rows( dtOut )] = (Report( fm )["Summary of Fit"][1][2] << get)[3];
dtOut:Intercept[N Rows( dtOut )] = (Report( fm )["Parameter Estimates"][1][3] << get)[1];
dtOut:b1[N Rows( dtOut )] = (Report( fm )["Parameter Estimates"][1][3] << get)[2];
dtOut:b2[N Rows( dtOut )] = (Report( fm )["Parameter Estimates"][1][3] << get)[3];
// Clean up after our selfs
fm << close window;
Close( dtSample, nosave );
);Re: Calcular pendiente de regresión lineal en fórmulaFantástica solución para EXACTAMENTE lo que quería hacer. ¡¡Gracias!!
Re: Calcular pendiente de regresión lineal en fórmulaLas personas interesadas en este problema tal vez quieran considerar apoyar la idea del deseo:
https://community.jmp.com/t5/JMP-Wish-List/Moving-Rolling-Window-Statistics/idi-p/722620