見出し画像

日時と体重から明日の体重を予測するコード・その1

とりあえず完成しました。
色々と思うことがありますが、明日に書きます。


体重のデータを保存しているABC.csv、以下の数値にしています。

2020-5-1 8:0:0,60.1
2020-5-3 8:0:0,60.0
2020-5-3 20:0:0,61.0
2020-5-4 8:0:0,59.2
2020-5-6 8:0:0,60.5
2020-5-7 8:0:0,60.7
2020-5-7 8:5:0,60.8


肝心のソースコード、以下です。

#時系列データを取得
import pandas as pd

#グラフ作成用
import matplotlib.pyplot as plt

# csvファイルの読み込み
df = pd.read_csv('abc.csv',names=('ds', 'y'), dtype = {'ds':'object', 'y':'float'} ) # 日付型に設定


#時系列分析のための構造体を作成する
#最初に数値をfloat型で格納
my_df=pd.Series(df['y'], dtype='float')

#基準となる時間軸を変換して格納
my_df.index=pd.to_datetime(df['ds'])

#重複データの削除 、日付が欠損している場合の穴埋めだがデータは埋めない。
my_df=my_df.resample('D').mean()

#欠損データがあるので 、前後の時間差から、欠損データを合成して穴埋め
my_df=my_df.interpolate('time')

#statsmodelsのARを使用する
from statsmodels.tsa.ar_model import AR

#ARでデータ指定 、fitで学習
#maxlagは不明 、現在のデータを何世代前の数値まで反映して計算するかの指定?
#ワーニング出てるが無視
ar= AR(my_df).fit(maxlag=3)


#期間指定で予測させる
ar_p = ar.predict('2020-05-07','2020-05-08')

#グラフ作成
plt.plot(my_df)
#plt .show()

plt.plot(ar_p)
plt.show()

#2020 -05-08の結果を出力する
print(ar_p.values[1])

#学習 #勉強 #Python #プログラミング

いいなと思ったら応援しよう!