Rで解析:時系列の欠損値補間だけじゃないかも?「imputeTS」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

時系列の欠損値を補間する「imputeTS」パッケージです。工夫次第では時系列以外にも活用できそうなので紹介します。Rのコマンドで欠損値を操作する方が楽ですが、まずは本パッケージを試してみるのも手かもしれません。

パッケージのバージョンは3.2。実行コマンドはwindows 11のR version 4.1.3で確認しています。


スポンサーリンク

パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("imputeTS")

実行コマンドの紹介

詳細はコメント、パッケージヘルプを確認してください。

#ライブラリの読み込み
library("imputeTS")

#テストデータ
#tsコマンドで時系列データに変換しています
TestData <- ts(c(2,3,4,5,6,NA,7,8))
TestData
Time Series:
Start = 1 
End = 8 
Frequency = 1 
[1]  2  3  4  5  6 NA  7  8

#linearもしくはsplineで欠損値を補間:na_interpolationコマンド
#オプションで指定
na_interpolation(TestData, option = "linear")
Time Series:
Start = 1 
End = 8 
Frequency = 1 
[1] 2.0 3.0 4.0 5.0 6.0 6.5 7.0 8.0

#欠損値の前または後の値で欠損値を補間:na_locfコマンド
#locf:前の値で補間,nocb:後ろの値で補間
na_locf(TestData, option = "locf")
Time Series:
Start = 1 
End = 8 
Frequency = 1 
[1] 2 3 4 5 6 6 7 8

#平均,中央値,最頻値で欠損値を補間:na_meanコマンド
#mean:平均,median:中央値,最頻値:median
na_mean(TestData, option = "mean")
Time Series:
Start = 1 
End = 8 
Frequency = 1 
[1] 2 3 4 5 6 5 7 8

#ランダムに欠損値を補間:na_randomコマンド
#upper_bound:下限値,upper_bound:上限値
na_random(TestData, lower_bound = 100, upper_bound = 1000)
Time Series:
Start = 1 
End = 8 
Frequency = 1 
[1]   2.0000   3.0000   4.0000   5.0000   6.0000 911.4419   7.0000   8.0000

#欠損値の除去:na_removeコマンド
na_remove(TestData)
Time Series:
Start = 1 
End = 7 
Frequency = 1 
[1] 2 3 4 5 6 7 8

#欠損値への代入:na_replaceコマンド
na_replace(TestData, fill = 99999)
Time Series:
Start = 1 
End = 8 
Frequency = 1 
[1]  2     3     4     5     6  99999  7  8

少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました