2019/09/10Python入門者はPythonを使って偏差値を出してみよう社内でデータを一日中扱う人は多いかもしれませんが、大半の人はデータの入力に時間を費やし、EXCELを使って簡単な集計を行うことしかしていないかもしれません。そんな人たちの中に普段データを扱っているのだからデータサイエンティストになるためにPythonを勉強するんだと意気込んでいる人もいるかと思います。何をしたらいいかわからない。そんな人にはなじみの深い偏差値をPythonを使って計算してみてはどうでしょう。難しい関数やモジュールは使わず、基本は組み込み関数を利用しています。本文書はPythonを使える環境が構築されている入門者を対象に説明を行っています。偏差値を求めようPythonで偏差値を出そう数学のテストを受けた10名の点数を使って偏差値の計算を行っていきます。偏差値は偏差値は50を平均として平均からのずれを計算して偏差値を出します。テストの平均を出そう10名の点数は下記のように配列に入った状態から始めます。ファイル名はscore.pyとしています。[50,68,48,92,58,79,89,60,74,69];合計を出すプログラムを作成してみましょう。scoreprint(f'10人の点数の合計は、{score_sum}')実行すると合計は、”10人の点数の合計は、687′′となります。........のように足していく方法もありますが、要素の数が増えた場合に実用的ではありません。for文を使えば配列の要素がいくらに増えても計算を行うことができます。[/comment]for文を使っても合計数は計算できますが、pythonではsum関数が用意されているので一行で合計数を出すことができます。}')平均を出すためには、人数で合計を割ることで計算を行うことができます。score_sum/10print(f'10人の平均点は、{average}')今回は人数が10と決まっていましたが、要素の数が多すぎてわからない場合はlen関数を利用することで要素の数を出すことができます。len(scores)print(f'配列の長さは、{length}')実行すると”配列の長さは、10′′と表示されます。sum_score等の変数を使わなければ平均は下記のプログラムのように1行で記述することができます。sum(scores)/len(scores)print(f'10人の平均点は、{average}')10人の平均点は、68.7平均値からのずれを計算しよう平均値が出たので各人のテストの点数とどれくらいずれているのか計算しましょう。このずれのことを偏差(deviation)といいます。68.7=-0.7というようにずれを計算することができます。手計算では大変なので、Pythonで行いましょう。ずれ(偏差)の合計(zure_sum)も取得しておきます。zureprint(f'10人のずれの合計は、{round(zure_sum)}')rount関数を使って四捨五入を行っています。round(value,1)の1は四捨五入後の小数点の桁数を設定します。偏差を足すと0になってしまいます。偏差がプラスでもマイナスでも計算できるように偏差を2乗します。”偏差の2乗”を使うことで平均からのずれを確認します。zureprint(f'10人のずれの2乗の合計は、{round(zure_sum)}')実行すると下記が表示されます。score.py1人目のずれの2乗は349.72人目のずれの2乗は0.53人目のずれの2乗は428.54人目のずれの2乗は542.95人目のずれの2乗は114.56人目のずれの2乗は106.17人目のずれの2乗は412.18人目のずれの2乗は75.79人目のずれの2乗は28.110人目のずれの2乗は0.110人のずれの2乗の合計は、2058分散を計算しよう先ほど計算した偏差の2乗の合計を配列の数で割ると分散(variance)となります。分散を出すことで点数がどれほどばらつきを知ることができます。分散が大きいと平均の値からのずれが大きいことになるので、ばらつきが大きいということになります。点数が平均よりも高い人もいれば低い人もいることになります。分散が小さいとほとんどみんなが平均点近くの点数を取っていることになります。Pythonでも分散は偏差の2乗の合計を配列の数で割るだけなので下記のプログラムになります。deviation)は分散の平方根を取れば計算することができます。平方根をとるのかというと分散はばらつきを見るために平均からのずれである偏差を2乗しました。2乗することで単位が点2になります。平方根を計算すれば単位が点2が点になり、点数の単位の点と同じ単位で扱えるようになります。2乗したら単位が点2がわからない人は面積の単位(cm2)を思い出してください。横の長さ(cm)と高さ(cm)のかけるとcm2になったように点と点をかけると田単位が(点2)になります。Pythonでは、平方根を使用するためには、mathモジュールをimportしてsqrtメソッドを使うことで計算することができます。分散の値をpythonを利用して平方根して、標準偏差を計算しましょう。math.sqrt(variance)print(f'標準偏差は分散を平方根して計算します。score.py標準偏差14は分散を平方根して計算します。偏差値を求めよう標準偏差を計算することができたので、偏差値を出すにはテストの点数と平均点と標準偏差を使って下の式に当てはめていくだけです。計算することで標準化を行い、数学以外のテストの場合の結果と比較できるようになります。これまでに出した平均点、標準偏差を使って偏差値を求めています。1実行するとそれぞれの偏差値を確認することができます。偏差値の基準である50に近い偏差値になっています。点数が高いほど偏差値は高く、点数が低いと偏差値は低くなっています。このようにPythonのプログラムを使って偏差値を求めることができました。