You are on page 1of 6

Практична робота №6

Мета роботи: Навчитись писати програму, яка реалізує на практиці критерій


узгодженості Пірсона.
Завдання:
1. Створити програму для перевірки на допустимі значення на основі
критерію Пірсона.
2. Вивести на екран результат роботи програми.

Студент: Бобришев Артем


Група: П-732-42
Спеціальність: 121 Інженерія програмного забезпечення
КИЇВ 2023
ПОРЯДОК ВИКОНАННЯ РОБОТИ
1. Організуйте введення з консолі (А+20) цілих чисел в діапазоні від 0 до 20
включно.
2. Увімкніть ПК і завантажте Turbo-C.
3. Напишіть програму згідно завдання.
4. Налагодіть програму.
5. Виведіть на екран вибірку та результати перевірок.
6. Дайте відповіді на контрольні питання.
7. Оформіть звіт.
Контрольні питання:
1. Критерій узгодженості Пірсона.
2. Яким чином організована перевірка даних на допустимість?
3. Проста гіпотеза.
4. Нульова гіпотеза.
КОД
#include <iostream>
#include <vector>
#include <cmath>
// Function to calculate the chi-squared statistic
double calculateChiSquare(const std::vector<int>& observed, const
std::vector<int>& expected) {
double chiSquare = 0.0;
for (size_t i = 0; i < observed.size(); i++) {
chiSquare += pow(observed[i] - expected[i], 2) / expected[i];
}
return chiSquare;
}
int main() {
int A; // Variable A that determines the number of expected values
std::cout << "Enter the value of A: ";
std::cin >> A;

// Check for the validity of the value of A (it should be greater than or equal to
0)
if (A < 0) {
std::cout << "Error: A should be greater than or equal to 0." << std::endl;
return 1;
}
// Number of possible value categories (from 0 to 20 inclusive)
const int numCategories = 21;

// Vector to store the count of observations in each category


std::vector<int> observed(numCategories, 0);
// Input observations from the console
for (int i = 0; i < A + 20; i++) {
int value;
std::cout << "Enter value " << i + 1 << ": ";
std::cin >> value;

// Check for the validity of values (they should be in the range from 0 to 20)
if (value < 0 || value > 20) {
std::cout << "Error: Values should be in the range from 0 to 20." <<
std::endl;
return 1;
}

// Save the count of observations in the category


observed[value]++;
}

// Expected distribution (uniform within the range 0-20)


std::vector<int> expected(numCategories, (A + 20) / numCategories);

// Calculate the chi-squared statistic


double chiSquare = calculateChiSquare(observed, expected);

// Output the result to the screen


std::cout << "Chi-squared statistic value: " << chiSquare << std::endl;
return 0;
}

РЕЗУЛЬТАТ РОБОТИ ПРОГРАМИ


ВІДПОВІДЬ НА КОНТРОЛЬНІ ПИТАННЯ
1. Критерій узгодженості Пірсона - це статистичний тест, який
використовується для оцінки, наскільки спостережувані дані
відповідають очікуваному теоретичному розподілу. Він визначає, чи
можна прийняти чи відкинути нульову гіпотезу про те, що
спостережувані та очікувані значення розподілу ідентичні. Критерій
Пірсона базується на розрахунку квадрату відстані між
спостережуваними та очікуваними значеннями.

2. Організація перевірки даних на допустимість зазвичай включає


наступні кроки:
Визначення обмежень та критеріїв допустимості для введених даних.
Перевірка, чи введені значення задовольняють цими критеріями.
Якщо значення не відповідають встановленим критеріям, користувачеві
надається повідомлення про помилку, і програма може завершити роботу або
вимагати введення правильних значень.
3. Проста гіпотеза - це вид статистичної гіпотези, яка містить конкретне і
чітке твердження про параметри популяції чи взаємозв'язки між
змінними. Наприклад, проста гіпотеза може стверджувати, що середнє
значення певної вибірки дорівнює певному числу.
4. Нульова гіпотеза (H0) - це стандартне припущення, яке перевіряється в
процесі статистичного тестування. Вона часто формулюється як
відсутність ефекту, нульовий вплив чи відсутність відмінності між
групами. Результати тестування використовуються для визначення, чи
можна відкинути нульову гіпотезу на користь альтернативної гіпотези.

You might also like