bookloveru2
2022年1月17日4 分
# @title pipだよ! 全員集合( `ー´)ノ
!pip install yfinance
!pip install japanize_matplotlib
!pip install pywedge
# @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()
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())
▲0.14×257.71
+▲0.04×83.76
+0.15×1.77
+0.35×269.42
+0.85×173.07
=テスラの株価!=202.24ドル
import pywedge as pw
import seaborn as sns
# Pywedgeでデータの可視化
mc = pw.Pywedge_Charts(df,
c=None,
y="テスラ" )
chart = mc.make_charts()