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) = 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 が除外されている
データのばらつきを表す値。( variance )
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% に含まれる。( 正規分布の「68-95-99.7ルール」 )
統計的仮説検定の際にとりあえず立てる仮説の事。
として表される。帰無仮説の下でデータから計算された統計量よりも極端な(仮説に反する)統計量が観測される確率をP値という
一般的にP値が5%または1%以下の場合に帰無仮説を偽として棄却し、対立仮説を採択する。
統計的仮説検定で、帰無仮説が偽であるときに検定が帰無仮説を棄却する確率の事。
異なる母数を持つ複数の平均の平均を求める
平均 ± 標準偏差 * N (範囲外は外れ値として扱う。等)