Wolfram言語

拡張された確率と統計の機能

株価の対数利益率

古典的なブラック・ショールズ(BlackScholes)モデルにおいて幾何ブラウン(Brownian)運動でモデル化された株価は,その対数利益率において正規分布に従うと想定される.ここではその仮定をGoogle,Microsoft,Facebook,Apple,Intelの5社の株価を使って確かめる.

FinancialDataから2015年の株価を取り出す.

In[1]:=
Click for copyable input
symbols = {"GOOG", "MSFT", "FB", "AAPL", "INTC"}; prices = Table[ FinancialData[stock, {{2015, 1, 1}, {2015, 12, 31}}], {stock, symbols}];

対数利益率を計算する.

In[2]:=
Click for copyable input
logreturn = Minus[Differences[Log[prices[[All, All, 2]]], {0, 1}]];

次数1のARCHProcessで対数利益率にフィルタを掛ける.

In[3]:=
Click for copyable input
fdata = Table[ {\[Kappa]1, \[Alpha]1} = {\[Kappa], \[Alpha]} /. FindProcessParameters[lr, ARCHProcess[\[Kappa], {\[Alpha]}]]; MovingMap[Last[#]/Sqrt[\[Kappa]1 + \[Alpha]1 First[#]^2] &, lr, 2] , {lr, logreturn}]; fdata = Transpose[fdata];

各株からのフィルタを掛けたデータと正規分布をQuantilePlotを使って比べる.5社すべてについて,裾部は正規分布から逸脱する.

完全なWolfram言語入力を表示する
In[4]:=
Click for copyable input
MapThread[ QuantilePlot[#1, PlotLabel -> #2, PlotTheme -> "Detailed"] &, {Transpose[fdata], symbols}]
Out[4]=

多変量の正規性検定をBaringhausHenzeTest (BHEP)を使って行う.正規性の仮定は明らかに棄却されている.

In[5]:=
Click for copyable input
htd = BaringhausHenzeTest[fdata, "HypothesisTestData"];
In[6]:=
Click for copyable input
htd["TestDataTable"]
Out[6]=
In[7]:=
Click for copyable input
htd["ShortTestConclusion"]
Out[7]=

フィルタを掛けたデータをMultinormalDistributionMultivariateTDistributionを使ってフィットする.

In[8]:=
Click for copyable input
multiN = EstimatedDistribution[fdata, MultinormalDistribution[Array[x, 5], Array[s, {5, 5}]]]
Out[8]=
In[9]:=
Click for copyable input
multiT = EstimatedDistribution[fdata, MultivariateTDistribution[Array[x, 5], Array[s, {5, 5}], nu]]
Out[9]=

2つの分布について赤池情報量基準(AIC)を計算する.MultivariateTDistributionのモデルの方が小さな値を持つ.

In[10]:=
Click for copyable input
aic[k_, dist_, data_] := 2 k - 2 LogLikelihood[dist, data]
In[11]:=
Click for copyable input
aic[5 + 15, multiN, fdata]
Out[11]=
In[12]:=
Click for copyable input
aic[5 + 15 + 1, multiT, fdata]
Out[12]=

関連する例

de en es fr ko pt-br ru zh