2020/05/28

R - 実践編 4 時系列のモデル推定

時系列データに当てはまるモデルの推定を R で行ってみましょう。実践編 3 で用いたものと同じ時系列 TS を対象として、モデルを推定した様子を紹介したいと思います。

R - 実践編 3 時系列の単位根検定

R で実際に時系列データの単位根検定をしてみましょう。Phillips-Perron 検定と Augmented Dickey-Fuller 検定が使用できます。

R - 実践編 2 データフレームにおける計算、集計

分析対象データをデータフレームに読み込んだあと、本格的な分析に入る前に、計算や集計などを行う必要があることが多いかと思います。R での代表的なやり方を説明します。

R - 実践編 1 ファイルの読み込み、データフレームの加工

実際に R でデータ解析を行うために、CSV ファイル、TSV ファイルの読み込みを行ったときの知見をまとめました。

2020/05/27

都心にカブトムシいた!

先日、千鳥ヶ淵付近を散歩していたら、カブトムシを発見しました。

カブトムシ

こんな都心部にカブトムシがいるとは、と思いましたが、良く考えたら靖国神社や皇居にはいっぱい居るはずですね。そのあたりから飛んできたんでしょうか。それよりも、5月にこんなしっかりしたサイズのカブトムシが居ることの方が珍しいかもしれません。

いずれにしても珍しいものを見ました。

R - 入門本編 7章 ファイルからデータを読み込む

実践的には、プロンプトから data.frame() だの c() だのを駆使してデータフレームを構築することはまずありません。当然ながら、外部ファイルからデータを読み込んでデータフレームを構成することができますので、その方法を習得しておきましょう。

2020/05/24

アーキテクチャ設計のポイント

業務要件を実現するだけであれば、アーキテクチャ設計は不要です。ではアーキテクチャ設計では何をすべきなのか? 私がアーキテクチャ設計を行うときのポイントを備忘録的にまとめました。


2020/05/23

時系列分析 (5) - 状態空間モデル

AR, MA, ARMA, ARIMA, VAR, VARMA, VARIMA, ... などの時系列モデルは、観測値を直接モデル化するものでした。今回紹介する状態空間モデル (State-space model) の場合は、状態の時系列変化と、その状態から観測される値とに分けてモデル化する手法です。AR モデル、ARMA モデルなども状態空間表現を取ることができますし、状態空間モデルではより多様なシステムが記述できます。例えば、時変的な回帰係数を持つ回帰モデルなどが表現できます。
また、状態空間モデルではカルマンフィルタという強力なアルゴリズムによって、条件付き同時分布が効率よく計算できるため、ARMA のパラメータ推定を行うに際して、ARMA の状態空間表現に対してのカルマンフィルタによる推定が良く行われています。


時系列分析 (4) - 多変量の時系列分析

複数の変量が相互作用を持って発展していく形の時系列は珍しくありません。こういったデータは、各変量を個別にモデル化しようとしてもうまくいきません。このような場合は、ベクトル自己回帰 (Vector Autoregressive / VAR) モデルが有効な場合があります。VAR モデルは、AR モデルを多変量に拡張したものです。今回は VAR モデルについて簡単に触れたいと思います。


2020/05/22

時系列分析 (3) - モデルの推定と診断

いよいよ、時系列データからモデルを作ることを考えます。モデルを推定し、そのモデルの善し悪しを診断する方法を紹介します。

2020/05/21

時系列分析 (2) - 自己相関のモデル

ある時系列データが、自己相関検定を経て自己相関があると分かったら、その自己相関のモデル化に取り組む価値があります。自己相関のモデル化にあたっては、移動平均過程 (MA過程) と自己回帰過程 (AR過程) という2つの過程が基本となります。この2つの過程とその組み合わせである自己回帰移動平均過程 (ARMA過程) について見ていきましょう。

2020/05/20

時系列分析 (1) - 時系列の性質の把握

為替レートなどの価格時系列データの分析をよく行うので、統計学的に分析する場合の一般論について書いてみました。
理系大学の学部生が使う教科書に書いてあるレベルより少し丁寧に説明しているつもりです。

2020/05/16

R - 研究編 1 評価機構

R は、C や Java で育ったプログラマには直感的には馴染み辛い、ある種独特な評価機構を持っているので、その振舞いを他のプログラミング言語と比較する形でまとめてみました。

MetaTrader4 設定情報取得スクリプト

MetaTrader4 で、口座情報、証拠金状況情報、時刻情報、マーケット情報、商品情報を取得するスクリプトを作りました。

AccountXxx() や MarketInfo() を使って情報を取得するスクリプトはけっこうあちこちで見掛ける、珍しくもなんともないものなのですが、一応いくつか特徴があります。

  • コード値を返すものは、その意味が分かるようなメッセージにしている
  • 日付・時刻はフォーマットしている
  • サーバ時刻とローカル時刻の時差を計算している
  • 単位のある数値は、単位を表記するようにしている
    • point とか % とか
    • 例えば JPY 口座で USDCHF の情報を見ているときに、各種金額が JPY なのか USD なのか CHF なのかを明示している
  • おそらく MetaTrader5 由来だと思うのですが、AccountInfoXxx() や SymbolInfoXxx() でしか拾えない情報があるので、それらも表示するようにしている

2020/05/05

日付処理 - 月末日を計算する

月末日を求めたいときは、だいたい月で条件分岐しますよね。1, 3, 5, 7, 8, 10, 12月なら31日、4, 6, 9, 11月なら30日、2月なら閏年判定をやって28か29日。

でも今回は、計算式で月末日を算出してみたいと思います。

日付処理 - MetaTrader - ニューヨークサマータイム判定 (第n日曜日以降判定)

ニューヨークのサマータイム期間は、以下のようになっています。

  • 2006年以前
    • 4月第1日曜日~10月最終日曜日
  • 2007年以降
    • 3月第2日曜日~11月第1日曜日

ある日がサマータイム期間に入っているかどうかを判定するためには、第n日曜日以降なのかどうかを調べる必要があります。
Java ならこうするだけなのですが、今回は MetaTrader での実現を考えました。MetaTrader ではサマータイム情報を持っていないため、算出してみようという話です。

Blogger - 本ブログのテーマ等の変更


いくつか理由があって、本ブログのテーマや、記事の構造などを変更してみました。1つは、トップページに表示される記事が少ないと思ったこと。他に、Google のインデックス登録が進まないのが、レスポンスが悪いせいではないかと思ったことや、Blogger テーマの XML の構造が複雑で管理しにくいと思ったことなどです。
ざっと、どんなことをやったか書いておきたいと思います。