표준편차(Standard Deviation)는 데이터 속 숫자들이 평균을 중심으로 얼마나 넓게 퍼져 있는지를 나타내는 통계적 측정값입니다. 수학적으로는 분산(variance)의 제곱근이며, 분산이란 각 데이터 값에서 평균을 뺀 차이를 제곱한 뒤 그 평균을 구한 값입니다.
아래는 이러한 표준편차를 계산하는 C++ 프로그램 예제입니다.
C++ 표준편차 계산 예제
#include <iostream>
#include <cmath>
using namespace std;
int main() {
float val[5] = {12.5, 7.0, 10.0, 7.8, 15.5};
float sum = 0.0, mean, variance = 0.0, stdDeviation;
int i;
// 1단계: 합계와 평균 계산
for(i = 0; i < 5; ++i)
sum += val[i];
mean = sum / 5;
// 2단계: 분산 계산
for(i = 0; i < 5; ++i)
variance += pow(val[i] - mean, 2);
variance = variance / 5;
// 3단계: 표준편차 계산
stdDeviation = sqrt(variance);
cout << "데이터 값: ";
for(i = 0; i < 5; ++i)
cout << val[i] << " ";
cout << endl;
cout << "이 데이터 값들의 표준편차는 " << stdDeviation;
return 0;
}실행 결과
데이터 값: 12.5 7 10 7.8 15.5 이 데이터 값들의 표준편차는 3.1232
코드 단계별 설명
1단계: 합계와 평균 구하기
프로그램은 먼저 모든 데이터 값을 더해 합계를 구합니다. 그런 다음 합계를 요소의 개수(5)로 나누어 평균을 계산합니다. 해당 코드는 다음과 같습니다.
for(i = 0; i < 5; ++i) sum += val[i]; mean = sum / 5;
2단계: 분산 구하기
분산은 각 데이터 값에서 평균을 뺀 차이를 제곱하고, 이를 모두 더한 뒤 데이터 개수로 나누어 평균을 내는 방식으로 구합니다. pow() 함수는 거듭제곱을 계산하는 데 사용됩니다.
for(i = 0; i < 5; ++i) variance += pow(val[i] - mean, 2); variance = variance / 5;
3단계: 표준편차 계산 및 출력
마지막으로 분산에 제곱근(sqrt())을 적용하면 표준편차가 완성됩니다. 이후 모든 데이터 값과 함께 계산된 표준편차를 화면에 출력합니다.
stdDeviation = sqrt(variance); cout << "데이터 값: "; for(i = 0; i < 5; ++i) cout << val[i] << " "; cout << endl; cout << "이 데이터 값들의 표준편차는 " << stdDeviation;
참고: 모집단 표준편차 vs 표본 표준편차
위 예제는 데이터 전체(모집단)를 대상으로 하는 모집단 표준편차를 계산합니다. 즉, 분산을 구할 때 데이터 개수 N으로 나눕니다. 반면 표본 데이터에서 전체 모집단을 추정하려면 표본 표준편차를 사용해야 하며, 이 경우에는 N 대신 N-1(자유도)로 나누어야 합니다. 두 방식의 차이를 이해하고 상황에 맞게 선택하는 것이 중요합니다.