トレンド、周期、ノイズ(

環境設定

Google colaboratoryで実行できます

厚生労働省のホームページから新型コロナ感染者数の時系列データをダウンロードします

  1. !wget -O "/content/sample_data/whard_new.xlsx" "http://www.mi.u-tokyo.ac.jp/consortium2/data/whard_new.xlsx"

  2. !wget -O "/content/sample_data/maxtemp.xlsx" "http://www.mi.u-tokyo.ac.jp/consortium2/data/maxtemp.xlsx"

  3. !wget -O "/content/sample_data/nikkei225_new2.xlsx" "http://www.mi.u-tokyo.ac.jp/consortium2/data/nikkei225_new2.xlsx"

(1)時系列データの表示

ダウンロードしたエクセルの時系列データを画面に表示します。なお、下記のコマンドはGoogle colaboratoryで実行できます(表示する都道府県名を指定しています)

    • todouhuken="ALL"#@param{type:"string"}

  1. import pandas as pd

  2. import numpy as np

  3. import matplotlib.pyplot as plt


  4. df = pd.read_csv('/content/sample_data/covid.csv')

  5. todouhuken="ALL"#@param{type:"string"}

  6. df=df[todouhuken]

  7. df


(2)時系列データのグラフ表示

指定した時系列データのグラフを表示します。

  1. import numpy as np

  2. import matplotlib.pyplot as plt


  3. x = np.array(range(len(df)))

  4. y = np.array(df)

  5. plt.plot(x, y)

  6. plt.show()

(3)時系列データのトレンドとノイズの表示

指定した時系列データのトレンドとノイズを表示します。numは、移動平均の区間です。

  1. num=30#@param{type:"integer"}

  2. b=np.ones(num)/num


  3. y2=np.convolve(y, b, mode='same')

  4. y3=y-y2


  5. plt.plot(x,y)

  6. plt.show()


  7. plt.plot(x,y2)

  8. plt.xlim([min(x)+num,max(x)-num])

  9. plt.show()


  10. plt.plot(x,y3)

  11. plt.xlim([min(x)+num,max(x)-num])

  12. plt.show()

北海道医療大学・情報センター