У сучасному світі аналіз даних стає все більш важливою складовою для прийняття обґрунтованих рішень у різних галузях. Одним з етапів аналізу даних є оцінка нормальності розподілу змінних. Оцінка нормальності є важливою, оскільки багато статистичних методів передбачають, що дані мають нормальний розподіл.
Один із методів визначення нормальності – це тест Колмогорова-Смірнова. Цей тест порівнює емпіричну функцію розподілу з теоретичною нормальною функцією розподілу. У цій статті ми розглянемо використання тесту Колмогорова-Смірнова в програмі SPSS та мові програмування Python для оцінки нормальності даних та порівняємо отримані результати.
Спочатку ми зазначимо, що у нашому дослідженні ми маємо набір даних, що складається з двох змінних: віку та ваги. Далі ми розглянемо результати тесту нормальності для цих змінних, отримані в програмі SPSS, та порівняємо їх з результатами, отриманими використовуючи мову програмування Python з бібліотекою SciPy.
У програмі SPSS ми отримали такі результати тесту Колмогорова-Смірнова:
1 2 3 |
variables statistics sig age 0.190 0.000 height 0.173 0.002 |
Результати показують, що для обох змінних p-value менше 0.05, що вказує на відхилення від нормального розподілу змінних.
Тепер давайте порівняємо ці результати з результатами, отриманими використовуючи мову програмування Python та бібліотеку SciPy. Нижче наведено код Python, який ми використали для виконання тесту Колмогорова-Смірнова:
1 2 3 4 5 6 7 |
import pandas as pd from scipy.stats import kstest from scipy.stats import norm data = pd.DataFrame([[8, 120], [8, 123], [8, 130], [8, 125], [10, 160], [9, 158], [8, 120], [7, 126], [6, 98], [5, 97], [7, 115], [7, 120], [7, 118], [8, 117], [6, 97], [6, 99], [9, 123], [10, 157], [10, 155], [9, 155], [9, 153], [5, 96], [7, 115], [6, 94], [6, 94], [5, 87], [8, 117], [6, 96], [5, 97], [6, 91], [6, 88], [9, 149], [6, 94], [8, 117], [10, 156], [10, 160], [6, 90], [6, 90], [7, 116], [5, 89], [6, 90], [7, 118], [10, 162]], columns=['age', 'weight']) x = np.log(data.age) n = norm(loc=0,scale=1) kstest(x, n.cdf) |
Отримані результати виглядають наступним чином:
1 |
KstestResult(statistic=0.9462396895483368, pvalue=5.139087762288979e-55) |
Навіть якщо ми не логарифмуємо дані, результат все ще відрізняється:
1 |
KstestResult(statistic=0.9999997133484281, pvalue=9.27397852188504e-282) |
Як ми можемо побачити, результати, отримані за допомогою Python, суттєво відрізняються від результатів, отриманих у програмі SPSS. Це може бути пов’язано з різними підходами до обробки даних та реалізації алгоритмів в кожній з програм.
Отже, використання різних програм та мов програмування може призвести до різних результатів при аналізі даних. Важливо усвідомлювати це при виборі інструментів для аналізу даних та інтерпретації отриманих результатів.