目安:この記事は3分で読めます
Pythonの醍醐味のひとつは、何と言っても統計学を駆使した分析が簡単にできることです。
そこで新たにスタートしたのがー
新しいテーマ
Pythonと統計分析シリーズ
です。
シリーズ第1弾となる今回は、全3回となります。
すでに前編、中編をアップしています。
未読の方は、以下のリンク先でお読みください。
-
【Pythonと統計分析】シリーズ第1弾 単回帰分析でウェルズファーゴの株価を予測してみよう!前編
続きを見る
-
【Pythonと統計分析】シリーズ第1弾 単回帰分析でウェルズファーゴの株価を予測してみよう!中編
続きを見る
第1弾の最終回となる今回は、単回帰分析で得られた結果をチャートで描画することがテーマとなります。
後編のテーマ
Pythonの統計分析ライブラリ『Statsmodels』と単回帰分析で株価の予測をしてみよう!そして結果をチャートで描画してみよう!
▼ Pythonを効率的に学ぶなら ▼
Pythonを学ぼう
▼ Udemyおすすめの講座 ▼
▶現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
▶ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門
この記事の対象となる人
こんな人におすすめ
- Pythonに興味がある人
- Pythonを学びたいと思っている人
- Pythonを使って株価の分析をしたい人
この記事でわかること
わかること
- 『Pythonと統計分析シリーズ第1弾』の記事を全部読めば、Pythonを使った単回帰分析の基本がわかる
単回帰分析で得られた結果
まずは前回の復習ということで、Pythonの統計分析ライブラリとしてよく使われる『statsmodels』で得られた分析の結果を確認してみましょう。
単回帰分析の結果
初心者の方が見るべきは上の4つで十分、と前回の記事で説明しました。
そして今回注目して欲しいのが『3』で計算された数字-『const(切片)』と『^TXN(米金利)』の係数です。
これらの数値を使って回帰分析のチャートを作成します。
Pythonコード
まずは、コードの一覧をザっとお見せします。
これまでのコードに、チャートを作成するコードを追加します。
結論から先に言いますと、『Numpy』を使って作成するのが一番手っ取り早い方法です。
コード一覧
#ライブラリのインポート import pandas as pd import pandas_datareader as web import matplotlib.pyplot as plt %matplotlib inline #追加でnumpyをインポート★ import numpy as np import datetime #WFCと米長期金利のデータをインポート prices = ['WFC','^TNX'] df = pd.DataFrame() for p in prices: df[p] = web.DataReader(p, data_source='yahoo', start='2021-01-02', end=datetime.date.today())['Adj Close'] #ここから単回帰分析の開始 import statsmodels.api as sm x1 = df['^TNX'] y = df['WFC'] x = sm.add_constant(x1) result = sm.OLS(y,x) result.fit().summary() #チャートを作成するコード★ plt.scatter(x1,y) p = np.polyfit(x1,y,1) f = np.poly1d(p) plt.plot(x1,f(x1),c='red') plt.grid()
★印が今回のポイントです。
下で詳しく解説しますが、回帰分析のチャートを描画する時は、『Numpy』を使うのが一番手っ取り早い方法です。
コードの解説
さて、コードの解説に移ります。
今回は、チャートの作成に関する箇所のみにフォーカスして解説します。
▶8行目
『numpy』は数学の計算をする際に、すばやくかつ効率的に行ってくれる拡張モジュールです。
回帰分析のチャートを作成する際にもよく使われます。
▶35行目
"plt.scatter( )" とするだけで、Xの値とYの値が交錯するポイントに点をプロットする『スキャッターチャート』を簡単に作成できます。
()の中には(Xの値, Yの値)の順でチャートに描画したいデータを入れます。
今回は、25~26行目のコードでXの値に『米金利(^TNX)』をx1とし、Yの値に『ウェルズファーゴ(WFC)』をyとしてそれぞれ設定しています。
▶36~37行目
これら2つのコードは、近似式を作るための定型文と考えてください。
簡単に言えば、回帰直線を引くためのコードです。
"np.polyfit(x1,y,1)" とするだけで、一次近似となります。
最後の1を変えれば、その数に応じた近似式を作成できます。
今回は、一次近似のデータを変数 ”p” に入れました。
"np.poly1d(p)" とするだけで、関数が生成されます。簡単に言えば、Xの値が決まればYの値も決まるという設定をしたということです。
36行目の変数 ”p” を()の中に入れるだけで、関数が簡単に出来上がります。
最後に出来上がった関数を変数 ”f” に入れました。
▶38行目
35行目で作ったスキャッタープロットのチャートに、『回帰直線』を重ねて描画するコードです。
”plt.plot(x1,f(x1))" とするだけで、簡単に回帰直線が描画されます。
"f(x1)"と書かないとエラーが発生しますので注意しましょう。
()の中には、(Xの値、Yの値)の順で入れます。
分かりやすくするために今回は ” c='red' ” とし、回帰直線を赤いラインで描画しました。
"c" はcolorの略です。なのでこのコードは、"回帰直線を赤にして"という意味です。
▶39行目
グリッドラインをチャート内に表示するためのコードです。
”plt.grid()" とするだけで、簡単に縦横のグリッドラインが表示されます。
回帰分析のチャート
そして上のコードを実行すると、以下のチャートが描画されます。
右肩上がりの回帰直線となっていることがわかります。
ということは、ウェルズ・ファーゴ(WFC)と米金利の間には、同じ方向に動く関係性-いわゆる『順相関』の関係にあることが見てとれます。
『Pythonと統計分析シリーズ』の第1弾は、これで終わりです。
第2、第3弾と記事を書く予定ですが、統計学は奥が深い分野です。
そして、今なお発展している分野でもあります。
なので、当ブログでお伝えできる内容にはどうしても限界があります。
そこで統計学に興味があるけど知識が全くない... という方は、以下で紹介している2冊の本を読むことをジェイはおすすめします。
統計学を学ぼう
個人的に統計学は、すべての人が学ぶべき分野だとジェイは思っています。
その理由はいくつかありますが、ジェイが統計学をすすめる理由はー
統計学をすすめる理由
感情抜きで客観的に物事が見れるから
です。
今回の記事を読んでー
『統計学を学びたい!』
『特に基本から学びたい!』
と思う人にジェイは以下の本をおすすめしています。
おすすめ本
初心者の方は、まず『絵』から入ってください。
これは鉄則です!
なぜか?
それは、先に統計学の専門用語とか数式を見ると、99.99%挫折するからです。
しかし『マンガでわかる統計学 素朴な疑問からゆる~く解説』を先に読めば、挫折率をグッと下げることができます。
この本の特徴
・可愛らしい絵で統計学とは何か?ということを分かりやすく説明している
・統計学を扱っているわりにページ数は少ない。だからすぐに読める
・赤文字や赤線で引かれた箇所を集中的に読むだけでも統計学のイメージがつかめる
上の本を読んだら、いよいよ『本番』です。
次は『コア・テキスト統計学』で、統計学の基本を学んでください。
特徴
・統計学の基本から詳しく解説している
・統計学で必要な数学の知識をちゃんと教えてくれる
・現実の社会に関連した多くの問題が掲載されている
・詳しい回答が書かれている
『コア・テキスト統計学』を読破すれば、統計検定の2級に合格できると言われています。
ジェイも上2つの本を読んで統計学を勉強してきました。
なので、自信を持っておすすめすることができます。
この記事と出会ったのもの何かの縁です。
Pythonだけでなく統計学にもチャレンジしてみてください!
▼Pythonを学ぶならテックアカデミー▼
▶現役エンジニアのパーソナルメンターからマンツーマンで学べる
▶データサイエンスコース
▲独学が苦手な人におすすめ▲
まとめ
1:Pythonを使えば簡単に単回帰分析ができる
2:回帰分析のチャートを作成する時は『Numpy』が一番便利
3:Numpyの"np.polyfit” と "np.poly1d” を使えば、簡単に回帰直線が描画できる
4:統計学はすべての人が学ぶべき分野。2冊のおすすめ本あり
Pythonを学びたい方へ
今やPythonは、あらゆる分野で使われているプログラミング言語です。
Pythonを学んでおけば株式の投資に役立つだけでなく、これからのキャリアを形成する上でも力強い武器となるでしょう。
『私もPythonを学んでみたい!』
という人は以下のリンク先をご覧ください。
▼ Pythonを効率的に学ぶ方法を知りたいなら以下をクリック ▼
Pythonを学ぼう
なぜプログラミングを学ぶ必要があるのか?その理由がわかります。
そして、『これがPythonを効率的に学ぶ方法だ!』と自信をもっておすすめする学習方法について解説しています。
この記事と出会ったのも何かの縁です。
ぜひチャレンジしてみてください!
注記事項
当サイトのコンテンツを参考に投資を行い、その後発生したいかなる結果についても、当サイト並びにブログ運営者は一切責任を負いません。すべての投資行動は『自己責任の原則』のもとで行ってください。