www.crosshyou.info

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

読書記録 - 「物語 フランス革命 バスチーユ陥落からナポレオン戴冠まで」 安達 正勝 著 中公新書

<<フランス革命は世界史の新しい時代を切り開いた輝かしい革命であり、フランス革命を抜きにして現代世界を考えることはできない>>

あとがきの冒頭で作者はこのように述べています。

実際、国民主権や、法の前の平等などの「自由、平等、友愛」の精神は現代社会の基本的な考えになっています。

革命の指導者がフランスだけでなく、極東の日本を含む世界中の国・地域にもこの考えを広めようとしていた、ということをはじめて知りました。

この本は事実を淡々と記述するというスタイルではなくて、ところどころに作者の考えが入ったり、いろいろな人物の評伝があったりして、一気に読みました。

ロラン夫人をはじめとして、いろいろな女性が革命の中で大きな役割を果たしていたことを知りました。それでも、女性の参政権が認められたのは20世紀になってから、という事実に何か大きなものを感じました。

失業率・第3次産業活動指数・消費者物価指数の時系列データ分析3 - 失業率が上昇すると、第3次産業活動指数は低下する。

Bing Image Creator で生成: green field of daisies flowers, background is galaxy stars, photo

www.crosshyou.info

の続きです。

前回は、Finite Distributed Lag Model という枠組みで、

dai3ji = β0 + β1 * unem + β2 * L(unem) + β3L(unem, 2) + u という式の係数を推定しました。

結果は、

dai3ji = 103.785 - 4.835 * unem - 7.550 * L(unem) + 11.132 * L(unem, 2) + u となりました。

今回は、まず

こちらの本の 10-5b の時系列トレンドを加えたモデルを試してみます。dynlm() 関数で、trend() 関数を使います。

trend(dts) の係数は、-1.1082 でした。p値は 0.000631 と 0.1%水準以下でも有意な値ですね。トレンドの係数の符号がマイナスということは、第3次産業活動指数は低下するトレンドですね。

unem, L(unem), L(unem, 2) 3つ合わせた係数は、-5.5538 です。失業率が 1% 上昇すると、第3次産業活動指数は 5.5538 低下するということですね。

トレンドが入ってないモデルでの3つ合わせた係数は、 -1.253 でしたので、トレンドを考慮すると、より、失業率が第3次産業活動指数に影響を与えていることがわかります。

次は、上の参考書の 10-5e の 季節性を取り入れたモデルを試します。season() 関数を使うと簡単です。

全体の p値 が < 2.2e-16 とほとんどゼロです。

時系列の係数は、-1.1676 で有意なのはかわらずです。

unem, L(unem), L(unem, 2) を3つ合わせた係数は、-5.4449 - 2.2303 + 1.9539 = -5.7213 です。季節性と取り入れたモデルのほうが、さらに失業率の影響が強まりました。

L(unem), L(unem, 2) の係数の p値 が どちらも 0.2 以上なので、有意ではないですね。

linearHypothesis() 関数で、L(unem), L(unem, 2) が有意かどうか調べます。

p値 が 0.8775 ですから、L(unem), L(unem, 2) は不要なようです。

dai3ji = β0 + β1 * unem + トレンド + 季節性 + u

のモデル式を試しましょう。

全体の p値は < 2.2e-16 と実質ゼロです。

unem の係数は、-5.7238 で p値は 3.55e-14 とほとんどゼロです。

いままでのモデルで一番 -5.7238 が大きな数字です。

Finite Distribute Lag Model に トレンド、季節性を加えたら、ラグ項目は不要になって、Static Model になりました。

失業率が 1% 上昇すると、第3次産業活動指数が 5.7238 低下する、となりました。

今回は以上です。

 

初めから読むには、

www.crosshyou.info

です。

 

失業率・第3次産業活動指数・消費者物価指数の時系列データ分析2 - Static Model と Finite Distributed Lag Model - 失業率が上昇すると、第3次産業活動指数は低下する。

Bing Image Creatorで生成: Hydrangea flowers in nature wild fields, photo

 

www.crosshyou.info

の続きです。

前回は、CSVファイルのデータを R に読み込みました。

まずは、plot() 関数でグラフにしてみます。

どうでしょうか、第3次産業活動指数は、定期的に高い値の月がある感じですね。

