¿CÓMO ENCONTRAR MÍNIMOS/MÁXIMOS EN JMP?¿Hay alguna manera de encontrar este mínimo (como se muestra en la figura) y excluir los datos a su izquierda?

Modelado Estadístico AvanzadoAutomatización y secuencias de comandosAnálisis y modelado de datos básicosRe: ¿CÓMO ENCONTRAR MÍNIMOS/MÁXIMOS EN JMP?No soy la persona adecuada para responder esto, pero probablemente necesite un poco más de información para comprender qué tipo de respuesta encaja:
¿Los datos son realmente tan fluidos? ¿O los datos son ruidosos?
¿Solo necesita la primera fila que es más grande que la fila anterior?
¿Hay una ecuación que genera los datos?
Re: ¿CÓMO ENCONTRAR MÍNIMOS/MÁXIMOS EN JMP?Hola Craige,
Gracias por la respuesta. Adjunté la tabla de datos (Minima_Jmp) con columnas X e Y para este gráfico.
Las siguientes son mis respuestas:
1] ¿Los datos son realmente tan fluidos? ¿O los datos son ruidosos?
Respuesta: Los datos son ruidosos, como se muestra en los siguientes 2 gráficos
2] ¿Solo necesita la primera fila que es más grande que la fila anterior?
Respuesta: Esta pregunta no es muy clara para mí: buscaría el primer punto mínimo y excluiría todos los datos a su izquierda
3] ¿Hay una ecuación que genera los datos?
Y: No, no hay una ecuación para estos datos. Tal vez podamos ajustar una ecuación para describir la curva, pero solo será una aproximación.


Re: ¿CÓMO ENCONTRAR MÍNIMOS/MÁXIMOS EN JMP?Su pregunta original parece ser sobre una spline, ajustarse a los datos ruidosos y encontrar el primer mínimo de esa spline. Para los datos de ejemplo, esto parece funcionar:
dt = Open( "Z:/Minima_JMP.jmp" );
dt << sort( by( x ), replacetable( 1 ) );
obj = dt << Bivariate(
Y( :Y ),
X( :X ),
Fit Spline( 26.8534445, {Line Color( {66, 112, 221} )} ),
Automatic Recalc( 1 ),
SendToReport( Dispatch( {}, "Bivar Plot", FrameBox, {Frame Size( 1653, 240 )} ) )
);
obj << (Curve["Smoothing Spline Fit, lambda=26.8534445"] << Save Predicteds);
For( irow = 2, irow < N Rows( dt ), irow += 1,
If( dt:Spline Predictor for Y[irow] > dt:Spline Predictor for Y[irow - 1],
Write( Eval Insert( "the inflection upward trend begins around row ^irow^" ) );
// choose one of these...
dt << selectrows( 1 :: irow );
// dt<<DELETEROWS>= N Rows( dt ),
Write( "not found?" )
);</DELETEROWS>
The selected points in the graph are also selected rows in the data table; press delete in the table. Or, choose the <<deleterows statement.The selected points in the graph are also selected rows in the data table; press delete in the table. Or, choose the <<deleterows statement.The selected points in the graph are also selected rows in the data table; press delete in the table. Or, choose the <<deleterows statement.The selected points in the graph are also selected rows in the data table; press delete in the table. Or, choose the <<deleterows statement.The selected points in the graph are also selected rows in the data table; press delete in the table. Or, choose the <<deleterows statement.The selected points in the graph are also selected rows in the data table; press delete in the table. Or, choose the <<deleterows statement.The selected points in the graph are also selected rows in the data table; press delete in the table. Or, choose the <<deleterows statement.The selected points in the graph are also selected rows in the data table; press delete in the table. Or, choose the <<deleterows statement.The selected points in the graph are also selected rows in the data table; press delete in the table. Or, choose the <<deleterows statement.The selected points in the graph are also selected rows in the data table; press delete in the table. Or, choose the <<deleterows statement.The selected points in the graph are also selected rows in the data table; press delete in the table. Or, choose the <<deleterows statement.The selected points in the graph are also selected rows in the data table; press delete in the table. Or, choose the <<deleterows statement.The selected points in the graph are also selected rows in the data table; press delete in the table. Or, choose the <<deleterows statement.Los puntos seleccionados en el gráfico también son filas seleccionadas en la tabla de datos; presione eliminar en la tabla. O bien, elija la sentencia <
En el registro: la tendencia ascendente de inflexión comienza alrededor de la fila 231
Eso es después de ordenar la tabla ascendiendo X.
Obtendrá diferentes respuestas ajustando la tensión de la spline (lambda=...). Asegúrese de eliminar la columna predicha antes de volver a ejecutar el script o cierre la tabla sin guardar.
Esta idea fallará si la forma real de los datos no coincide con su ejemplo; si ya está en tendencia al principio, etc.
Esta puede no ser la forma correcta de hacer lo que necesita; Creo que tendrá que explicar de qué tipo de proceso provienen los datos y por qué desea encontrar este punto en los datos para que otras personas agreguen algunas ideas.
Re: ¿CÓMO ENCONTRAR MÍNIMOS/MÁXIMOS EN JMP?Hola Craige,
Esto se ve maravilloso. Lo probaré en otras tablas de datos y comprobaré.
¿Hay alguna manera de que podamos encontrar un valor lambda adecuado si tengo que automatizar este análisis para múltiples tablas de datos de datos similares?
Gracias.
Re: ¿CÓMO ENCONTRAR MÍNIMOS/MÁXIMOS EN JMP?No sé. Creo que es en parte ciencia, en parte arte, especialmente con splines. Creo que querrá agregar algunas comprobaciones de cordura al código si intenta automatizarlo sin inspeccionar visualmente los resultados. Si es posible que su proceso produzca una oscilación adicional al principio, esto fallará claramente. O más datos, o menos datos, o diferentemente densos/escasos en el rango, etc. podrían cambiar los resultados.
Hay personas que pueden sugerir otros modelos que son específicos para procesos o industrias. Necesitarían más información sobre los datos.