#englishとmathという二つのデータを用意する。
english = [50, 60, 70, 80, 90]
math = [40, 70, 90, 60, 100]
#相関係数を求めるためにはまずはそれぞれの平均を求める。
english_avg = sum(english) / len(english)
math_avg = sum(math) / len(math)
print("英語の平均点は",english_avg,"点です")
print("数学の平均点は",math_avg,"点です")
#偏差(数値 - 平均値)を求める。
english_dev = []
for e in english:
e_dev = e - english_avg
english_dev.append(e_dev)
print("英語の偏差=",english_dev)
math_dev = []
for m in math:
m_dev = m - math_avg
math_dev.append(m_dev)
print("数学の偏差=",math_dev)
#分散(偏差の2乗の平均)を求める。
english_d = []
for e in english_dev:
e_dis = e ** 2
english_d.append(e_dis)
english_dis = sum(english_d) / len(english_d)
print("英語の分散=",english_dis)
math_d = []
for m in math_dev:
m_dis = m ** 2
math_d.append(m_dis)
math_dis = sum(math_d) / len(math_d)
print("数学の分散=",math_dis)
#標準偏差(分散の正の平方根)を求める。
import numpy as np
english_std = np.std(english_dev)
print("英語の標準偏差は",english_std)
math_std = np.std(math_dev)
print("数学の標準偏差は",math_std)
#共分散(偏差の積の平均値)を求める。
cov_mul = [e * m for (e, m) in zip(english_dev, math_dev)]
print("英語と数学の点数の積=",cov_mul)
cov = sum(cov_mul) / len(cov_mul)
print("共分散=",cov)
#相関係数(共分散を2種類のデータから求めた標準偏差で割る)を求める。
cor = cov / (english_std * math_std)
print("2つのデータ(英語と数学の点数)の相関係数=", cor)