cor() 関数で変数間の相関係数をみてみます。

一番相関係数の大きな組み合わせ(絶対値ベース)がunem: 失業率と dai3ji: 第3次産業活動指数ですが、-0.173 と大きな値ではありません。

 

こちらの本の 10-2a に書かれている Static model を回帰分析します。

dai3ji: 第3次産業活動指数を被説明変数にして、unem: 失業率と cpi: インフレ率を説明変数にしました。失業率が1%上昇すると、第3次産業活動指数は1.832ポイント低下します。

p値は0.0561なので、10%水準では有意ですが、5%水準では有意ではありません。

インフレ率は1%上昇すると、第3次産業活動指数は0.4794ポイント上昇しますが、p値は0.3529なので有意ではないです。

モデル式全体の p値は0.132 なので15%水準で有意、というあまり有効なモデル式ではないですね。

次は、Wooldridgeの本の10-2b の Finite Distributed Lag Model で回帰分析します。

unem, cpi それぞれ、ラグ1、ラグ2を加えてみました。全体の p値が 0.04501 と5%水準で有意な推定結果となりました。

L(unem, 2)、ラグ2の失業率が係数が11.0721 となっています。

unem, L(unem), L(unem, 2) の3つが jointly significant かどうか、car パッケージの linearHypothesis() 関数で調べてみます。

p値は0.006936 と0.6%という小さい値ですので、unem, L(unem), L(unem, 2) は jointly significant です。

失業率が1%上昇し、そのままの状態を維持すると、第3次産業活動指数は、-4.9706 - 7.4284 + 11.0721 = -1.3269 ポイント低下します。

cpi, L(cpi), L(cpi, 2) が3つ合わせて有意かどうかも確認します。

cpi は3つあわせて jountly insignificant ですね。

cpi を加えない Finite Distibuted Lag Model を試します。

式全体の p値が 0.006184 となりました。

L(unem, 3) を加えてみます。

L(unem, 3) の p値は 0.80661 とかなり大きいですね。

L(unem, 2) まででいいような気がします。

今回は以上です。

失業率が上昇すると、第3次産業活動指数は低下する、という関係がわかりました。

次回は、

www.crosshyou.info

 

はじめから読むには、

www.crosshyou.info

です。

失業率・第3次産業活動指数・消費者物価指数の時系列データ分析1 - R でデータを読み込む。

Bing Image Creator で生成: Beautiful early spring nature landscape Japan

今までクロスセクションのデータばかりを扱ってきましたので、今回は時系列データの分析の練習をしてみたいと思います。

使用するデータは、全国ベースの失業率、第3次産業活動指数、物価の時系列です。

データは統計ダッシュボードのウェブサイトから取得しました。

統計ダッシュボード - データ検索画面 (e-stat.go.jp)

理論的な背景は、

R のコードは、

を参考にしています。

ウェブサイトからデータをダウンロードして、変数名を加えたCSVファイルはこんな感じです。

これを R に読み込みます。

はじめに tidyverse パッケージ、lubridate パッケージと dynlm パッケージを読み込んでおきます。

read_csv() 関数で CSVファイルにデータを読み込みます。

glimpse() 関数で、読み込んだデータがどんな様子かみてみます。

time が 文字列型になっているので、これを日付型にするのと、NA がある列をの削除する処理をします。

summary() 関数で df をみてみましょう

2013年1月から2021年12月までのデータです。

失業率は、最小値は2.1%, 最大値は4.4%, 平均値は3.033% です。

第3次産業活動指数は、最小値は83.10, 最大値は114.30, 平均値は100.12 です。

消費者物価指数の前年同期比は、最小値は -1.2%, 最大値は3.7%, 平均値は0.6657% です。

ts() 関数で ts オブジェクトも作成しておきます。

これで、分析のためのデータフレームオブジェクトの df と、時系列オブジェクトの dts が用意できました。

今回は以上です。

次回は、

www.crosshyou.info

です。

読書記録 - 「疑似科学入門」 池内 了 著 (岩波新書)

2008年に発行された本なので、少し古い部分もありますが、今でも読んでおいて損はないと思います。

筆者は疑似科学を三種類に分類しています。

第一種疑似科学は、人の悩みや欲望につけこんで騙すようなものです。

