cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
See how to use JMP Live to centralize and share reports within groups. Webinar with Q&A April 4, 2pm ET.
Choose Language Hide Translation Bar
View Original Published Thread

如何在 JMP 中查找最小值/最大值?

vharibal
Level II

有没有办法找到这个最小值(如图所示)并排除其左侧的数据。

 

 

undefined

 

This post originally written in English (US) has been computer translated for you. When you reply, it will also be translated back to English (US).

5 REPLIES 5
Craige_Hales
Super User

回复:如何在 JMP 中查找最小值/最大值?

我不是回答这个问题的合适人选,但可能需要更多信息来了解什么样的答案适合:

数据真的那么流畅吗? 或者数据有噪音?

您只需要比前一行大的第一行吗?

是否有生成数据的方程式?

 

This post originally written in English (US) has been computer translated for you. When you reply, it will also be translated back to English (US).

vharibal
Level II

回复:如何在 JMP 中查找最小值/最大值?

嗨克雷格,

 

感谢您的答复。 我已附上该图的数据表(Minima_Jmp)以及 X 和 Y 列。

 

以下是我的回复:

 

1]数据真的那么流畅吗? 或者数据有噪音?  

答:数据有噪音 - 如下图 2 所示

 

2]你只需要比前一行大的第一行吗?

答:这个问题对我来说不是很清楚 - 我会找到第一个最小值点并排除其左侧的所有数据

 

3] 是否有生成数据的方程?

并且:不,这个数据没有方程 - 也许我们可以拟合一个方程来描述曲线,但这只是一个近似值

 

undefined

 

undefined

 

 

This post originally written in English (US) has been computer translated for you. When you reply, it will also be translated back to English (US).

Craige_Hales
Super User

回复:如何在 JMP 中查找最小值/最大值?

您最初的问题似乎是关于样条线,适合噪声数据,并找到该样条线的第一个最小值。 对于示例数据,这似乎有效:

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<= N Rows( dt ),
 Write( "not found?" )
);

undefinedThe selected points in the graph are also selected rows in the data table; press delete in the table. Or, choose the <<deleterows statement.

在日志中:拐点上升趋势从第 231 行开始

这是在按 X 升序对表进行排序之后的结果。

通过调整样条线的张力 (lambda=...),您将得到不同的答案。 确保在重新运行脚本之前删除预测列,或者关闭表而不保存。

如果数据的实际形状与您的示例不匹配,这个想法就会被打破;如果一开始就已经呈上升趋势,等等。

 

这可能不是执行您需要的操作的正确方法;我认为你必须解释数据来自什么样的过程以及为什么你想在数据中找到这一点,以便让其他人添加一些想法。

This post originally written in English (US) has been computer translated for you. When you reply, it will also be translated back to English (US).

vharibal
Level II

回复:如何在 JMP 中查找最小值/最大值?

嗨克雷格,

 

这看起来棒极了。 我会在其他数据表上尝试并检查。

如果我必须对相似数据的多个数据表进行自动分析,有没有办法找到合适的 lambda 值?

 

 

谢谢。

This post originally written in English (US) has been computer translated for you. When you reply, it will also be translated back to English (US).

Craige_Hales
Super User

回复:如何在 JMP 中查找最小值/最大值?

我不知道。 我认为它一半是科学,一半是艺术,尤其是样条线。 我认为,如果您尝试在不目视检查结果的情况下实现代码自动化,您将需要向代码添加一些健全性检查。 如果您的过程有可能在开始时产生额外的振荡,那么这显然会失败。 或者更多的数据,或者更少的数据,或者在范围内不同的密集/稀疏等可能会改变结果。

有人可能会建议特定于流程或行业的其他模型。 他们需要有关数据的更多信息。

 

This post originally written in English (US) has been computer translated for you. When you reply, it will also be translated back to English (US).