Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP로 배열 값의 표준 편차(Standard Deviation) 구하기 – 예제 코드와 상세 설명

표준 편차는 데이터가 평균값으로부터 얼마나 흩어져 있는지를 나타내는 대표적인 통계 지표입니다. 이 글에서는 PHP를 사용해 배열에 담긴 값들의 표준 편차를 직접 계산하는 방법을 단계별로 알아보겠습니다.

예제 코드

<?php
function std_deviation($my_arr)
{
   $no_element = count($my_arr);
   $var = 0.0;
   $avg = array_sum($my_arr)/$no_element;
   foreach($my_arr as $i)
   {
      $var += pow(($i - $avg), 2);
   }
   return (float)sqrt($var/$no_element);
}
$my_arr = array(67, 89, 93, 102, 4);
echo "The standard deviation of elements in the array is ";
print_r(std_deviation($my_arr));
?>

실행 결과

The standard deviation of elements in the array is 35.423156268181

코드 동작 원리

먼저 std_deviation이라는 이름의 함수가 정의됩니다. 이 함수는 다음과 같은 순서로 동작합니다.

1. 요소 개수 확인 및 변수 초기화

count() 함수를 사용해 배열에 포함된 요소의 총 개수를 구하고, 분산(variance) 값을 저장할 변수를 0.0으로 초기화합니다.

2. 평균값 계산

array_sum() 함수로 배열 내 모든 요소의 합을 구한 뒤, 요소의 총 개수로 나누어 산술 평균을 계산합니다.

3. foreach 루프로 분산 누적

foreach 루프를 사용해 배열의 각 요소를 순회하면서, 각 요소에서 평균값을 뺀 차이를 pow() 함수로 제곱한 후 분산 변수에 더해 누적합니다.

4. 표준 편차 반환

루프가 모두 끝나면 누적된 분산값을 요소 개수로 나누고, sqrt() 함수로 제곱근을 구해 최종 표준 편차를 실수(float) 형태로 반환합니다.

함수 외부에서는 5개의 숫자(67, 89, 93, 102, 4)로 구성된 배열을 정의한 후, 이 배열을 인자로 std_deviation 함수를 호출합니다. 그 결과 위와 같이 약 35.42라는 표준 편차 값이 화면에 출력됩니다.

참고 사항

위 예제는 모집단 표준 편차(population standard deviation)를 계산하는 방식입니다. 만약 표본 데이터의 표준 편차(sample standard deviation)를 구하려면, 분산을 n이 아닌 n-1로 나누어야 한다는 점을 기억하세요.