コンテンツにスキップ

時系列に沿った欠損値処理

日付順に並べ直してから、前後の値で空欄を埋めます。 日次の売上に抜けがある、センサーの記録が一部欠けている、といったときに使います。

日付を見ずに平均や固定値で埋めるなら欠損値処理を使ってください。

入出力

ポート内容
入力データデータ
出力データデータ

Spark エンジンでは動きません。

行と列の数は変わりません。 変わるのは、対象列の空欄に入る値と行の並び順です。

設定項目

対象列を選択必須
埋める列。型の制限はありませんが、数値の列を想定した計算をします。複数選べます。
基準となる日付・日付時間列を選択必須
並べ替えの軸にする列。日付・日付時間・時間の列だけ選べます。
グループごとに補間する
on にすると列を選ぶ欄が出て、グループごとに別々に補間します。
グルーピングする列を選択
「グループごとに補間する」を on にすると出ます。ここで選んだ列の値が同じ行ごとに、別々に補間します。
補間方法を選択
線形補間(既定)/ スプライン補間 / 最近傍補間 / 秋間法。
アルゴリズム次数の設定
スプライン補間のときだけ出ます。1〜5 から選びます。既定は 2。
補間範囲の設定
内側のみ(既定)/ 外側のみ / 両方。秋間法では「内側のみ」しか選べません。
連続欠損値の補間を制限する
既定は off。on にすると次の 2 つが出ます。
補間する最大連続数を設定必須
連続した空欄を何個まで埋めるか。
連続欠損値補間の方向を選択
両方から(既定)/ 上から / 下から。上限まで数える向きを決めます。

基準列は並べ替えにしか使われません

出力は基準列の昇順に並び替わります。 グループを指定したときは、グループごとにまとまったうえで基準列の昇順になります。元の順に戻したいときは、あとで行の並べ替えをつないでください。

補間方法の違い

方法埋め方向いている場面
線形補間前後を直線で結ぶまず試す(既定)
スプライン補間なめらかな曲線で結ぶ滑らかに変化するデータ
最近傍補間近い方の値をそのまま使う段階的に変わる値
秋間法行き過ぎを抑えた曲線曲線だが波打たせたくない

補間範囲

設定埋めるところ
内側のみ(既定)前後の両方に実測値がある空欄だけ
外側のみデータの先頭・末尾にある空欄だけ
両方上の両方

端の外側は推定の根拠が弱いので、既定の「内側のみ」から始めてください。

連続した空欄を埋めすぎない

空欄が 30 日続いているところを線形で埋めると、根拠のない値が 30 日分できます。

連続欠損値の補間を制限するを on にして補間する最大連続数を設定に上限を入れると、長い欠測を空欄のまま残せます。上限は連続欠損値補間の方向を選択と組み合わせて効きます。

方向埋まるところ上限 3 のとき
両方から(既定)上から上限個と、下から上限個の両方連続 6 行までは全部埋まる。7 行で 1 行、8 行で 2 行残る
上から上から上限個だけ連続 5 行なら上の 3 行が埋まり、下の 2 行が残る
下から下から上限個だけ連続 5 行なら下の 3 行が埋まり、上の 2 行が残る

エラーと対処

下の 4 つは、補間方法を変えるか、データを増やすことで通ります。 最後の 1 つだけは列の選び直しが要ります。

スプライン補間が実行できない

スプライン補間で、次数が範囲外か、データの行数が足りないときに出ます。

次数は 1 ~ 5までの整数を入力してください。もしくはデータの数が少ないため実行できません。

直し方 — 次数を下げるか、線形補間に変えてください。グループごとに補間しているときは、行数の少ないグループが原因のことがあります。

最近傍補間で値が 1 つしかない

最近傍補間で、対象列に実測値が 1 つしかないときに出ます。

最近傍補間は2行以上でデータの値が1つだけだと実行できないので、他のアルゴリズムをお試しください。

直し方 — 他の補間方法に変えてください。

グループの中に値が 1 つしかない列がある

グループごとに補間するを on にして最近傍補間を選んだとき、どこかのグループで実測値が 1 つしかないと出ます。

グループの中で値が1つしか無い列が存在します。最近傍補間は2行以上でデータの値が1つだけだと実行できないので、他のアルゴリズムをお試しください。

