見出し画像

pythonで株価分析⑰【データビジュアライズと重回帰モデル】

皆様、こんにちは。

乞食です。


オミクロン株が猛威を振るう中、インフレとトンガの津波が世界の話題を席巻しております。


因みに、『TSUNAMI』という言葉は、東日本大震災以降、『津波(現象)』として各国の標準語となっているそうです( ゚Д゚)。


それほど他国から見ても恐ろしい現象だったのでしょう。。。

今回は、被害者0ゼロで乗り切ってほしいものです。


あれだけ生放送で注意喚起したから、きっと無事でしょう( `ー´)ノ


てことで、本題に移ります!

今回は、データビジュアライズ(美しい視覚化)+ 重回帰分析です(*'ω'*)

早速行ってみよう!!!


① 2017年元旦(バブル形成期)~2022年1月16日現在までを追う



米国株は長年バブルが継続してきたが、その発端は2017年頃だったように思えます(*'ω'*)。


2009年のリーマンショックを乗り越え、IT技術の革新的な進歩に支えられて目覚ましい成長を遂げてきました。


2012年以降からは、ビットコインが注目され始め、Amazonやグーグル、Facebookが猛威を振るい始めました。


そして、目に見えてバブルが形成され始めた2017年から当時を見ていきたいと思います。



ここからは、pythonを駆使してじっくりいきましゅ(*'ω'*)!


まずはモジュールをインストール

# @title pipだよ! 全員集合( `ー´)ノ !pip install yfinance !pip install japanize_matplotlib !pip install pywedge

そんで、適当に過去の株価をGET!!

( `ー´)ノ

# @title 何でも価格取得 import datetime import yfinance as yf import japanize_matplotlib import matplotlib.pyplot as plt import seaborn as sns from pandas_datareader import data as pdr import requests %matplotlib inline import warnings warnings.filterwarnings('ignore') #スタート日を決める start = "2017-1-1" #@param {type:"string"} #①株価を取得する start = start #株価を取得するスタート日を決める end = datetime.date.today() #現在までの営業日(今日 =today)を取得する最終日とする codelist = ["TSLA","NVDA","AAPL","MCD","CL=F","^TNX"] # データ取得をdrからyfinanceへ変更。2021.7.4 yf.pdr_override() # <== that's all it takes :-) # download dataframe df = pdr.get_data_yahoo(codelist, start, end)["Adj Close"] .dropna() df.rename(columns={"TSLA":'テスラ', "NVDA":'エヌビディア', "AAPL":"アップル", "MCD":"マクドナルド", "^TNX":'米国債(10年金利)', "CL=F":"原油"},inplace=True) #ここで実際の価格からパーセントの変化率に変換したのち、累積積を算出して実際の価格推移に変更します。 # dfp=(1+df.pct_change()).cumprod() display(df.head().append(df.tail(2))) # グラフ df.plot(figsize=(8,6),fontsize=8,grid=True) df.plot(figsize=(18,10),fontsize=14,subplots=True,layout=(4, 3),grid=True)

しかし、このままでは一単元当たりの株価が高いテスラに引っ張られたグラフですので、標準化して全体の様子を見てみます。


from sklearn.preprocessing import StandardScaler scaler = StandardScaler() # https://www.dragonarrow.work/articles/204 # https://helve-blog.com/posts/python/scikit-learn-feature-scaling/#standardscaler%E3%81%AE%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89 df.loc[:,:] = scaler.fit_transform(df) # 全カラムを正規化 # 標準化後のデータをcsvで保存 df.to_csv("hoge.csv", encoding="utf-8-sig") df

標準化後👇

display(df.describe()) df.plot.hist(figsize=(8,6),fontsize=8,grid=True) #標準化後の値動きをプロット df.plot(figsize=(8,6),fontsize=8,grid=True) plt.show()

標準化後の基本統計量とヒストグラム👇

② 重回帰分析で『株価が予測できる❕❓』

では、ここからはこれらの銘柄の値動きから、テスラの株価を予測していきたいと思います('ω')ノ

手法は重回帰分析を使用します。


説明変数をテスラ以外の5銘柄(アップル、原油、マクドナルド、エヌビディア、米国債(10年金利))とします。

目的変数は当然テスラです。


import pandas as pd import pprint hoge = pd.read_csv("hoge.csv") X_name = ['マクドナルド', '原油', '米国債(10年金利)','エヌビディア','アップル'] X = hoge[X_name] Y = hoge["テスラ"] pprint.pprint(X) pprint.pprint(Y)

分割できました👇

from sklearn import linear_model import statsmodels.api as sm #重回帰分析モデルを作成 #statsmodelsを使用 #目的変数yが先なのに注意❕ .OLS(Y, X) model = sm.OLS(Y, sm.add_constant(X)) result = model.fit() print(result.summary())

出ました(●´ω`●)

テスラの株価の予測式です。

下記(2022.1.16日の株価)を使ってテスラの株価を計算します。

再計算しても、テスラは1株=1,241ドルでした。( ,,`・ω・´)ンンン?

もう考えるの難儀なので、重回帰分析はここで終わります。

死にます(´;ω;`)ウッ…

③ データビジュアライズって、美しい(●´ω`●)

気を取り直して、ここからはデータビジュアライズです。

いちいちコード書かなくても、下記のコードだけでグラフをいじいじ出来ます( `ー´)ノ

こんな感じでグリグリできるジェ~~(; ・`д・´)

ここから先は

261字

¥ 230

e^iπ + 1 = 0