ラベル 時系列モデル の投稿を表示しています。 すべての投稿を表示
ラベル 時系列モデル の投稿を表示しています。 すべての投稿を表示

2026年1月15日木曜日

『Pythonではじめる時系列分析入門』でデータ取得がうまくいかないとき

 『Pythonではじめる時系列分析入門』はとても良い本で、Pythonで時系列分析をしたい人におすすめです。サンプルコードとデータは以下でダウンロードできます。

https://github.com/logics-of-blue/book-python-tsa-intro/tree/main


家のPCだとサンプルコードが問題なく動くのですが、会社のPCだと6-1-LightGBM.jpynbの中でオオヤマネコのデータと飛行機乗客数のデータを読み込むところでエラーとなります。どうも会社のPCからだとstatsmodelsのdatasets.get_rdataset()が使えないようです。

そこをsktime.datasetsから取得するように変えれば会社のPCでも問題なく動きましたので、備忘の為にメモしておきます。

オオヤマネコのデータを読み込む以下のところで会社のPCだとエラーになるので、

そのセルを以下のように修正すると問題ないです。

from sktime.datasets import load_lynx

lynx=load_lynx()

print(lynx.head(10))


また、飛行機乗客数データを読み込む以下のところでも会社のPCだとエラーになるので

以下のように修正します。

from sktime.datasets import load_airline

air_passengers=load_airline()


2024年10月9日水曜日

『Pythonではじめる時系列分析入門』は待望の一冊

『時系列分析と状態空間モデルの基礎 RとStanで学ぶ理論と実装』などの著書がある馬場真哉さんによるPythonでの時系列分析の本です。これまでRによる時系列分析の本はいくつかありましたが、Pythonによる時系列分析の本は島田直希さんの『時系列解析』くらいしかなかったので、まさに待望の一冊です。島田さんの本も良い本なのですが、2019年出版なのでさすがにPythonのコードもそのままでは動かないものがあったりして、自分で修正する必要がありました。

『Pythonではじめる時系列分析入門』の特徴は著者がまとめているように以下の三点です。

  1. 理論とPython実装をバランスよく学べる、初心者向け入門書である
  2. 古典的な技術から、比較的新しい手法まで解説してる
  3. 実践的な実装技術や分析におけるTipsについても解説している

Pythonのサンプルコードは著者のサポートページにリンクのあるGithubからダウンロードできます。Pythonを動かす環境の構築方法は本の第2部に解説してあります。著者の言う通り、venvを新しく作ってそこに必要なライブラリを一括でインポートしてJupyter Notebookで動かすのが良いと思います。ライブラリの一括インポートの仕方も解説してあります。私の場合、既にAnacondaをインストールしていたせいか、venvからJupyter Notebookを開こうとしてもAnacondaから開かれてしまって混乱しましたが、一度venv内で「pip install notebook」としてインストールしてからは問題なくvenvのJupyter Notebookが動き、Pythonのサンプルコードも問題なく動きました。

内容としては、初心者向け入門書ということで、一変数の時系列に絞って、古典的かつ単純な予測手法から、季節調整とトレンド除去、指数平滑法、sktimeによる実装、交差検証法、Box-Jenkins法(ARMA、ARIMA、SARIMAX)、モデル選択、単位根検定、そして状態空間モデルまで丁寧に解説されていきます。

ライブラリとしてはsktimeとstatsmodelsを主に利用しています。「本書ではstatsmodelsで理論を学び、sktimeで実用的な実装をするという役割分担としています」。

第6部では機械学習法としてLightGBMやニューラルネットワークと深層学習が解説してあるのもうれしいところです。

初心者向け入門書ということで、文章も直感的に理解できるように分かりやすく丁寧に書かれていて、ところどころで数式を補足するスタイルになっています。一方で、VARなどの多変量解析などは思い切って省かれています。

 まとめると、Pythonで時系列分析を始めたい人にとっての最適な一冊としてお勧めです。

2023年11月9日木曜日

Pythonで状態空間モデル・カルマンフィルタ

 
前のブログで、島田さんのサンプルコードのうち、ARモデルのstatsmodelsのAR()はv0.12で削除されたので、代わりにAuroReg()を使うように修正するという話をまとめてました(まとめていたことを忘れていましたw)。
VARモデルや単位根検定、グレンジャー因果、状態空間モデルのうち線形ガウス型モデルのところまで、サンプルコードがほぼそのままで動くことを確認しました。非線形非ガウス型モデルの粒子フィルタのところはまだ確認していないです。

