始める無料で始める

正規性の数値的検定

moments パッケージには、データの尖度 (kurtosis)歪度 (skewness) を計算する関数に加えて、これらの高次モーメントに基づくJarque-Bera 検定(正規性の検定)を実行する関数が含まれています。1 回のコマンドで、データの歪度と尖度を正規分布の理論値(それぞれ 0 と 3)と比較します。

jarque.test(x)
skewness(x, na.rm = FALSE)
kurtosis(x, na.rm = FALSE)

この演習では、2008~2011 年のダウ工業株平均 (Dow Jones) 指数である djx について歪度と尖度を計算し、Jarque-Bera 検定で正規性を評価します。続いて、同期間のダウ構成銘柄 29 社のリターンを含む djreturns に対しても同じ方法を適用します。

apply(X, MARGIN, FUN, …) を使うと配列の各マージンに関数を適用できます。MARGIN には関数を適用する方向を示すベクトルを指定します。ここでは、行列 Xに関数 FUN を適用するために 2 を使います。

moments パッケージはインポート済みで、djxdjreturns のデータはワークスペースに用意されています。

この演習はコースの一部です

Rで学ぶ定量的リスク管理

コースを見る

演習の手順

  • skewness()kurtosis() を使って、djx に含まれるダウ指数リターンの歪度と尖度をそれぞれ計算します。
  • jarque.test() を用いて、djx の正規性に関する Jarque-Bera 検定を実行します。
  • apply() を使って、djreturns に含まれる各銘柄リターンの歪度と尖度を計算し、結果をそれぞれ sk に代入します。
  • plot()type = "n" を指定して k を横軸、s を縦軸にプロットし、その点に株式ティッカーを text() コマンドで配置します(この部分は用意されています)。
  • apply() を使って、djreturns の各ダウ構成銘柄について Jarque-Bera 検定を実行します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Calculate skewness and kurtosis of djx
___(___)
___(___)

# Carry out a Jarque-Bera test for djx
___(___)

# Calculate skewness and kurtosis of djreturns 
s <- ___(___)
k <- ___(___)

# Plot k against s and add text labels to identify stocks
plot(___, ___, ___)
text(s, k, names(s), cex = 0.6)

# Carry out Jarque-Bera tests for each constituent in djreturns
___(___)
コードを編集して実行