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&#12418;&#12375;&#12367;&#12399;spline&#12391;&#27424;&#25613;&#20516;&#12434;&#35036;&#38291;:na_interpolation&#12467;&#12510;&#12531;&#12489;
#&#12458;&#12503;&#12471;&#12519;&#12531;&#12391;&#25351;&#23450;
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

#&#27424;&#25613;&#20516;&#12398;&#21069;&#12414;&#12383;&#12399;&#24460;&#12398;&#20516;&#12391;&#27424;&#25613;&#20516;&#12434;&#35036;&#38291;:na_locf&#12467;&#12510;&#12531;&#12489;
#locf:&#21069;&#12398;&#20516;&#12391;&#35036;&#38291;,nocb:&#24460;&#12429;&#12398;&#20516;&#12391;&#35036;&#38291;
na_locf(TestData, option = "locf")
Time Series:
Start = 1 
End = 8 
Frequency = 1 
[1] 2 3 4 5 6 6 7 8

#&#24179;&#22343;,&#20013;&#22830;&#20516;,&#26368;&#38971;&#20516;&#12391;&#27424;&#25613;&#20516;&#12434;&#35036;&#38291;:na_mean&#12467;&#12510;&#12531;&#12489;
#mean:&#24179;&#22343;,median:&#20013;&#22830;&#20516;,&#26368;&#38971;&#20516;:median
na_mean(TestData, option = "mean")
Time Series:
Start = 1 
End = 8 
Frequency = 1 
[1] 2 3 4 5 6 5 7 8

#&#12521;&#12531;&#12480;&#12512;&#12395;&#27424;&#25613;&#20516;&#12434;&#35036;&#38291;:na_random&#12467;&#12510;&#12531;&#12489;
#upper_bound:&#19979;&#38480;&#20516;,upper_bound:&#19978;&#38480;&#20516;
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

#&#27424;&#25613;&#20516;&#12398;&#38500;&#21435;:na_remove&#12467;&#12510;&#12531;&#12489;
na_remove(TestData)
Time Series:
Start = 1 
End = 7 
Frequency = 1 
[1] 2 3 4 5 6 7 8

#&#27424;&#25613;&#20516;&#12408;&#12398;&#20195;&#20837;:na_replace&#12467;&#12510;&#12531;&#12489;
na_replace(TestData, fill = 99999)
Time Series:
Start = 1 
End = 8 
Frequency = 1 
[1]  2     3     4     5     6  99999  7  8

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

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