目次 †
平均値 †
数式では μ(ミュー) や として表される。
import numpy as np x = np.array([1,2,3,4,5]) print(x.mean()) # 3.0 中央値 †データを小さい順に並べたとき中央に位置する値。 import numpy as np x = np.array([1,2,3,4,5]) np.median(x) 結果 3.0 最頻値 †最も頻繁に出現する値。 import numpy as np import scipy.stats as stats x = np.array([1,2,3,1,2,3,5,6,3,5,6,7,4,1,3,4]) stats.mode(x, axis=-1).mode[0] 結果 3 四分位範囲(IQR) †散らばりの程度を表す尺度の一つ。 四分位範囲(IQR) = 75パーセンタイル(第三四分位数) - 25パーセンタイル(第一四分位数) data = np.array([2,69,67,75,84,92,80,77,65,78,84,95,71]) # 四分位点を求める q25, q75 = np.percentile(data, [25 ,75]) # 四分位範囲 iqr = q75 - q25 print(q25, q75 ) print(iqr) 外れ値について †外れ値の定義は扱われるデータによって変わるが、一般的には、値 < (Q1 - 1.5 * IQR) または 値 > (Q3 + 1.5 * IQR) を外れ値として扱う。 例1) 上記のデータから外れ値を除外する例 print(data[(data >= q25 - 1.5 * iqr) & (data <= q75 + 1.5 * iqr)]) 結果 [69 67 75 84 92 80 77 65 78 84 95 71] # 2 が除外されている 例2) 平均 ±Nσ の範囲外を外れ値として扱う場合 # 平均 ±2σ を外れ値として扱う場合 N = 2 s_plus = data.mean() + (N * data.std()) s_minus = data.mean() - (N * data.std()) print(data[(data >= s_minus) & (data <= s_plus)]) 結果 [69 67 75 84 92 80 77 65 78 84 95 71] # 2 が除外されている 分散 †データのばらつきを表す値。( variance ) 1. 各データと平均値の差を求める →
例) import numpy as np x = [1,2,3,4,5] np.sum((x - np.mean(x)) ** 2) / len(x) # 2.0 正規分布 †
平均を μ, 分散を > 0 とする(1次元)正規分布は、以下の式で表される。
標準正規分布 †平均が0、分散が1の正規分布のこと。 標準偏差 †標準偏差を求めるには、分散の平方根(ルート)をとる。 import numpy as np x = [1,2,3,4,5] np.std(x) # 1.4142135623730951 np.sqrt(np.sum((x - np.mean(x)) ** 2) / len(x)) # 1.4142135623730951 不偏分散と標本標準偏差 †不偏分散の平方根をとる事で標本標準偏差を求める事ができる。 data = np.array([...]) np.sqrt(np.sum((data - m) ** 2) / (len(data) - 1)) 偏差値の求め方 †偏差値は、元のデータを平均が50、標準偏差が10となるように変換した値。 ※ s: 標準偏差 score = np.array([82, 95, 74, 65, 77, 88]) # 標準偏差 s = np.sqrt(((score - score.mean()) ** 2).sum() / (len(score))) # 偏差値 print((score - score.mean()) / s * 10 + 50) 結果 [51.89289775 65.31526361 43.6329803 34.34057317 46.73044934 58.08783584] Z得点(z値、z-score、z-value) †平均が0、標準偏差(SD)が1になるように変換した得点。 相関係数 †相関係数は相関関係の強弱を数値化したもの。 x = np.array([82, 95, 74, 65, 77, 88]) y = np.array([2, 3, 1.5, 0.5, 1, 1.5]) n = x.size x_mean = x.mean() y_mean = y.mean() x_std = x.std() y_std = y.std() # x と y の共分散を求める cov = np.sum([(x - x_mean) * (y - y_mean)]) / n # cov = np.cov(x, y, ddof=0)[0][1] # 共分散は np.cov でも求める事ができる # 相関係数を求める r = cov / (x_std * y_std) print(r) print(np.corrcoef(x, y)) # 相関係数は np.corrcoef でも求める事ができる 結果 0.8737254372984308 [[1. 0.87372544] [0.87372544 1. ]] 非線形の相関 †上記のピアソンの相関係数で数値化できるデータは線形の相関に限られる。 import numpy as np import matplotlib.pyplot as plt x = np.linspace(-10, 10, 200) y = x**2 plt.plot(x, y, marker="o") plt.show() ピアソンの相関係数 print('{:0.20f}'.format(np.corrcoef(x, y)[0,1])) 結果 0.00000000000000019357 MIC( Maximal information coefficient )を使用すると、このような非線形の相関も表す事ができる。 from minepy import MINE mine = MINE() mine.compute_score(x, y) print('{:0.20f}'.format(mine.mic())) 結果 0.99999999999999888978 標準化係数 †(データ - 平均) / 標準偏差 帰無仮説 †統計的仮説検定の際にとりあえず立てる仮説の事。 として表される。P値 †帰無仮説の下でデータから計算された統計量よりも極端な(仮説に反する)統計量が観測される確率をP値という 有意水準 †
どの程度の正確さをもって帰無仮説 を棄却するかを表す定数。
有意水準αの仮説検定は、p < α の時に を棄却する 検出力 †統計的仮説検定で、帰無仮説が偽であるときに検定が帰無仮説を棄却する確率の事。 t検定 †TODO:
加重平均 †異なる母数を持つ複数の平均の平均を求める 平均 ±Nσ †平均 ± 標準偏差 * N (範囲外は外れ値として扱う。等) 効果量 †TODO:
その他 † |