Помимо сделанного
WbICHA разбора функций (сурового, но справедливого), накину ещё чисто реактовских поинтов:
1) функции с вычислениями выселить нахрен из компонента, передавать в них данные.
2) Пачка стейтов (average... median) - ни что иное как богомерзкие производные стейты, подлежащие перековке на useMemo, с выбросом на помойку того useEffect, в котором calculation().
3) isConnectionStarted выглядит как лишний. По крайней мере, это не стейт. Возможно, стоит его переделать в ref
4) Назначение statistic непонятно. Подозреваю, что он не нужен, так как дублирует data.length (признак наличия данных).
5) Работу с вебсокетом было бы хорошо вынести в отдельный класс с логикой. Экземпляр класса хранить, например, в ref.
6) в функции старт какая-то ересь внутри ифа