radvance

時系列データの作成

 時系列データには「観測時点」に関するデータがつきものです。例えば年次データだと「1998年」「1999年」といった年がそれです。もとの経済データには当然、何年のデータであるかが記されています。

 基本的にRの時系列処理では、観測時点のデータがExcelデータに書き込んであっても、それは使いません。スクリプトの中に、それが何年から何年までのデータであるかを書きます。

 ここではRサンプル2のデータに掲げたsample3.csvを読ませて、時系列データだと解釈させる方法を書きます。x1、x2、yの3つの変数についての観測値6組が入っているのがわかりますね。

 次のスクリプトを見てください。

dset <- read.csv("d/sample3.csv", header=TRUE)
dset2 = ts(dset, frequency = 4, start = c(1980,2))
dset2
dset3 = ts(dset, frequency = 1, start = 1980)
dset3

 dsetは3つの変数x1、x2、yの観測値6組全体に1行目でつけた名前です。

dset2 = ts(dset, frequency = 4, start = c(1980,2))

 は、頻度4の時系列、つまり四半期データであることを示します。start = c(1980,2)は、1980年の第2四半期(4-6月)からデータが始まることを指示しています。時系列情報を与えたのでdset2という別の名前をつけていますが、同じ名前でもかまいません。

dset3 = ts(dset, frequency = 1, start = 1980)

 は、年次データを扱う例です。startのあとのcや括弧は不要です。もし月次データなら、frequency=12にして、dset2と同様に始まりの月を指定してやればいいのです。

 実行させると、こんな結果が出るはずです。「dset2」「dset3」とだけ書いてある行は、中身を表示しろ、という指示です。

> dset <- read.csv("d/sample3.csv", header=TRUE)
> dset2 = ts(dset, frequency = 4, start = c(1980,2))
> dset2
         x1    x2    y
1980 Q2 1.5  1.00 -3.2
1980 Q3 2.3  3.90  2.0
1980 Q4 3.8  8.60  2.2
1981 Q1 4.2 15.25  6.3
1981 Q2 5.6 28.60  5.8
1981 Q3 6.3 32.68 12.5
> dset3 = ts(dset, frequency = 1, start = 1980)
> dset3
Time Series:
Start = 1980 
End = 1985 
Frequency = 1 
      x1    x2    y
1980 1.5  1.00 -3.2
1981 2.3  3.90  2.0
1982 3.8  8.60  2.2
1983 4.2 15.25  6.3
1984 5.6 28.60  5.8
1985 6.3 32.68 12.5
> 

 より詳しい解説については、zooパッケージの解説文書(英語)およびクイックリファレンスを参照してください。

でもExcelデータに年号はやっぱり書いておこう

 読み込んでもどうせ使わないのですが、やはり年次や月の入った列はExcelデータに残しておいて、ムダでもRに読み込ませることをお勧めします。もう使わないと思ったデータセットでも、あとで間違いが見つかったり、似たような分析に再利用したくなったりして、いつからいつまでのデータだかわからないと困ることになるからです。データとスクリプトが同じところにあればいいんですが、時間が経つと片方しか見つからないこともよくあるので。

attachとdetachの復習

 この例は「読み込んで表示しておしまい」ですが、これから分析をするときは「どのデータセットについて作業をしているか」わからないと困ります。データセットを選ぶのがattach、他をattachする前に、いま選んでいるデータセットを切り離すのがdetachです。スクリプトを何本も連続して動かすと、detachが済んでいないのにattachするとエラーが出ることがあります。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-12-29 (月) 19:17:28 (5681d)