我處理大量基於時間的數據,其中每一行對應於每小時平均值,每列對應於儀器讀數。 有時,這些儀器一次會出現故障一兩個小時,並且該列具有空白值。 然而,這些過程的響應速度相當慢,因此我知道儀器值可能介於停電前的最後一個有效值和停電前的第一個有效值之間。 儀器故障通常是獨立的,因此在這些時期其他儀器仍然值得信賴。
我熟悉探索缺失值,但我認為我沒有看到任何“插入缺失”。 是否有任何選項可以通過使用上一個好值和下一個好值之間的直線來填充缺失值?
對於時間相關過程(增長、季節性等),局部插值比 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,但您所說的稱為插補。您應該在文檔中查找“估算缺失值”。
現代 JMP 具有一些強大的插補功能,甚至還有可用於其他舊版本 JMP 插補的插件。
祝你好運。