第二種疑似科学は、科学的な、いかにも科学的な用語を使ったり、統計的な数値を持ち出すものです。

第三種疑似科学は、複雑系のシステムに関係するので、現在の科学水準では白とも黒とも言えないものです。

何事の鵜呑みにせずに、自分の頭でしっかり考えることが大切だということです。

カール・ポパーの科学の定義の一つ、「反証できるもの」ということ、つまり、「~~をして、~~の結果になったら、~~は反証できる」ということが成り立たないと科学にはならない、ということを心にとめておきたいと思いました。

読書記録 - 「戦争はいかに終結したか 二度の大戦からベトナム、イラクまで」 千々和 泰明 著 (中公新書)

戦争は、優勢勢力側の「将来の危険」と「現在の犠牲」のどちらをより重視するか、というシーソーゲーム中で「紛争原因の根本的解決」か「妥協的和平」という相反する決着のどちらかに決まる、という切り口で第一次世界大戦、第二次世界大戦(ヨーロッパ戦線と太平洋戦線)、朝鮮戦争、ベトナム戦争、湾岸戦争、アフガニスタン戦争、イラク戦争の終わり方を解説しています。

「現在の犠牲」には兵士の死亡がありますが、10人、100人の犠牲は軽いものだと思ってしまうのが戦争の恐ろしさだと思いました。戦争を終わらせることを今から考えておく必要はありますが、それ以上に、戦争をはじめさせないかを考えるべきだと思いました。

東証の規模別・業種別のPER・PBRのデータの分析3 - R で t検定と回帰分析の手法で2022年と2024年の違いを調べる

Bing Image Creator で生成 : beautiful landscape photo, blue sky and blue ocean and red flowers.

www.crosshyou.info

の続きです。前回は箱ひげ図を描いて、2022年と2024年の各データの分布を視覚化しました。

今回は、t検定、回帰分析の手法で統計学的に有意な違いがあるかどうかを調べます。

t検定は、t.test() 関数でやってみます。

まずは、会社数の違いに統計学的に有意な違いがあるかどうかを調べます。

各セクターごとに違いを分析するので、paired = TRUE としています。

p値が0.0007984と非常に小さい値ですので、2022年と2024年では会社数の違いは、統計学的に有意な違いであることがわかります。

PERはどうでしょうか?

p値は0.3304と0.05よりも大きな値です。なのでPERは2022年と2024年で違いがあるとは言えません。

PBRはどうでしょうか?

p値は0.000397と0.05よりもうんと小さな値です。PBRは統計学的に有意な違いがありました。

1社あたりの利益はどうでしょうか?

p値は0.06714です。0.05よりも大きいので、統計学的に有意な違いがあるとは言えません。

1社あたりの株主資本はいかがでしょうか?

p値は0.03465なので、統計学的に有意な違いがあると言えます。

まとめると、

会社数は、p値は0.0007984で有意な違いがある。

PERは、p値は0.3304で有意な違いがあるとは言えない。

PBRは、p値は0.000397で有意な違いがある。

1社あたりの利益は、p値は0.06714で有意な違いがあるとは言えない。

1社あたりの株主資本は、p値は0.03465で有意な違いがある。

となります。

同じように、年による違いがあるかどうかは回帰分析の手法でも確認できます。

普通、回帰分析は、lm() 関数を使うのですが、今回は tidymodels のパッケージを使って実行してみます。

まず、tidymodels のパッケージを読み込みます。

そうしたら、回帰分析のモデルを生成します。

次は、fit() 関数で回帰分析の係数を求めます。

まずは、会社数からです。

fit() 関数で係数を求めたあと、tidy() 関数で係数を tibble 形式に整形し、head() 関数ではじめの2行だけ表示しています。

p値が t.test() 関数と同じだとわかりますね。係数の -5.45 も t.test() 関数の値と(正負の符号が逆ですが)同じです。

同じように、PER以下の変数も実行します。

p値は0.330 で t.test() 関数と同じです。

PBRはどうでしょうか?

p値は0.000397で t.test() 関数と同じです。

1社あたりの利益をみてみます。

p値は0.0671で t.test()関数の値と同じです。

最後は、1社あたりの株主資本です。

p値は0.0346で、やっぱりこれも t.test() 関数と同じです。

今回は以上です。

初めから読むには、

www.crosshyou.info

です。