プログラミング講座 第14回

第14回の目標:プログラミングを通してデータの分析について理解を深める。

1.代表値

データの特徴を表す数値を代表値という。

代表値には、平均値や最頻値や中央値などがある。

2.平均値

データの和をデータの個数で割ったもの。

\( x_1, x_2, \cdots , x_n \) の平均値を\( \overline{x} \)とすると\( \overline{x} = \frac{1}{n}(x_1 + x_2 + \cdots + x_n) \)である。

例題1 パラメータとして数値からなる配列を引き受け、各数値の平均値を返す関数 myAverageを定義せよ

  function myAverage(arr) {
    let n = arr.length; // このようにしてパラメータの配列の要素数を取得できる

  }
  
結果:

3.最頻値

データで最も個数の多い値。これは主に質的データを扱うときに使うものである。

例:クラスの生徒が注文したTシャツのサイズ M, L, M, S, M, L, M ・・・最頻値はM

例題2 パラメータとして値が"りんご"or"みかん"or"ぶどう"からなる配列を引き受け、その最頻値を返す関数 myModeを定義せよ。ただし、最頻値が1つのケースで動けばよいとする

結果:

4.中央値

データを小さい順にならべたときに中央にくる値。データが奇数個であれば中央のデータの値であり、データが偶数個であれば中央に並ぶ2個の平均値である。

並び替えは以下のようにすることができる。

    let array1 = [4,3,2]

    array1.sort(); // このようにしてリストを小さい順に並び替えられる。
                   // この命令が実行されるとarray1は[2,3,4]になる
  

なお、配列.sort()では、要素を文字列に変換し、アルファベット順みたいな感じで並び替える。sort()に関数を渡すことで別の並び替えも可能である(高階関数を参照)が、あまり気にしなくてよい。

また、割り算は/で計算できるが、商はMath.floor( / )で、余りは%で求められる。

    let x = 30 / 4;             // xには7.5が代入される。
    let y = Math.floor(30 / 4); // yには30を4で割った商の7が代入される。
    let z = 30 % 4;             // zには30を4で割った余りの2が代入される。
  

例題3 パラメータとして1桁の整数値からなる配列を引き受け、中央値を返す関数 myMedianを定義せよ

結果:

5.四分位数(しぶんいすう)

データを小さい順に並べたときに、データを4等分する位置にある3つの値をそれぞれ第1四分位数、第2四分位数、第3四分位数という。第2四分位数は中央値に等しい。

下のような箱ひげ図として表現されることが多い。

6.分散

分散はデータの散らばり具合を表す代表値である。

\( x_1, x_2, \cdots , x_n \) の分散を\( s^2 \) とすると、\( s^2 = \frac{1}{n} \{ (x_1 - \overline{x})^2 + (x_2 - \overline{x})^2 + \cdots + (x_n - \overline{x})^2 \} \)である。

なお、上の式で登場する\( (x_1 - \overline{x}) , (x_2 - \overline{x}) \cdots , (x_n - \overline{x}) \)を偏差という。

例題4 パラメータとして数値からなる配列を引き受け、分散を返す関数 myVarianceを定義せよ

結果:

7.標準偏差

\( \sqrt{分散} \)を標準偏差という

なお、ルートは以下のように計算する。

  let x = 16;
  y = Math.sqrt(x); //ルートx を計算してyに代入する。ここではyは4になる
  

8.相関係数

\( (x_1, y_1), (x_2, y_2), \cdots ,(x_n, y_n) \)に対して\( \frac{1}{n} \{ (x_1 - \overline{x})(y_1 - \overline{y}) + (x_2 - \overline{x})(y_2 - \overline{y}) + \cdots + (x_n - \overline{x})(y_n - \overline{y}) \} \)を共分散といい、\( s_{xy} \)と書く。

\( s_{xy} \)とxの標準偏差\( s_x \) ,yの標準偏差\( s_y \) を用いて定義した \( r = \dfrac{s_{xy}}{s_x s_y} \)を相関係数という。

相関係数は\( -1 \leqq r \leqq 1 \)の範囲の値をとり、1に近いほど正の相関が強く、-1に近いほど負の相関が強い。また相関がないときは0に近い値をとる。

例題5 \( [ [x_1,y_1], [x_2,y_2], \cdots, [x_n,y_n] ] \)のようなデータ(長さ2の配列の配列)をパラメータとして受け取り、相関係数を返す関数myCCを定義せよ。

    // 配列の配列の扱い方
    let x = [[5,3], [6,2], [4,7]];

    let y = x[0];    // yには配列xの0番目つまり、[5,3]が代入される。yは配列である。
    let z = x[0][1]; // zには配列x[0]の1番目つまり3が代入される。zは配列でなく値である。
  
結果:

第13回へ 目次へ 第14.2回へ