Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++로 평균의 표준 오차(SEM) 계산하기

이 글에서는 평균의 표준 오차(Standard Error of Mean, SEM)를 계산하는 C++ 프로그램을 다룹니다.

평균의 표준 오차란 표본 평균이 모집단 평균으로부터 어느 정도 흩어져 있는지를 나타내는 추정값입니다. 통계학에서는 이 값을 활용해 모집단 평균에 대한 대략적인 신뢰 구간(confidence interval)을 추정합니다.

계산 원리

표준 오차는 아래 공식으로 구할 수 있습니다.

SEM = 표본 표준 편차 ÷ √n

여기서 n은 표본의 크기를 의미합니다. 따라서 프로그램은 세 단계로 나누어 작성할 수 있습니다.

1. 표본 평균 계산

배열의 모든 요소를 더한 뒤 요소 개수(n)로 나누어 표본 평균을 구합니다.

2. 표본 표준 편차 계산

각 데이터에서 평균을 뺀 값을 제곱하여 합산하고, 자유도를 고려해 (n-1)로 나눈 후 제곱근을 취합니다. 이는 불편 분산(unbiased variance) 기반의 표준 편차입니다.

3. 표준 오차 계산

앞서 구한 표준 편차를 √n으로 나누면 최종적으로 표준 오차가 산출됩니다.

C++ 구현 예제 코드

#include <bits/stdc++.h>
using namespace std;

// 표본 평균 계산
float calc_mean(float arr[], int n){
    float sum = 0;
    for (int i = 0; i < n; i++)
        sum = sum + arr[i];
    return sum / n;
}

// 표준 편차 계산
float calc_deviation(float arr[], int n){
    float sum = 0;
    for (int i = 0; i < n; i++)
        sum = sum + (arr[i] - calc_mean(arr, n)) * (arr[i] - calc_mean(arr, n));
    return sqrt(sum / (n - 1));
}

// 표준 오차 계산
float calc_error(float arr[], int n){
    return calc_deviation(arr, n) / sqrt(n);
}

int main(){
    float arr[] = { 78.53, 79.62, 80.25, 81.05, 83.21, 83.46 };
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << calc_error(arr, n) << endl;
    return 0;
}

실행 결과

0.8063

코드 설명

  • calc_mean(): 배열 요소의 합을 구해 개수로 나누는 방식으로 표본 평균을 반환합니다.
  • calc_deviation(): 각 데이터와 평균 사이의 편차를 제곱해 합산한 뒤, (n-1)로 나누고 제곱근을 취해 표준 편차를 구합니다.
  • calc_error(): 표준 편차를 √n으로 나누어 표준 오차를 최종 계산합니다.

위 예제에서는 6개의 실수 데이터를 사용했으며, 실행 결과 약 0.8063이라는 표준 오차 값이 출력됩니다. 이 값이 작을수록 표본 평균이 모집단 평균에 가깝다는 것을 의미하며, 데이터가 평균 주변에 밀집되어 있음을 알 수 있습니다.