2017年8月10日木曜日

学習環境

Head First Statistics (Dawn Griffiths (著)、黒川 利明 (翻訳)、木下 哲也 (翻訳)、黒川 洋 (翻訳)、黒川 めぐみ (翻訳)、オライリージャパン)の3章(ばらつきと広がりを測る)、監督になってみよう(p. 114)を取り組んでみる。

監督になってみよう(p. 114)


  1. 7 2 +2· 9 2 +4· 10 2 +2· 11 2 + 13 2 1+2+4+2+1 10 2 = 49+162+400+242+169 10 100 = 1022 10 100 =2.2 2.2

  2. 7 2 + 8 2 +2· 9 2 +2· 10 2 +2· 11 2 + 12 2 + 13 2 1+1+2+2+2+1+1 10 2 = 49+64+162+200+242+144+169 10 100 = 1030 10 100 =3 3

  3. 2· 3 2 + 6 2 +2· 7 2 +3· 10 2 + 11 2 + 13 2 + 30 2 2+1+2+3+1+1+1 10 2 = 18+36+98+300+121+169+900 11 100 = 1642 11 100 = 16421100 11 = 542 11 =49. 49.

標準偏差がもっと小さい、選手1が最も頼りになる。

コード(Emacs)

HTML5

<pre id="output0"></pre>

<button id="run">run</button>
<button id="clear0">clear</button>

<script src="sample5.js"></script>    

JavaScript

let pre0 = document.querySelector('#output0'),
    btn0 = document.querySelector('#run'),
    btn1 = document.querySelector('#clear0'),
    p = (x) => pre0.textContent += x + '\n',
    range = (start, end, step=1) => {
        let res = [];
        for (let i = start; i < end; i += step) {
            res.push(i);
        }
        return res;
    };


let data1 = {7:1, 9:2, 10:4, 11:2, 13:1},
    data2 = {7:1, 8:1, 9:2, 10:2, 11:2, 12:1, 13:1},
    data3 = {3:2, 6:1, 7:2, 10:3, 11:1, 13:1, 30:1},
    dataToNums = (data) => {
        return Object.entries(data)
            .reduce((prev, [point, n]) =>
                    prev.concat(range(0, n).map(() => point)),
                    []);
        
    },
    variance = (nums) => {
        return nums
            .reduce((prev, next) => prev + (next - 10) ** 2, 0) / nums.length;
    },
    standardDeviation = (nums) => Math.sqrt(variance(nums));

let output = () => {
    [data1, data2, data3].forEach((data, i) => {
        p(`${i + 1}.`);
        p(`分散: ${variance(dataToNums(data))}`);
        p(`標準偏差: ${standardDeviation(dataToNums(data))}`);
    });
};

btn0.onclick = output;
btn1.onclick = () => pre0.textContent = '';
output();





    










						

0 コメント:

コメントを投稿