いっかくのデータサイエンティストをいく

1からプログラミングとデータサイエンスを独習したい

【時系列】GARCHモデル(R)

今回はRで実装します。 今回はこちらのサイトを写経します。 ドル円のボラティリティをGARCHで推定 – Momentum データ まず、データはFRED先生からドル円レートを落としてきて使います。 Japan / U.S. Foreign Exchange Rate | FRED | St. Louis Fed Rで実装…

【時系列】GARCHモデル(理論編)

沖本本7章から。 はじめに ファイナンスの世界では標準偏差のことをボラティリティとよび、重要視されています。それは分散が「最大でどれくらい損益があるか」を示していsるからです。今回はボラティリティ変動モデルです。リスクの大きさをモデリングして…

【時系列】共和分

沖本本5章から。 共和分 単位根の持つデータ同士で回帰分析した場合、見せかけの回帰になってしまうことが多いです。もうあきらめるしかないのか。。。 そんなことはありません!見せかけではない場合があります! それは共和分を持っているときです。 共和…

【時系列】差分系列と単位根検定

沖本本5章から。 差分系列 非定常なデータは時間によって期待値が変化するため予測ができません。 しかし、非定常なデータでも差分をとることによって定常になることがあります。これを差分系列と呼びます。差分をとることはよくやることで一見分析ができな…

【時系列】ホワイトノイズとランダムウォークの違いを考えてみる

ふとホワイトノイズのランダムウォークってどう違うんだろう?と考えてみたのでこの2つをまとめてみます ホワイトノイズ ホワイトノイズは となり弱定常性となります。 ランダムウォーク 時刻nにおける価格p(n)を、 p(n)=p(n−1)+d(n) のように1サンプル前の…

【時系列】VAR(インパルス応答)

沖本本4章3から。 インパルス応答とは ある変数にインパクトを与えると、その影響がどれくらい続くのかをインパルス応答といいます。消費が急に増えると収入にどんな影響があるのかを定量的に評価できます。 そして「時間遅れ(タイムラグ)」の向きを見るこ…

【時系列】VAR(グレンジャーの因果性検定)

沖本本4章3から。 グランジャーの因果性 現在と過去のxの値だけに基づいた将来のxの予測と、現在と過去のxとyの値に基づいた将来のxの予測を比較して、後者のMSE(残渣平方和)の方が小さくなる場合、ytからxtへのグレンジャー因果性(Granger causality)が存…

【時系列】VAR(R:予測)