直し方 — グループの分け方を粗くするか、補間方法を変えてください。

不明なエラー

線形補間と秋間法で失敗したときは、このエラーにまとめられます。対象列が数値でない、値が 1 つもない、といった場合が当てはまります。

処理中に不明なエラーが検知されました。nehanへお問い合わせください。 {{e}}

直し方 — 対象列が数値になっているか、実測値が 2 つ以上あるかを確かめてください。それでも出るなら、設定とデータを添えて問い合わせてください。

選んだ列が入力にない

前の処理で列名が変わった・列が消えたときに出ます。対象列を選択と基準となる日付・日付時間列を選択で文言が違います。

対象の列が存在しません。

対象の列が選択されていません。

直し方 — どちらの欄も開いて選び直してください。

よく使う例

1. 日次データの抜けを埋める

1 日だけ記録がなく、グラフが途切れてしまうとき。

入力

日付売上
2024-04-01100
2024-04-02(空欄)
2024-04-03200

設定

設定項目値
対象列を選択売上
基準となる日付・日付時間列を選択日付
補間方法を選択線形補間
補間範囲の設定内側のみ

出力 — 4 月 2 日が 150 になります。

2. 店舗ごとに補間する

店舗が混ざったデータで、隣の店舗の値が流れ込まないようにしたいとき。

入力

店舗日付売上
渋谷2024-04-01100
渋谷2024-04-02(空欄)
渋谷2024-04-03200
池袋2024-04-0150

設定

設定項目値
対象列を選択売上
基準となる日付・日付時間列を選択日付
グループごとに補間するon(列に 店舗)

出力 — 渋谷の 4 月 2 日だけが 150 になります。出力は店舗ごとにまとまった並びになります。

3. 長い欠測は埋めない

3 行までは埋めたいが、それ以上続く欠測は空のまま残したいとき。

入力

日付気温
2024-04-0115
2024-04-02(空欄)
2024-04-03(空欄)
2024-04-04(空欄)
2024-04-05(空欄)
2024-04-06(空欄)
2024-04-0721

設定

設定項目値
対象列を選択気温
基準となる日付・日付時間列を選択日付
補間方法を選択線形補間
連続欠損値の補間を制限するon
補間する最大連続数を設定3
連続欠損値補間の方向を選択上から

出力 — 4 月 2 日 16、3 日 17、4 日 18 が入り、5 日と 6 日は空欄のまま残ります。

方向を既定の「両方から」にすると、5 行すべてが埋まります(16 / 17 / 18 / 19 / 20)。上から 3 行と下から 3 行が重なるためです。残す行を出したいなら、方向を上からか下からにしてください。

4. なめらかに埋める

気温のように上がって下がる値で、直線だと折れ曲がりが気になるとき。

入力

時刻気温
06:00:0012
09:00:0015
12:00:00(空欄)
15:00:0024
18:00:0020
21:00:0015

設定

設定項目値
対象列を選択気温
基準となる日付・日付時間列を選択時刻
補間方法を選択スプライン補間
アルゴリズム次数の設定3

出力 — 12:00 に 20 が入ります。方法を変えると同じデータでも次のように変わります。

補間方法12:00 に入る値
線形補間19.5
スプライン補間(次数 2)20.619
スプライン補間(次数 3)20
秋間法20.456
最近傍補間15

次数を上げるほど必要な実測値の数が増えます。 実測値が次数以下しかないとエラーになるので、上の例で次数 5 を選ぶと(実測値 5 個)止まります。

5. 段階的に変わる値を埋める

設定値や在庫区分のように段階で変わるもので、途中の半端な値を作りたくないとき。

入力

時刻設定値
10:00:001
10:01:00(空欄)
10:02:003

設定

設定項目値
対象列を選択設定値
基準となる日付・日付時間列を選択時刻
補間方法を選択最近傍補間

出力 — 10:01 に 1 が入ります。線形補間のような 2 にはなりません。

前後がちょうど同じ距離のときは手前の値になります。 空欄が 2 行続くときは、上半分が手前の値、下半分が先の値です(1 / 空欄 / 空欄 / 4 → 1 / 1 / 4 / 4)。

関連