SOFTWARE IMPLEMENTATION OF ALGORITHMS FOR CALCULATING PEARSON, SPEARMAN AND KENDALL CORRELATIONS IN C#
ПРОГРАМНА РЕАЛІЗАЦІЯ НА МОВІ C# АЛГОРИТМІВ ОБЧИСЛЕННЯ КОРЕЛЯЦІЇ ПІРСОНА, СПІРМЕНА І КЕНДАЛЛА
DOI:
https://doi.org/10.31110/fmo2026.v41i2-01Ключові слова:
кореляція, алгоритм, Пірсон, Спірмен, Кендалл, компонентно-орієнтований підхід, прогармна бібліотекаАнотація
Формулювання проблеми. У наукових дослідженнях з соціології, освіти, фізики, хімії та інших наук використовуються методи кореляційного аналізу. За допомогою коефіцієнтів кореляції визначають існування зв’язку між двома і більше вибірками даних.
Використання коефіцієнтів кореляції надає можливість досліднику з’ясувати, чи існує зв’язок між двома наборами даних, а також характер цього зв’язку: сильний чи слабкий, прямий чи обернений. Завдяки методам кореляції дослідник має дієвий інструмент для підтвердження чи спростування гіпотези.
Важливе місце у застосуванні кореляційного аналізу на практиці відіграють засоби інформаційних технологій. Ці засоби надають можливість зменшити час обробки результатів наукових досліджень у кілька разів. Програмні засоби, які використовуються під час кореляційного аналізу, варіюються у широкому спектрі: до них належать і електронні таблиці MS Excel, і математичний пакет STATISTICA, і мова програмування R. Спільним недоліком зазначених засобів ІТ є те, що дослідник, який їх використовує, повинен мати певний рівень математичної підготовки (STATISTICA), або навички програмування (мова R), або виконувати введення даних вручну (MS Excel). Виникає суперечність між можливостями ІКТ для кореляційного аналізу і тим, як вони застосовуються зараз.
Матеріали і методи. Під час виконання дослідження ми використали такі методи: аналіз і синтез наукової літератури з кореляційного аналізу, теорії алгоритмів, об’єктно-орієнтованого програмування, основ наукових досліджень; порівняльний аналіз алгоритмів розрахунку коефіцієнтів кореляції Пірсона, Спірмена, Кендалла; алгоритмічний метод для побудови алгоритмів розрахунку кореляції; методи об'єктно-орієнтованого програмування для програмної розроблених алгоритмів; методи кореляції; тестуванння обчислювальної складності алгоритмів; тестування точності; тестування виняткових ситуацій (пропуск значень, різні розміри вибірок), тестування стабільності.
Результати. Реалізовано мовою C# алгоритми обчислення кореляції Пірсона, Спірмена і Кендалла. Під час розробки використано компонентно-орієнтований і об'єктно-орієнтований підходи у програмуванні. Алгоритми обчислення кореляції Пірсона, Спірмена і Кендалла представлені мовою C# у вигляді програмної бібліотеки у форматі DLL, яка складається з 5 класів. Розроблені класи і методи для обчислення кореляції Пірсона, Спірмена і Кендалла. Об’єктивною новизною є програмна реалізація алгоритму обчислення кореляції Кендалла для платформи .NET. Для розрахунку вказаних коефіцієнтів кореляції розроблено додаток CorrAnalyzer, до якого підключено створену програмну бібліотеку. Розроблені бібліотеку і додаток доцільно використовувати у педагогічних, психологічних, соціологічних дослідженнях для визначення зв’язку між двома вибірками.
Висновки. Методи кореляції застосовуються для визначення зв’язку між двома вибірками. Найбільш часто використовуються кореляції Пірсона, Спірмена і Кендалла. Коефіцієнти кореляції Пірсона, Спірмена і Кендалла відрізняються за принципом і алгоритмом розрахунку. На основі результатів тестування точності, обчислювальної складності і винятків визначено придатність розроблених методів для застосування під час обробки результатів експерименту. Для того, щоб створювана програмна бібліотека являла собою потужний інструмент для визначення зв’язку між вибірками, в ній реалізовані всі три методи кореляції. Бібліотеку для розрахунку кореляції реалізовано у вигляді компонента (файл DLL), який інтегровано у додаток CorrAnalyzer, написаний мовою C#. Додаток CorrAnalyzer призначений для визначення зв’язку між невеликими вибірками (до 1000 значень).
У перспективі розроблену програмну бібліотеку доцільно доповнити класами для розрахунку кореляції Метьюза і конкордації.
Завантажити
Посилання
Accord.NET Framework (n.d.). Measures.Correlation Method (Double[,]). URL: http://accord-framework.net/docs/html/M_Accord_Statistics_Measures_Correlation.htm
Arifin, W. N. (2018). A Web-based Sample Size Calculator for Reliability Studies. Education in medicine journal, 10(3), 67–76. https://doi.org/10.21315/eimj2018.10.3.8
Chen, J., Wang, G., & Giannakis, G. B. (2019). Graph multiview canonical correlation analysis. IEEE Transactions on Signal Processing, 67(11), 2826-2838. https://doi.org/10.1109/TSP.2019.2910475
Cicuttin, A., Morales, I. R., Crespo, M. L., Carrato, S., García, L. G., Molina, R. S., Valinoti, B., & Folla Kamdem, J. (2022). A Simplified Correlation Index for Fast Real-Time Pulse Shape Recognition, Sensors, 22(20), 7697. https://doi.org/10.3390/s22207697
Cleophas, T. J., & Zwinderman, A. H. (2018). Bayesian Pearson correlation analysis. In Modern Bayesian statistics in clinical research (pp. 111-118). Cham: Springer International Publishing. https://doi.org/10.1007/978-3-319-92747-3_11
Dakılır, D. (2024). FinnCorr: Financial Data Correlation Analysis Engine (Computer software). GitHub. URL: https://github.com/zelosleone/FinnCorr
Derevyanchuk, O. (2025). Methods of correlation and regression of educational data in the systematic analysis of the quality of training of teachers of vocational education. Pedagogical Academy: scientific notes, 23. https://doi.org/10.5281/zenodo.18004752
Franzece, M., & Iuliano, A. (2018). Correlation analysis. In Encyclopedia of bioinformatics and computational biology: ABC of bioinformatics (Vol. 1, pp. 706-721). Elsevier. https://doi.org/10.1016/B978-0-12-809633-8.20358-0
Gogtay, N. J., & Thatte, U. M. (2017). Principles of correlation analysis. Journal of the Association of Physicians of India, 65(3), 78-81. https://www.kem.edu/wp-content/uploads/2012/06/9-Principles_of_correlation-1.pdf
Janse, R. J., Hoekstra, T., Jager, K. J., Zoccali, C., Tripepi, G., Dekker, F. W., & Van Diepen, M. (2021). Conducting correlation analysis: important limitations and pitfalls. Clinical Kidney Journal, 14(11), 2332-2337. https://doi.org/10.1093/ckj/sfab085
Makowski, D., Ben-Shachar, M. S., Patil, I., & Lüdecke, D. (2020). Methods and algorithms for correlation analysis in R. Journal of Open Source Software, 5(51), 2306. https://doi.org/10.21105/joss.02306
MathNet.Numerics (n.d.). Correlation – Math.NET Numerics Documentation. URL: https://numerics.mathdotnet.com/api/MathNet.Numerics.Statistics/Correlation.htm#Pearson
MathNet.Numerics (n.d.). Correlation – Math.NET Numerics Documentation. URL: https://numerics.mathdotnet.com/api/MathNet.Numerics.Statistics/Correlation.htm#Spearman
Measures Methods. (2017). URL: http://accord-framework.net/docs/html/Methods_T_Accord_Statistics_Measures.htm
Mith0304. (2015). CorrelEstimator (Computer software). GitHub. URL: https://github.com/Mith0304/CorrelEstimator
Rayhan, M., Al, A., Md Nurnabe Sagor, Pranto Das, Md. Sabbir Ahmed, Abu Sadat, Abdul Hafiz Tamim, Emon, S., Asad, M. A., & Alam, M. K. (2025). An Open-Source Framework for Advanced Correlation Analysis: The KARL Lab Correlation Tool (Pro Edition). Zenodo. https://doi.org/10.5281/zenodo.17088075
Ruegg, C. (2025). Math.NET Numerics (Source code). GitHub. URL: https://github.com/mathnet/mathnet-numerics
Schober, P., & Vetter, T. R. (2020). Correlation analysis in medical research. Anesthesia & Analgesia, 130(2), 332. https://doi.org/10.1213/ANE.0000000000004578
Senthilnathan, S. (2019). Usefulness of correlation analysis. Available at SSRN 3416918. http://doi.org/10.2139/ssrn.3416918
StatisticFormula.Correlation (2025). URL: https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.datavisualization.charting.statisticformula.correlation?view=netframework-4.8.1
Vallat, R. (2018). Pingouin: statistics in Python. J. Open Source Softw., 3(31), 1026. http://doi.org/10.21105/joss.01026
Winter, B. (2019). Statistics for linguists: An introduction using R. Routledge. URL: https://www.jeffreyheinz.net/classes/20F/materials/readings/Bodo2020-FrontMatter.pdf
Yadav, S. (2018). Correlation analysis in biological studies. Journal of the Practice of cardiovascular sciences, 4(2), 116-121. https://doi.org/10.4103/jpcs.jpcs_31_18
Yoo, J.-Ch., & Han, T.H. (2009). Fast Normalized Cross-Correlation. Circuits, Systems, and Signal Processing, 28(6), 819-843. https://doi.org/10.1007/s00034-009-9130-7
Завантаження
Опубліковано
Як цитувати
Ліцензія
Авторське право (c) 2026 Vitalii Bazurin, Sofia Bazurina, Svitlana Kolesnyk, Valerii Kolesnyk, Nina Dulenko

Ця робота ліцензується відповідно до ліцензії Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
- Автори передають журналу право першої публікації свого рукопису на умовах ліцензії Creative Commons ("Із зазначенням авторства - Некомерційне використання - Поширення на тих же умовах") 4.0 Міжнародна (CC BY-NC-SA 4.0), котра дозволяє іншим особам вільно використовувати (читати, копіювати і роздруковувати) представлені матеріали, здійснювати пошук та посилатись на опубліковані статті, поширювати їх повний текст з будь-якою законною некомерційною метою (у тому числі, з навчальною або науковою) та обов'язковим посиланням на авторів робіт і первинну публікацію у цьому журналі.
- Опубліковані оригінальні статті в подальшому не можуть використовуватись користувачами (окрім авторів) з комерційною метою або поширюватись сторонніми організаціями-посередниками на платній основі.


Creative Commons ("Із зазначенням авторства - Некомерційне використання - Поширення на тих же умовах") 4.0 Міжнародна (CC BY-NC-SA 4.0)