Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ thực hiện kiểm định t-test

Kiểm định t-test (Student's t-test) so sánh hai trung bình mẫu, xác định chúng có khác biệt có ý nghĩa thống kê hay không.

Công thức: t = (mean1 - mean2) / sqrt(sd1²/n1 + sd2²/n2).

Ví dụ

#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 += arr[i];
    return sum / n;
}

float calc_deviation(float arr[], int n) {
    float sum = 0;
    float mean = calc_mean(arr, n);
    for (int i = 0; i < n; i++)
        sum += (arr[i] - mean) * (arr[i] - mean);
    return sqrt(sum / (n - 1));
}

float calc_ttest(float arr1[], int n, float arr2[], int m) {
    float mean1 = calc_mean(arr1, n);
    float mean2 = calc_mean(arr2, m);
    float sd1 = calc_deviation(arr1, n);
    float sd2 = calc_deviation(arr2, m);
    float t_test = (mean1 - mean2) / sqrt((sd1 * sd1) / n + (sd2 * sd2) / m);
    return t_test;
}

int main() {
    float arr1[] = {10, 20, 30, 40, 50};
    int n = sizeof(arr1) / sizeof(arr1[0]);
    float arr2[] = {1, 29, 46, 78, 99};
    int m = sizeof(arr2) / sizeof(arr2[0]);
    cout << calc_ttest(arr1, n, arr2, m) << endl;
    return 0;
}

Kết quả

-1.09789