[JavaScript] 자바스크립트로 통계값(평균,분산,표준편차)구하는 스크립트 만들기

2021. 2. 26. 00:25Program/JavaScript

자바스크립트로 통계값 구하는 스크립트 만들어보기

 

가끔 통계(평균, 분산, 표준편차 등)값을 구해야하는 상황이 생기는데

손으로 계산을 하려면 종종 번거로울때가 있어

인터넷 브라우저에서 간단하게 값만 입력하면 통계값들을 구해주는 코드를 짜보았습니다.

 

 

프로그램 설계는 간단하게 다음의 순서대로 진행 할 수 있게 짜보았습니다.

1. 알림창을 통하여 입력값을 받습니다.

2. 추가로 값을 입력할 것인지 확인합니다.

3. 1번과 2번을 반복하여 입력값을 받아 배열로 정리합니다.

4. 문자열로 입력받은 배열값을 숫자로 변환하여 각 통계값들을 구합니다.

5. 자료(표본)값들의 평균값을 구합니다.

6. 자료(표본)값들의 분산값을 구합니다.

7. 자료(표본)값들의 표준편차값을 구합니다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   <h3>평균,분산,표준편차 구하기</h3>
    <script>
        var arr = []; /* 자료(표본)값 */
        var arrSum = 0; /* 자료(표본)값의 합계 */
        function input(){
            while (true){
                /* 입력값 받기 */
                var inputNum = prompt('값을 입력해주세요', '숫자로 입력해주세요~');
                arr.push(inputNum * 1);  /* 문자열로 입련된 값을 숫자 1을 곱하여 숫자형으로 변환 */
                arrSum += Number(inputNum);  /* 평균값을 구하기 위해 받은 입력값의 합을 누적시켜주기 */
                
                /* 추가로 값을 입력할 것인지 확인하기 */
                var more = confirm('계속 입력하시겠습니까?');
                if (more === true){
                    continue;
                } else {
                    break;
                }
            }
        }
        input();
        
        var mean = arrSum/arr.length;   /* 평균값 구하기 */
        var devTotal = 0;   /* 편차값의 합계 구하기 */
        for (var i=0; i < arr.length; i++){
            var dev = arr[i] - mean;
            devTotal += dev * dev;
        }
        var variance = devTotal/arr.length;   /* 모분산값 구하기 */
        var sVariance = devTotal/(arr.length-1);   /* 표본분산값 구하기 */
        var stdDev = Math.sqrt(devTotal/arr.length);   /* 모표준편차값 구하기 */
        var sStdDev = Math.sqrt(devTotal/(arr.length-1));   /* 표본표준편차값 구하기 */
            
        
        document.write('자료값 = [', arr,']<br>');
        document.write('자료수 = ', arr.length,'<br>');
        document.write('자료의합 =', arrSum,'<br>');
        document.write('평균(mean) = ', mean,'<br>');
        document.write('편차의합(deviation) = ', devTotal,'<br>');
        document.write('모분산(variance) = ', variance,'<br>');
        document.write('표본분산(S variance) = ', sVariance,'<br>');
        document.write('모표준편차(standard deviation) = ', stdDev,'<br>');
        document.write('표본표준편차(S standard deviation) = ', sStdDev,'<br>');
    </script>
</body>
</html>

 

 

허접 코드를 보시고 안스럽게 느껴지시는 고수분들의 고언을 기다립니다...