演習用データについて
データの出典
データの内容
2020年1月1日から2021年12月31日までの、新型コロナウィルスの検査陽性者数のデータである。1行が1日に対応する。
東京大学教養学部 情報図形科学部会
データの読み込み方法
import csv data = [] for i in csv.reader(open('covid19.csv')): data.append(int(i[0]))
演習課題例
データと日付の対応付け
- データの最初(0番目)が2020年1月1日の検査陽性者数、最後(730番目)が2021年12月31日の検査陽性者数である。日付が与えられたとき、その日の検査陽性者数を出力するプログラムを作成せよ。
- 逆に、「何番目なのか」が与えられたとき、それがどの日のデータなのかを出力するプログラムを作成せよ。
移動平均とその可視化
- 検査陽性者数の推移を折れ線グラフとして可視化せよ。(ヒント:ita.plot.plotdataにline=Trueという追加の引数を渡すと折れ線グラフを描ける)
- 一定の期間の平均値を移動平均と呼ぶ。例えば、「2021年12月31日までの5日間の移動平均」であれば、2021年12月27日から2021年12月31日までの平均のことである。nとmが与えられたとき、「n番目のデータ(に対応する日)までのm日間の移動平均」を求めるプログラムを作成せよ。ただし、m日分のデータがない場合(例えば「最初の日のデータまでの5日分」)についての挙動は自分で決めてよい。
- mが与えられたとき、「各データまでのm日間の移動平均」を格納した配列を求めるプログラムを作成せよ。
- 移動平均をとる日数mを変化させながら「各データまでのm日間の移動平均」を求め、それを折れ線グラフとして可視化することで、mの値が折れ線グラフの形に与える影響を考察せよ。
テクニカル分析の応用
株式や為替の価格分析の文脈では、短期の移動平均のグラフ(下図青線)と長期の移動平均のグラフ(下図橙線)を重ねて 描いたときに、短期の線が長期の線を下から上に貫いたとき、価格が上昇傾向にあると判断することがある(ゴールデンクロス,下図青丸)。また逆に、短期の線が長期の線を上から下に貫いた場合には、価格が下降傾向にあると判断する(デッドクロス,下図赤丸)。- 2種類の移動平均のデータとnが与えられたとき、「n番目のデータとn+1番目のデータ」の間でグラフが交差しているかどうかを判定するプログラムを作成せよ。
- 検査陽性者下図のデータから2種類の移動平均を作成し、ゴールデンクロス・デッドクロスを発見せよ。また、増加傾向・減少傾向と判定された位置は、日付としては何年何月何日にあたるかを調べよ。