時系列に沿った欠損値処理
日付順に並べ直してから、前後の値で空欄を埋めます。 日次の売上に抜けがある、センサーの記録が一部欠けている、といったときに使います。
日付を見ずに平均や固定値で埋めるなら欠損値処理を使ってください。
入出力
| ポート | 内容 |
|---|---|
| 入力データ | データ |
| 出力データ | データ |
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-01 | 100 |
| 2024-04-02 | (空欄) |
| 2024-04-03 | 200 |
設定
| 設定項目 | 値 |
|---|---|
| 対象列を選択 | 売上 |
| 基準となる日付・日付時間列を選択 | 日付 |
| 補間方法を選択 | 線形補間 |
| 補間範囲の設定 | 内側のみ |
出力 — 4 月 2 日が 150 になります。
2. 店舗ごとに補間する
店舗が混ざったデータで、隣の店舗の値が流れ込まないようにしたいとき。
入力
| 店舗 | 日付 | 売上 |
|---|---|---|
| 渋谷 | 2024-04-01 | 100 |
| 渋谷 | 2024-04-02 | (空欄) |
| 渋谷 | 2024-04-03 | 200 |
| 池袋 | 2024-04-01 | 50 |
設定
| 設定項目 | 値 |
|---|---|
| 対象列を選択 | 売上 |
| 基準となる日付・日付時間列を選択 | 日付 |
| グループごとに補間する | on(列に 店舗) |
出力 — 渋谷の 4 月 2 日だけが 150 になります。出力は店舗ごとにまとまった並びになります。
3. 長い欠測は埋めない
3 行までは埋めたいが、それ以上続く欠測は空のまま残したいとき。
入力
| 日付 | 気温 |
|---|---|
| 2024-04-01 | 15 |
| 2024-04-02 | (空欄) |
| 2024-04-03 | (空欄) |
| 2024-04-04 | (空欄) |
| 2024-04-05 | (空欄) |
| 2024-04-06 | (空欄) |
| 2024-04-07 | 21 |
設定
| 設定項目 | 値 |
|---|---|
| 対象列を選択 | 気温 |
| 基準となる日付・日付時間列を選択 | 日付 |
| 補間方法を選択 | 線形補間 |
| 連続欠損値の補間を制限する | on |
| 補間する最大連続数を設定 | 3 |
| 連続欠損値補間の方向を選択 | 上から |
出力 — 4 月 2 日 16、3 日 17、4 日 18 が入り、5 日と 6 日は空欄のまま残ります。
方向を既定の「両方から」にすると、5 行すべてが埋まります(16 / 17 / 18 / 19 / 20)。上から 3 行と下から 3 行が重なるためです。残す行を出したいなら、方向を上からか下からにしてください。
4. なめらかに埋める
気温のように上がって下がる値で、直線だと折れ曲がりが気になるとき。
入力
| 時刻 | 気温 |
|---|---|
| 06:00:00 | 12 |
| 09:00:00 | 15 |
| 12:00:00 | (空欄) |
| 15:00:00 | 24 |
| 18:00:00 | 20 |
| 21:00:00 | 15 |
設定
| 設定項目 | 値 |
|---|---|
| 対象列を選択 | 気温 |
| 基準となる日付・日付時間列を選択 | 時刻 |
| 補間方法を選択 | スプライン補間 |
| アルゴリズム次数の設定 | 3 |
出力 — 12:00 に 20 が入ります。方法を変えると同じデータでも次のように変わります。
| 補間方法 | 12:00 に入る値 |
|---|---|
| 線形補間 | 19.5 |
| スプライン補間(次数 2) | 20.619 |
| スプライン補間(次数 3) | 20 |
| 秋間法 | 20.456 |
| 最近傍補間 | 15 |
次数を上げるほど必要な実測値の数が増えます。 実測値が次数以下しかないとエラーになるので、上の例で次数 5 を選ぶと(実測値 5 個)止まります。
5. 段階的に変わる値を埋める
設定値や在庫区分のように段階で変わるもので、途中の半端な値を作りたくないとき。
入力
| 時刻 | 設定値 |
|---|---|
| 10:00:00 | 1 |
| 10:01:00 | (空欄) |
| 10:02:00 | 3 |
設定
| 設定項目 | 値 |
|---|---|
| 対象列を選択 | 設定値 |
| 基準となる日付・日付時間列を選択 | 時刻 |
| 補間方法を選択 | 最近傍補間 |
出力 — 10:01 に 1 が入ります。線形補間のような 2 にはなりません。
前後がちょうど同じ距離のときは手前の値になります。 空欄が 2 行続くときは、上半分が手前の値、下半分が先の値です(1 / 空欄 / 空欄 / 4 → 1 / 1 / 4 / 4)。