【Python】 偏差値の求め方

■偏差値

偏差値とは、集団の中でどれくらいの位置にいるかを表す数値で、
平均を偏差値50になるように変換し、その基準からどれくらい高い(または低い)かを表す。

■求め方

(例)
生徒5人の数学の点数から偏差値を算出する。
A:60点
B:80点
C:75点
D:90点
E:85点

平均:
78点

分散:
106.0

標準偏差:
10.295・・・・・・

※平均・分散・標準偏差の求め方の参照先。

(各点数 – 平均) / 標準偏差:
[-1.74831455 , 0.19425717, -0.29138576, 1.16554303, 0.6799001 ]・・・・・・①

偏差値:(上記① × 10) + 50
[32.51685448, 51.94257172, 47.08614241, 61.65543035, 56.79900104]

■例題

生徒14人の数学の点数から偏差値を算出する。

ABCDEFGHIJKLMN
67 75 44 89 97 58 76 77 49 81 63 33 39 61

■サンプルコード

# -*- Coding: UTF-8 -*-
import numpy as np

# 偏差値計算関数
def CalDevVal(score):
    # それぞれの点数に対して、「(点数 - 平均点) / 標準偏差」を実施・・・①
    dev_val = (score - np.mean(score)) / np.std(score)
    # ①の結果について、「(① × 10)+50」を実施=偏差値
    dev_val = dev_val * 10 + 50

    return dev_val

# メイン処理
if __name__ == '__main__':
    # 人の名前とテストの点数をそれぞれ配列に格納
    test_name = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
                'I', 'J', 'K', 'L', 'M', 'N']
    test_score = [67, 75, 44, 89, 97, 58, 76, 77, 49, 81, 63, 33, 39, 61]

    # 偏差値の計算結果を格納
    result = CalDevVal(test_score)


    for i in range(len(test_name)):
        # 偏差値は小数第2位を偶数まるめ
        print(test_name[i], ':', round(result[i], 1))

■実行結果

A : 51.1
B : 55.5
C : 38.6
D : 63.2
E : 67.5
F : 46.2
G : 56.0
H : 56.6
I : 41.3
J : 58.8
K : 48.9
L : 32.6
M : 35.8
N : 47.9

コメント

タイトルとURLをコピーしました