C 언어로 표준편차 계산하기

CBeginner
지금 연습하기

소개

이 실습에서는 C 프로그래밍에서 데이터 집합의 표준 편차를 계산하는 방법을 배웁니다. 이 실습은 데이터 집합의 평균을 계산하고, 평균으로부터의 제곱 편차를 합하여 분산을 계산한 다음, 제곱근을 취하여 표준 편차를 구하는 세 가지 주요 단계로 구성됩니다. 이 실습을 마치면 이러한 기본적인 통계 개념과 이를 C 에서 구현하는 방법에 대한 확실한 이해를 얻게 될 것입니다.

이 실습은 단계별 지침과 샘플 코드를 제공하여 프로세스를 안내합니다. 먼저 주어진 데이터 집합의 평균을 계산하는 C 프로그램을 작성한 다음, 평균으로부터의 제곱 편차를 합하여 분산을 계산하는 프로그램을 확장합니다. 마지막으로 분산의 제곱근을 취하여 표준 편차를 결정하고 결과를 출력합니다.

데이터 집합의 평균 계산

이 단계에서는 C 프로그래밍에서 데이터 집합의 평균을 계산하는 방법을 배웁니다. 평균은 숫자 집합의 평균값을 나타내는 기본적인 통계 측도입니다.

먼저 데이터 집합의 평균을 계산하는 C 프로그램을 만들어 보겠습니다. nano 를 사용하여 새 파일을 엽니다.

cd ~/project
nano mean_calculation.c

이제 다음 코드를 입력합니다.

#include <stdio.h>

#define MAX_SIZE 100

float calculateMean(int arr[], int size) {
    float sum = 0;
    for (int i = 0; i < size; i++) {
        sum += arr[i];
    }
    return sum / size;
}

int main() {
    int dataset[MAX_SIZE];
    int size;

    printf("Enter the number of elements (max %d): ", MAX_SIZE);
    scanf("%d", &size);

    printf("Enter %d integers:\n", size);
    for (int i = 0; i < size; i++) {
        scanf("%d", &dataset[i]);
    }

    float mean = calculateMean(dataset, size);
    printf("Mean of the dataset: %.2f\n", mean);

    return 0;
}

프로그램을 컴파일합니다.

gcc mean_calculation.c -o mean_calculation

프로그램을 실행하고 샘플 데이터를 입력합니다.

./mean_calculation

예시 출력:

Enter the number of elements (max 100): 5
Enter 5 integers:
10
20
30
40
50
Mean of the dataset: 30.00

코드를 자세히 살펴보겠습니다.

  1. calculateMean 함수는 배열과 크기를 매개변수로 받습니다.
  2. 함수는 배열의 모든 요소의 합을 계산합니다.
  3. 평균은 합을 총 요소 수로 나누어 계산합니다.
  4. main 함수에서 사용자에게 데이터 집합을 입력하도록 요청합니다.
  5. calculateMean을 호출하고 결과를 소수점 둘째 자리까지 출력합니다.

제곱 편차의 합과 분산 계산

이 단계에서는 이전 프로그램을 확장하여 평균으로부터의 제곱 편차를 합하여 분산을 계산합니다. 분산은 데이터 집합 내 숫자들이 얼마나 퍼져 있는지 측정합니다.

이전 파일을 수정하려면 다음과 같이 엽니다.

cd ~/project
nano mean_calculation.c

분산 계산을 추가하여 프로그램을 업데이트합니다.

#include <stdio.h>
#include <math.h>

#define MAX_SIZE 100

float calculateMean(int arr[], int size) {
    float sum = 0;
    for (int i = 0; i < size; i++) {
        sum += arr[i];
    }
    return sum / size;
}

float calculateVariance(int arr[], int size, float mean) {
    float sumSquaredDeviations = 0;
    for (int i = 0; i < size; i++) {
        float deviation = arr[i] - mean;
        sumSquaredDeviations += deviation * deviation;
    }
    return sumSquaredDeviations / size;
}

int main() {
    int dataset[MAX_SIZE];
    int size;

    printf("Enter the number of elements (max %d): ", MAX_SIZE);
    scanf("%d", &size);

    printf("Enter %d integers:\n", size);
    for (int i = 0; i < size; i++) {
        scanf("%d", &dataset[i]);
    }

    float mean = calculateMean(dataset, size);
    float variance = calculateVariance(dataset, size, mean);

    printf("Mean of the dataset: %.2f\n", mean);
    printf("Variance of the dataset: %.2f\n", variance);

    return 0;
}

