
MASSパッケージのサンプルデータセットを巡回中。大文字優先のABC順。前回は「タイヤのゴムの加速試験の結果」でした。今回はStandard and Poors 500指数の「リターン」です。ドットコムバブルにわいていた1990年代のデータみたいです。しかしデータ説明に1か所齟齬あり、ドツボにハマりました。
※「データのお砂場」投稿順Indexはこちら
SP500
今回のサンプルデータセット ”SP500″ の解説ページが以下に。
Returns of the Standard and Poors 500
代表的な米国の株価指数の一つである、スタンダード・プアーズ500指数の1990年代の全取引日を通じた「毎日のリターン」を列挙したデータベースです。ひたすら騰落のパーセンテージをずらずら列挙しただけのもの。
S&P500指数については株式投資に精通されている姉貴兄貴の皆さま方は良ーくご存じかと思いますが、米国の株価指数については証券会社様のサイトに多数解説が存在します。 以下はSMBC日興証券様の解説ページっす。
【米国株初心者向け】NYダウ、S&P500、NASDAQ総合とは? 米国株の主要3指数をわかりやすく解説
まあ、今回は測定誤差など入りようがない株式データなので「楽観」していたら、ツボにハマりました。それはサンプルデータセット ”SP500″ の解説ページの以下の記述に原因があります。以下引用デス。
A vector of returns of the Standard and Poors 500 index for all the trading days in 1990, 1991, …, 1999.
上記見て、サンプルデータセットは1990年から1999年までの10年間のデータである、とお惚け老人は理解しました。よって期間10年ということで「計算」を進めたところが、全然計算が合いませぬ。答え合わせに使わせていただいたのは、以下のページに掲載のデータであります。
S&P 500 Historical Annual Returns (1927-2025)
七転八倒して調べたところ、結論は簡単でした。サンプル・データ・セットに含まれている生データを突き合わせして調べたところ、実際の対象期間は以下の11年分でありました。
1990年1月3日~2000年12月29日
11年分のデータを10年分だと思い込んで「ザックリ」処理していたための齟齬でした。上記期間に訂正したら、ほぼほぼ目論見通りの結果。なんだかな~。
なお、この期間にS&P500指数は358.8から1320.3(終値)へ上昇してます。ただ2000年には、例の「ドットコム・バブル(インターネット・バブルとも)」崩壊の兆しが見えており、この後、いったん奈落の底へ落ちることになるのです。データセットは、その直前のイケイケな時代(日本では「失われた」の時代だけれども)の反映みたいです。因みに本日時点のインデックスは6389.77とな。
先ずは生データ
x軸の「index」というのは、各営業日に対して1から2780のインデックスが与えられておるぞ、ということであります。一方、縦軸のSP500は、SP500の「インデックス」の絶対値ではなく、各営業日毎の騰落のパーセンテージです。こうしてみると、上がる日もあれば、下がる日もあり。ほぼほぼ0%付近を行ったり来たりしているようにも見えますが、11年間通してみたら、ほぼほぼ3倍以上に上がっておるぞ、と。ううむ。。。
毎日のリターンから年間のリターンを計算して~
正直、1990年代の毎日のリターンが分かってもなんだかな~と思ったので、とりあえず「年間のリターン」に換算したい、と思ってツボにハマりました。お惚け老人の目論見は以下です。
毎日のリターンの1年分の総乗をとれば、年間のリターンが得られる筈
ただ、やってみると「正解」とは程遠い数字になってしまいます。その原因はサンプルデータセットが10年分で2780点(1年あたり278点)として「ざっくり」1年としてデータを区切っていたためでした。営業日数が年間278日というのはちょっと多いんでないかい、と気づけばよかったのですが後の祭り。250くらいがよかったね。結局、生データをコツコツ調べて、上記に書いたような11年分のデータであることが分かりました。区切りを11年にしたところ(2780は11で割り切れないので、半端でてしまいますが、そこは無視)以下のようなグラフを得ました。
計算手順は以下に。
x <- 1 + SP500/100 y <- matrix(x, ncol = 11) z <- apply(y, 2, prod) year <- 1990:2000 zp <- (z - 1)*100 plot(year, zp, ylab="Return [%]", type="b", main="SP500 1990-2000")
機械的に年の営業日数を分配しているので多少の凸凹はある筈だけれども、「歴史的なデータ」の年間リターンの数字とほぼほぼ一致。良かった。