サンプルコードのうち、web上のデータを取得するところはweb上にすでにそのページが無くなっていることがあるので、そこは修正する必要があります。状態空間モデルのサンプルで使われているデータは以下のリンク先でダウンロードできるので、ダウンロードしたcsvファイルをpcの任意の場所に保存してread_csvで読み込むように修正しました。

AirPassengers.csv

それから『時系列解析』のP111の脚注にあるように、scipy.optimizeモジュールのminimize関数を利用して状態空間モデルのパラメータを最適化するときに"masked arrays are not supported"というエラーが発生するので、以下のリンク先を参考に、pykalmanのフォルダの中の"utils.py"というファイルの73行目を以下のように修正すると、ちゃんと動きました。

pykalmanの修正


私の場合、AnacondaのJupyter Notebookからpip install pykalmanでpykalmanをインストールしたので、pykalmanのutils.pyのファイルの場所はanaconda3/Lib/site-packages/pykalmanの中でした。

〈AR成分付き季節調整モデルによる長期予測〉


2022年6月21日火曜日

Pythonで『時系列解析』

 

Rの時系列本はいろいろ出ているのにPythonの時系列本はあまり出ていないので島田直希氏のこの本は貴重です。

共立出版のサポートページにサンプルのコードがあります。

2.2 ARモデルの40ページのプログラムは島田氏の『時系列解析』だとstatsmodels.tsa.ar_model.AR()を使っているけれどar_model.AR()はv0.12で削除されたので代わりにar_model.AutoReg()を使えとなります。

statsmodels.tsa.ar_model.AutoReg

P40は以下に書き換えるとうまくいく。

from statsmodels.tsa.ar_model import AutoReg
res = AutoReg(y_diff, lags = 11,old_names=False).fit()
out = 'AIC: {0:0.3f}, HQIC: {1:0.3f}, BIC: {2:0.3f}'
print(out.format(res.aic, res.hqic, res.bic))

p41は以下に書き換え。

for i in range(20):
    res = AutoReg(y_diff, lags = i+1,old_names=False).fit()
    print('lag = ', i+1, out.format(res.aic, res.hqic, res.bic))

ラグ11のAICが最小なので、ラグ11のモデルを選ぶ。






2020年12月15日火曜日

『Rによる時系列モデリング入門』北川源四郎


『Rによる時系列モデリング入門』が発売されたのでさっそく購入しました。この本の前身である『FORTRAN77時系列解析プログラミング』は時系列分析について私のバイブルでした。

本書ではRの時系列解析パッケージTSSSを使用します。本書の例題で用いられているデータと解析プログラムの多くはTSSSに含まれています。

TSSSはCRANからもダウンロードできますが、統計数理研究所の以下のサイトからダウンロードできます。インストールの詳しい説明もあります。

「TSSS」

Time Series analysis with State Space model

統計数理研究所

https://jasp.ism.ac.jp/ism/TSSS/

そこに書かれていますが、パッケージをインストールするには、Windowsの場合

(1) R (RGui)を起動し,メニュー [Packages] から

   --> Install package(s) from local zip files...

   --> Select files で ダウンロードした TSSS_1.3.0.zip を選択.

(2) メニュー [Package] から

   --> Load Package..

   --> Select one で TSSS を選択.

でできました。


本の内容については、前身である『FORTRAN77時系列解析プログラミング』や『時系列解析入門』とほとんど同じようです。それらの復習も兼ねて、Rのプログラムを動かしながらこの本を読んでいきます。


2016年5月5日木曜日

時系列分析のお勧め本リスト


時系列分析のお勧め本のリストを作成しました。みなさんのお役に立てばうれしいです。

時系列分析の本は多くはないですが、それぞれ特徴があるので、ハミルトンを中心としつつ、自分の興味に合った本を読んでいけばいいのではないかと。サンプルコードがついていれば、より理解が深まります。
あと、洋書のpdf、なぜかまるまるネット上に落ちていることがあるので、ダメもとで探してみると見つかるかもです。
時系列分析なら、今でも北川源四郎『時系列解析プログラミング FORTRAN77』が最高だと思う。絶版ですが。改訂版の『時系列解析入門』でFORTRANのコードを省いてしまったのは残念。
この本のFortranのプログラムのライブラリをRを使って呼び出すパッケージを統計数理研究所が公表している。
『時系列解析プログラミング』にモンテカルロ・フィルタの章を追加して、FORTRANのコードを除いたもの。最近モンテカルロ・フィルタのコードを書くのに参考になった。
時系列解析といえばこれが鉄板。ハミルトンの上下さえ押さえておけば十分ではある。
入門編的な本
カルマン・フィルターの理論的説明としては優れている。