업데이트된 프로그램을 컴파일합니다.

gcc mean_calculation.c -o mean_calculation -lm

프로그램을 실행하고 샘플 데이터를 입력합니다.

./mean_calculation

예시 출력:

Enter the number of elements (max 100): 5
Enter 5 integers:
10
20
30
40
50
Mean of the dataset: 30.00
Variance of the dataset: 200.00

코드의 주요 내용:

  1. 배열, 크기, 평균을 매개변수로 받는 새로운 calculateVariance 함수를 추가했습니다.
  2. 함수는 각 요소의 평균으로부터의 편차를 계산합니다.
  3. 이러한 편차를 제곱하고 합산합니다.
  4. 분산은 제곱 편차의 합을 요소 수로 나누어 계산합니다.
  5. 컴파일 시 -lm 플래그를 사용하여 수학 라이브러리를 연결합니다.

표준 편차 계산 및 출력

이 마지막 단계에서는 분산의 제곱근을 계산하여 표준 편차를 완성합니다. 표준 편차는 통계 분석에서 데이터 분산의 핵심 측도입니다.

이전 파일을 수정하려면 다음과 같이 엽니다.

cd ~/project
nano mean_calculation.c

표준 편차 계산을 추가하여 프로그램을 업데이트합니다.

#include <stdio.h>
#include <math.h>

#define MAX_SIZE 100

float calculateMean(int arr[], int size) {
    float sum = 0;
    for (int i = 0; i < size; i++) {
        sum += arr[i];
    }
    return sum / size;
}

float calculateVariance(int arr[], int size, float mean) {
    float sumSquaredDeviations = 0;
    for (int i = 0; i < size; i++) {
        float deviation = arr[i] - mean;
        sumSquaredDeviations += deviation * deviation;
    }
    return sumSquaredDeviations / size;
}

float calculateStandardDeviation(float variance) {
    return sqrt(variance);
}

int main() {
    int dataset[MAX_SIZE];
    int size;

    printf("Enter the number of elements (max %d): ", MAX_SIZE);
    scanf("%d", &size);

    printf("Enter %d integers:\n", size);
    for (int i = 0; i < size; i++) {
        scanf("%d", &dataset[i]);
    }

    float mean = calculateMean(dataset, size);
    float variance = calculateVariance(dataset, size, mean);
    float standardDeviation = calculateStandardDeviation(variance);

    printf("Dataset Statistics:\n");
    printf("Mean: %.2f\n", mean);
    printf("Variance: %.2f\n", variance);
    printf("Standard Deviation: %.2f\n", standardDeviation);

    return 0;
}

업데이트된 프로그램을 컴파일합니다.

gcc mean_calculation.c -o mean_calculation -lm

프로그램을 실행하고 샘플 데이터를 입력합니다.

./mean_calculation

예시 출력:

Enter the number of elements (max 100): 5
Enter 5 integers:
10
20
30
40
50
Dataset Statistics:
Mean: 30.00
Variance: 200.00
Standard Deviation: 14.14

코드의 주요 내용:

  1. 새로운 calculateStandardDeviation 함수를 추가했습니다.
  2. 이 함수는 sqrt() 함수를 사용하여 표준 편차를 계산합니다.
  3. 표준 편차는 분산의 제곱근입니다.
  4. main 함수는 이제 세 가지 통계 측도를 모두 출력합니다.
  5. 수학 라이브러리 연결을 위해 계속해서 -lm 플래그를 사용합니다.

요약

이 실험에서 C 프로그래밍으로 데이터 집합의 평균을 계산하는 방법을 처음 배웠습니다. 평균은 숫자 집합의 평균값을 나타내는 기본적인 통계 측도입니다. 그런 다음 평균으로부터의 제곱 편차를 합산하여 분산을 계산하는 프로그램을 확장했습니다. 분산은 데이터 집합 내 숫자들이 얼마나 퍼져 있는지 측정합니다. 마지막으로 분산의 제곱근을 취하여 표준 편차를 계산하고 결과를 출력하는 방법을 배웠습니다.