目次

平均値

数式では μ(ミュー) や x - として表される。
1 n i = 1 n x 1

中央値

データを小さい順に並べたとき中央に位置する値。

最頻値

最も頻繁に出現する値。

四分位範囲(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σ の範囲外を外れ値として扱う場合
※ 平均 ± 標準偏差 * 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で求めた値をデータ数で割る

1 n i = 1 n ( x i - x - ) 2

例)

import numpy as np

x = [1,2,3,4,5]
np.sum((x - np.mean(x)) ** 2) / len(x)   # 2.0

標準偏差

標準偏差を求めるには、分散の平方根(ルート)をとる。

標準偏差 = 1 n i = 1 n ( x i - x - ) 2
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で割る。

標本標準偏差 = 1 (n - 1) i = 1 n ( x - x - ) 2
data = np.array([...])
np.sqrt(np.sum((data - m) ** 2) / (len(data) - 1))

偏差値の求め方

偏差値は、元のデータを平均が50、標準偏差が10となるように変換した値。

偏差値 = x - x - s * 10 + 50

※ 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になるように変換した得点。
※平均から標準偏差何個ぶん離れているか。
※ z = (データ - 平均) / 標準偏差

z = x - μ σ

相関係数

相関係数は相関関係の強弱を数値化したもの。
※相関係数は -1 <= r <= 1 の値を持ち、1 (または -1) に近いほど相関関係が強い。

r = x と y の共分散 xの標準偏差 yの標準偏差 = Sxy Sx Sy = 1n i=1n ( xi - x- ) ( yi - y- ) 1n i=1n (xi-x-)2 1n i=1n (xi-x-)2
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% に含まれる

P値

有意水準

効果量

検出力

t検定

加重平均

異なる母数を持つ複数の平均の平均を求める

平均 ±Nσ

平均 ± 標準偏差 * N (範囲外は外れ値として扱う。等)

その他

正規分布の「68-95-99.7ルール」

TODO:

標準正規分布表(Zテーブル)を使用した分布率の算出

TODO:

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-11-06 (水) 20:25:51 (15d)