データの代表値
平均
$$ \huge \bar{x} = \frac{1}{n} \sum \limits_{i=1}^n x_i$$
# Python | list testA_mu = sum(testA) / len(testA) # NumPy | ndarray testA_mu = np.average(testA) testA_mu = np.mean(testA) # Pandas | DataFrame > Series testA_mu = df['列名'].mean()
メリット | すべてのデータを考慮できる |
デメリット | 外れ値に弱い |
中央値
$$\huge
Me =
\begin{cases}
x( \frac{n+1}{2})\\
\frac{1}{2} \Biggl( x( \frac{n}{2} ) +x(\frac{n}{2}+1 ) \Biggr)
\end{cases}
$$
# Python | list me = statistics.median(list) me_low = statistics.median_low(list) # 偶数の場合は低い方 me_high = statistics.median_high(list) # 偶数の場合は高い方 # Pandas | DataFrame > Series me = df['列名'].median()
メリット | 外れ値に強い |
デメリット | 全てのデータを十分に考慮できない |
最頻値
# Python | list mode = statistics.mode(list) # Pandas | DataFrame > Series mode = df['列名'].mode()[0]
メリット | 外れ値に強い |
デメリット | 一つに決まらないことがある。サンプルサイズが少ないと使えない。 |
データの散らばり
データ範囲
# Python | list range = max(list) - min(list) # Pandas | DataFrame > Series column_name = '列名' range = df[column_name].max() - df[column_name].min()
四分位数(ヒンジ)
表記 | df.describe() | DataFrame | |
---|---|---|---|
最小値 | \(max\) | min | df[column_name].min() |
第1四分位数 | \(Q_1\) | 25% | df[column_name].quantile(0.25) |
第2四分位数(中央値) | \(Q_2\) | 50% | df[column_name].quantile(0.5) |
第3四分位数 | \(Q_3\) | 75% | df[column_name].quantile(0.75) |
最大値 | \(min\) | max | df[column_name].max() |
四分位範囲
$$ \huge Q_3 - Q_1 $$
# NumPy iqr = np.percentile[list, [75] - np.percentile[list, [25] # stats from scipy import stats iqr = stats.iqr(list) # Pandas | DataFrame > Series column_name = '列名' iqr = df[column_name].quantile(0.75) - df[column_name].quantile(0.25)
四分位偏差
$$ \huge \frac{Q_3 - Q_1}{2}$$
# NumPy iqr = np.percentile[list, [75] - np.percentile[list, [25] qd = iqr / 2 # stats from scipy import stats iqr = stats.iqr(list) qd = iqr / 2 # Pandas | DataFrame > Series column_name = '列名' iqr = df[column_name].quantile(0.75) - df[column_name].quantile(0.25) qd = iqr / 2
分散
$$ \huge \sigma ^2 = \frac{1}{n} \sum_{i=1}^{n}(x_i-\bar{x})^2$$
全てのデータを使った データの値の「ばらつき」を表す度合い。
値が大きければ データの値が ばらつきが大きく、小さければ密集している。
標準偏差
$$\huge \sigma = \sqrt{ \frac{1}{n} \sum_{i=1}^{n}(x_i-\bar{x})^2 }$$
分散を使いやすい値に変換したもの。単位がつけられる。
平均値から + - 標準偏差 の地点に値が固まっていることを表す。
# NumPy std = np.std(array) # Pandas | DataFrame > Series std = df[column_name].std()
変量の変換
\(y=ax+b\) のとき、
- \(\huge \bar{y} = a \bar{x} + b \)
- \(\huge {s_y}^2 = a^2 {s_x}^2\)
- \(\huge s_y = |a| s_x\)
が成り立つ。
\({s_x}^2\), \({s_y}^2\) : 分散 \(s_x\), \(s_y\) : 標準偏差
標準化
$$\huge z=\frac{x-\bar{x}}{s_x}$$