我处理很多基于时间的数据,其中每一行对应一个小时平均值,每一列对应一个仪器读数。 有时,这些仪器一次会失败一两个小时,并且该列有一个空白值。 然而,这些过程响应相当缓慢,所以我知道仪器值可能介于中断前的最后一个良好值和中断前的第一个良好值之间。 仪器故障通常是独立的,因此在这些时候其他仪器仍然值得信赖。
我熟悉探索缺失值,但我认为我没有看到任何“插入缺失值”。 是否有任何选项可以通过使用最后一个好值和下一个好值之间的直线来填充缺失值?
对于时间相关过程(增长、季节性等),局部插值比 JMP 14 中的不同插补选项更有意义。
通过使用样条插值填充缺失值的两个 JSL 示例。
//Example table with missing values
dt = New Table("untitled 28882",
Add Rows(10),
New Column("Time", Set Values([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])),
New Column("Data", Set Values([2, 4, ., 6, 7, 8, ., ., 13, 17]))
);
// 1. Create a new column with imputed missing values
dt << Bivariate(Y(:Data), X(:Time), Fit Spline(1e-15, {Save Predicteds}));
// 2. Or impute missing values directly in the original column
m = Spline Eval(
:Time << get values,
Spline Coef(:Time << get values, :Data << get values, 1e-15)
);
For Each Row(If(Is Missing(:Data), :Data = m[Row()], :Data << color cells(10, Row())));
嗨,大卫勒伯!
您没有提到您使用的是哪个版本的 JMP,但您所说的称为插补。您应该在文档中查找 Impute Missing Values。
现代 JMP 具有一些强大的插补功能,甚至还有插件可用于其他旧版 JMP 的插补。
祝你好运。