如何在 x 轴的特定值处执行标准最小二乘回归?
对于更多上下文 - 我绘制了电压与电流的关系图,并且在值 -10A -5A 5A 10A 处,我需要一个包含这些值周围许多点的标准最小回归模型。 我想象在我的数据上用 4 个点或 4 个小线来表示这一点。
我有 JMP 17 pro,目前对所有数据集都执行此操作,但这不是我需要的。
通过 JMP 分析来执行此操作的方法优于脚本,但任何方法都很棒:)
你好@MedianRooster10 ,
您能否分享一个示例数据表,以便我们了解数据的结构? 这可能有助于更快地找到解决方案。
我想到的一个想法是,您有一列将不同的当前组分类为名义数据类型。 您可能有 :Current 列数值,例如 -10、-5、5、10,但您可以有一个包含以下文本的列-10A -5A 5A 10A,对于电流的每个分组,然后当您进行标准 LS 回归时,您使用此列作为“BY”变量。
这就像使用 Big Class.jmp 文件并建模 :height 作为 Y,:weight 作为 X,然后 :sex 作为“BY”变量。 这将为您提供所有 Y 分组到不同电压范围的模型。 这可能不是您想要的,但同样,获取示例数据表将有助于了解数据的结构并提供更具体的解决方案。
希望这可以帮助!,
DS
你好@SDF1
我不认为这就是我所追求的。
我附上了 1 个温度的数据子集和我生成的图表。
它不是线性图,但我确实想要部分线性回归。 例如,我想取 10 个最接近 5A 的数据点并计算其最小平方(将其绘制为图表上的数据点)。
感谢您的帮助!
你好@MedianRooster10 ,
我认为你正在尝试进行分段回归。 您可以使用函数数据浏览器或非线性平台来完成此操作。
此 JMP 博客可能会帮助您在非常相似的用例上实现这种回归类型:使用 JMP 非线性平台拟合分段函数
希望对你有帮助,
你好@MedianRooster10 ,
感谢您提供数据表,这有助于更好地理解事物。
如果您不需要对所有数据进行最小二乘拟合,而只需对某个片段或多个片段进行拟合,我仍然认为使用某种识别列是正确的方法,并将其在模型中用作BY 变量或作为本地数据过滤器。 我还猜测您可能必须对许多数据表或列执行此操作,这意味着编写脚本实际上是一个非常好的方法。
如果您想使用一些脚本来完成此操作,其余部分与 JMP 接口,下面是一些代码,它将对您的数据表进行排序,创建一个新的数据表,生成一个名为 :Segment 的列,然后为该段分配一个值选择。 在代码中,目标是目标当前值——我选择了10,范围是它两侧的数据点数。如果您随后执行常规标准最小二乘法并使用 :Segment 列作为本地数据过滤器,则可以选择段 2 并获得适合数据的最小二乘法。
Names Default To Here( 1 );
Current Data Table() << Sort( By( :"Current(A)"n ), Order( Ascending ), Output Table( "Sorted.jmp" ) );
dt = Data Table("Sorted");
dt << New Column( "Segment", "Continuous", "Ordinal" );
range = 5; //rows to group on either side of target
target = 10; //5A
rows = Current Data Table() << Get Rows Where( (:"Current(A)"n >= target - 0.3 & :"Current(A)"n <= target + 0.3) );
For( i = 1, i <= N Rows(dt), i++,
If(
i < rows - range, :Segment[i] = 1,
(i >= rows - range & i <= rows + range), :Segment[i] = 2,
i > rows + range, :Segment[i] = 3
)
);您会得到如下所示的输出。

如果您在 SLS 模型拟合中使用分段列作为 BY 变量,那么当您获得数据模型时,您可以按住 CTRL 键并左键单击“响应电压”名称之一附近的红色热按钮,然后选择“保存列”>“预测公式”,这会将预测公式列保存到数据表中,其中根据段编号使用不同的方程。



现在,这当然是一种方法。
另一种方法是在图形生成器中制作电压与电流的图形,然后使用套索工具(在放大镜旁边,菜单下)选择您想要拟合的数据。

然后转到“行”>“行选择”>“反转行选择”。

然后右键单击其中一个行号并选择隐藏和排除。 然后,当您转到标准最小二乘模型平台时,您可以仅对那些未隐藏和排除的数据点进行建模。
在下面的示例中,您可以看到模型和 SLS 与数据的拟合情况。 从预测残差图中,您可以看到一些曲率,因此我添加了当前*当前项,并且您可以通过稍微随机的残差获得更好的拟合。


如果您确实知道数据的不同分段部分的公式的函数形式,那么我会按照 Victor 提到的使用非线性平台的方式进行处理。 但是,您需要了解每个部分的功能形式,并知道在哪里“分割”数据。
在这和 Victor 发布的内容之间,您应该已经足够开始了。
希望这可以帮助!,
DS