データを小さい順に並べたとき中央に位置する値。
最も頻繁に出現する値。
散らばりの程度を表す尺度の一つ。
四分位範囲(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σ の範囲外を外れ値として扱う場合
※ 平均 ± 標準偏差 * 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 が除外されている
データのばらつきを表す値。
1. 各データと平均値の差を求める
2. 1で求めた値を2乗する
3. 2で求めた値をすべて足す
4. 3で求めた値をデータ数で割る
例)
import numpy as np x = [1,2,3,4,5] np.sum((x - np.mean(x)) ** 2) / len(x) # 2.0
平均が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
不偏分散の平方根をとる事で標本標準偏差を求める事ができる。
※不偏分散は、標本分散から母分散を推測するための分散で全標本数-1で割る。
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]
平均が0、標準偏差(SD)が1になるように変換した得点。
※平均から標準偏差何個ぶん離れているか。
※ z = (データ - 平均) / 標準偏差
相関係数は相関関係の強弱を数値化したもの。
※相関係数は -1 <= r <= 1 の値を持ち、1 (または -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. ]]
(データ - 平均) / 標準偏差
※標準偏差何個分離れているか (平均を1とする)
※±1 以内は全体の 68% に含まれる
異なる母数を持つ複数の平均の平均を求める
平均 ± 標準偏差 * N (範囲外は外れ値として扱う。等)