# 質問内容
PythonとNumPyで、既存の関数じゃなく自分で相関係数を求めたいのですが、なぜかうまくいきません。
全く同じ数値を対応させているにもかかわらず下記のプログラムで相関係数を求めたときに相関係数が0.0999になります。これはそう言うものなのでしょうか。1になるか0.999になると思っていたのですが。。。
わかる方回答よろしくお願いします。
python
1import matplotlib.pyplot as plt 2import numpy as np 3import math 4%matplotlib inline 5 6amount = 100 7data1 = np.array([i for i in range(10)]) 8data2 = np.array([i for i in range(10)]) 9 10ave1 = np.average(data1) 11diff1 = data1- ave1 12squared1 = diff1 ** 2 13sum1 = np.sum(squared1) 14s1 = math.sqrt(sum1/len(data1)) 15print(s1) 16 17ave2 = np.average(data2) 18diff2 = data2- ave2 19squared2 = diff2 ** 2 20sum2 = np.sum(squared2) 21s2 = math.sqrt(sum2/len(data2)) 22print(s2) 23 24#co_dispersion 25step1 = (data1 - ave1) * (data2 - ave2) 26co_dispersion = np.sum(step1) / amount 27print(step2) 28 29r = (co_dispersion / (s1 * s2)) 30print(r)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/12/06 13:28