欠損データの置換 - I
前の演習で確認したとおり、四半期GDPデータにはいくつかの観測値が抜けているようです。実際、前の演習で summary() を実行したところ、欠損データが80個あることがわかりました!
最初のxtsコースで学んだように、xtsやzooには欠損データを扱うためのさまざまな関数があります。
最も簡単な手法は na.locf() です。これは欠損の直前の最後の観測値を前方に引き継いで埋める方法です(そのため「最後の観測値を前方へ」、locf)。この方法は、特にデータの成長を控えめに見積もりたい理由がある場合に、欠損への対処として最も適切なことが多いです。
これと似たアプローチで、欠損の直後の最初の観測値を後ろ向きに引き継ぐ方法(「次の観測値を後方へ」、nocb)もあります。これは、na.locf() の fromLast 引数を TRUE に設定することで実現できます。
どちらの方法が最適かは、扱うデータの種類や、そのデータが時間とともにどのように変化するかについての事前の考え方によって異なります。
この演習はコースの一部です
ケーススタディ:Rで都市の時系列データを分析する
演習の手順
na.locf()を使って、gdp_xtsの欠損値を「最後の観測値の前方引き継ぎ」で埋め、結果をgdp_locfというxtsオブジェクトに保存します。- もう一度
na.locf()を呼び出し、こんどは「次の観測値の後方引き継ぎ」でgdp_xtsの欠損値を埋めます。これにはfromLast引数をTRUEに設定します。結果をgdp_nocbに保存します。 plot.xts()を使ってそれぞれを描画します。両方のプロットを並べて表示するため、用意されたpar()コマンドを含めてください。- それぞれのオブジェクト(
gdp_locfとgdp_nocb)から、1993年のGDPをクエリします。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Fill NAs in gdp_xts with the last observation carried forward
gdp_locf <-
# Fill NAs in gdp_xts with the next observation carried backward
gdp_nocb <-
# Produce a plot for each of your new xts objects
par(mfrow = c(2,1))
plot.xts(___, major.format = "%Y")
plot.xts(___, major.format = "%Y")
# Query for GDP in 1993 in both gdp_locf and gdp_nocb