前回の記事の推計結果に基づいて予測をしてみましょう。 予測にはpredict関数を用います。 yosoku <- predict(Canada.var , n.ahead = 8 #8期先まで予測 , ci = 0.95 #95%信頼区間 , dumvar = NULL) kekka <- ts(yosoku$fcst$e[,1], start=1999, frequency=4…

【時系列】VAR(R:モデル作成)

前回の記事でVARの理論を紹介しましたが、今回はVARをRで実装してみたいと思います。 今回はこちらのサイトとほぼ同じことをやります。 tjo.hatenablog.com logics-of-blue.com パッケージと分析手順 RでVARモデルを実装する場合、{vars}というパッケージを…

【時系列】VAR(理論編)

沖本本第4章です。 VARとは VAR(ベクトル自己回帰)モデルはARモデルを多変量に拡張したものです。簡単に言うと「風が吹けば桶屋が儲かる」を実証する場合、 (桶屋の売り上げ)= (日々の平均風速)× 傾き + 切片 のような形になっているということです。…

【備忘録】エラーバーの表示

2か月ぶりの更新です。 お久しぶりになってしまい申し訳ありません。 いろいろあったので。。。 今回は仕事で使う機会あありました「エラーバーの表示」です。 参考はこちら tips-r.blogspot.com gplotsパッケージのplotmeans関数を使います。 #データ x gro…

【備忘録】zip関数(Python)

zip関数は複数のリストの要素をまとめて取得できます。 ただし、要素数が異なる場合は少ないほうに合わせます。 upper = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', …

【備忘録】breakとcontinue(Python)

forループ文の中で便利なbreakとcontinueについてまとめます。 break break文は処理を終了させる関数で、forループ内でifなどを使ってbreakする位置を決めておくと条件になるとループが終了します。 alphabet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I…

【ビジュアライズ】matplotlibとseabornの文字化けを修正する

AnnacondaやPythonをインストールするたびやらなきゃならない面倒な設定。 やり方をまとめました。といいましてもリンクを張っただけですが。 設定しないと 上の表のように四角(通称豆腐)になってしまいます。 matplotllibの設定 kaisk.hatenadiary.com こ…

【時系列】ARIMA(Python)

時系列データをPythonで扱うのって難しく感じるのは私だけですかねえ。 ARIMAモデル statsmodelsのarima_modelでできます。データは2015年1月から2018年7月までの日経225データです。 import pandas as pd import numpy as np from statsmodels.tsa import a…

【時系列】ARIMA(R)

前回のARIMAモデルをRで実装していきたいと思います。 使用するデータ 2015年1月から2018年7月までの日経225の終値を利用したいと思います。データの作成方法は下記のサイトを参考にしました。 gist.github.com ちなみにPythonやらで使用したいためcsvでいっ…

【時系列】ARIMA(理論編)

沖本本では2章でARMAまで説明しているのにARIMAは第5章まで待たないといけません。 本当は単位根とか説明しないといけないのかもしれませんが先に記事にしたいと思います。 というのもこのARIMAモデルはビジネスの場面で本当によく見かけるからです。 今回は…

【時系列】MA・AR・ARMA(理論編とR)

沖本本第2章のお話です。 有斐閣「統計学」の第12章にも載っています。 さらに今回はこちらも参考にいたしました。 はじめに 正直このあたりから少しずつ難しくなってくるころだと思います。 最初読んだときはほとんど意味がわかりませんでした。 今回は要…

【時系列】自己相関(Python)

自己相関だけです。あとはわからなかった・・・。 自己相関 import pandas as pd import numpy as np from numpy.random import * import matplotlib.pyplot as plt import statsmodels.api as sm #データの読込 data = pd.read_csv("C:\\Users\\imoto-mk\\D…

【時系列】自己共分散と自己相関(R)

前回の実装です。自己共分散と自己相関の実装となります。 Rで実装 データは1994年から2017年の名目GDPです。 #データ読込 df <- read.csv("C:\\Users\\imoto-mk\\Documents\\meimoku_GDP.csv") df # Year GDP #1 1994 502636.2 #2 1995 516406.5 #3 1996 52…

【時系列】時系列の基本統計量(理論編)

沖本本P6の内容です。 森棟本有斐閣「統計学」第12章でも扱われております。 自己共分散 自己共分散は、同一の時系列データの別の2時点のデータ間の共分散のことです。 1期間離れたデータを1次のデータとすると、1次の共分散は となります。 自己共分散…

【時系列】時系列分析の基礎概念と定常性・ホワイトノイズ

今日から通称沖本本で時系列分析をやっていきたいと思います。 時系列は森棟本有斐閣「統計学」第12章でも扱われております。 今回は第1章「時系列分析の基礎概念」の実装以外の概念をやりたいと思います。 ブログは数式を描くと読者が減るといわれているら…

【統計学】多重共線性

回帰分析で気を付けないといけないことの一つが多重共線性です。 多重共線性とは、説明変数のうち、相関係数の近い2変数を利用すると個々の説明変数の効果が確認できなくなる症状のことを言います。 具体例で説明しましょう。いつものサッカーの試合数で得点…

【統計学】ダミー変数(RとPython)

有斐閣「統計学」第11章SECTION5になります。この本もそろそろ終わりに近づいてきました。 ダミー変数とは 男と女、花が咲いた・咲かなかった、上位100位とそれ以外など、2つのグループに分けることのできるものがあります。それを回帰分析の説明変数に入れ…

【統計学】相関係数の検定(RとPython)

文字通り相関係数に差があるかどうかの検定です。 帰無仮説は相関係数をρとするとρ=0、対立仮説はρ≠0となります。 つまり2群に直線的な関係性があるかどうか確かめる検定ということになります。 データは教科書有斐閣「統計学」P60のJリーグの表です。 Rで…

【やってみた】交換法でソートをやってみた(Python)

基本的な整列アルゴリズムである交換法をPythonで実装してみました。 交換法とは 交換法とは * 隣り合う数字を順番に比較する 左が大きい場合は交換する を繰り返して並び替える方法です。 例えば(3,1,2)の場合 3と1を比較する→左側の3のほうが大き…

【やってみた】線形探索法の実装(Python)

線形探索法(リニアリサーチ)を実装してみました。線形探索法は数字などを左から順番にならべて一致するか検証する方法です。 a = [2,3,4,5,6,7,8,9] def linear_search(line, i): s = 0 for p in range(len(line)): if line[p] == i: print("該当数字が見…

【統計学】平均の差の検定(RとPython)

平均の差の検定。ある2群の標本が独立(つまり別の集団からのサンプリング)か、同じ母集団なのか(つまり母平均が等しい)か確かめるための検定です。 データはおなじみの上記書籍のP60にあるJリーグの試合結果のデータを使用します。 Rで実装 #勝数 wins <…

【統計学】等分散の検定(RとPython)

教科書有斐閣「統計学」P60のJリーグの表をもとに、同書P327の分散の検定を行います。 単純に2群の分散が同じかどうか確かめる検定です。平均の検定でも帰無仮説を棄却できず、分散の検定でも帰無仮説を棄却できない場合は同じ分布の可能性があります。 Rで…

【統計学】ベルヌーイ試行の成功確率(RとPython)

ベルヌーイ試行の成功確率についての検定を行います。ベルヌーイ試行とはコインの表と裏のように二者択一の問題です。 例を考えたほうがわかりやすいので、有斐閣「統計学」P322の例題10.2をそのまま実装してみます。 例題 新たにF内閣が発足し、支持率の調…