赤池先生の古典的名著。AIC誕生のきっかけになったセメント・キルンの制御についてまとめられています。Fortranのコードもついています。 

2018年の本。Rで実装できます。カルマンフィルタだけでなくMCMCや粒子フィルタも。

これも2018年の本。RとStanで実装できます。
Matlabのサンプルコードを出版社(朝倉書店)のウエブサイトでダウンロードできる。粒子(モンテカルロ)フィルタのコードを書くのに大変参考になった。お勧め。
これもすごく良い本。絶版。STAMPのサンプルコードがネット上にあるはず。しかしAmazonの中古高過ぎでしょ。
北川の本をRで再現。
これもよい本。カルマンフィルタと非線形カルマンフィルタ。
VAR, Garch等。カルマンフィルタはなし。 S+FinMetricsは高くて個人では買えない。
VAR, Garch等。カルマンフィルタはなし。EViewsの学生向けなら個人でも買える。
1変量のARMAモデル等を丁寧に解説。入門にいいかも。
PcGiveはOx言語で書かれている。日本だとOxってあまり使われてないんですかね。
ITSMというソフトがついているけど、これも絶版ですねえ。
私は紙の本を買ったのだけれど、ネット上にPDFがある。

これも良い本。レジーム・スイッチング・モデルならこれ。GAUSSのコードが参考になる。
著者のウェブサイトにもGAUSSのコードが。
わりと有名な本。
国友直人、山本拓が翻訳。

さすがにちょっと古くなってきましたかね。
沖本先生の本、比較的新しくて評判がいいです。私はまだ持っていない。
個人的に、いろいろと参考になった本。谷崎久志氏のウエブサイトで印刷不可なpdfを読める。
私は持っていないのだけれど、ツイッターで紹介されました。
時系列分析の実務への応用例(1)

時系列分析の実務への応用例(2)。最後の章のAICの赤池弘次氏の「時系列解析の心構え」が味わい深い。

以上が時系列分析についての本のリストです。時系列モデルの選択に使われるAIC等の情報量規準についても何冊かあるのでご紹介します。
 
時系列モデルの選択で使われる情報量規準についての統計学の本。時系列分析の本ではない。
一般化した情報量基準についての統計学の本。時系列分析の本ではない。
情報量規準による統計解析の入門書。前の二冊より一般向けなので、これを先に読んだ方が理解が早いかも。


2014年8月9日土曜日

ハミルトン『時系列解析』の分析をRで一部再現するパッケージを試す

PDFと音楽のデータをPCからスマフォにコピーしているときに、昔ダウンロードして放置していた「RcompHam94」というRのパッケージを見つけた。これはJ.D.ハミルトンの名著『時系列解析』の一部のサンプルをRで再現するというものらしいので、早速試してみた。

まず以下のリンク先のzipファイルをPCの任意の場所に解凍しないでそのまま保存する。

http://dss.ucsd.edu/~jhamilto/RcompHam94_0.1.zip

ここではD:\sampleというフォルダに保存した。
 zipパッケージのなかにCompanion.pdfという解説のファイルがあるので参考にそれを開いておくと便利。表紙のタイトルは"An R Companion to James Hamilton's Time Series Analysis with R"。
zipファイルのdemoというフォルダの中をみると16個のRのデモ・プログラムがある。
まず、Rに「RcompHam94」のパッケージをインストールする。そのためRを立ち上げるときにアイコンの上で右クリックをして 「管理者として実行」を選ぶ。
Rを立ち上げたら、「パッケージ 」のメニューから「ローカルにあるzipファイルからのパッケージインストール」を選ぶ。
 保存しておいた「RcompHam94_0.1.zip」を選ぶ。
無事にパッケージがインストールされた。
デモを動かすにはコンソール画面で「demo(topic="p112",package="RcompHam94")」 と入力。topicはさっきのdemoのフォルダにあったRのプログラムの一つ。
デモ"p112"の実行画面。左が実行されたRのコマンドと出力結果。右が出力結果のグラフで上が自己相関係数、下が偏自己相関係数。
いくつか動かないサンプル・プログラムもあるので、時間のあるときに中身を詳しく調べてみたい。