Нормализация данных гистограммы без базовых данных - PullRequest
0 голосов
/ 23 марта 2020

Я ищу статистически обоснованный способ нормализации данных гистограммы, чтобы сумма каждой точки была равна 1 и прошла тест Колмогорова-Смирнова для 2 выборок с использованием python.

Данные, которые у меня есть, эквивалентны использованию numpy .histogram () в данных образца, но у меня нет доступа к данным образца.

Сейчас я просто применяю что-то вроде:

norm_x = x i / sum (x)

Это дает мне массив, который суммирует 1, но терпит неудачу scipi.stats.ks_2samp (x, norm_x), потому что пропорция "вероятностей" не поддерживается.

Я смотрел на использование скейлеров Scikitlearn (MinMaxScaler, RobustScaler, Normalizer и т. Д. c ...), но, похоже, они требуют исходных данных, а не массива точек, к которым у меня есть доступ.

Изменить для ясности:

У меня есть таблица pandas, которая представляет данные гистограммы, аналогичные:

Counts
+-----+-------+
| Bin | Count |
+-----+-------+
| .01 |    23 |
| .02 |    48 |
| .03 |    32 |
| .04 |    62 |
| .05 |    42 |
| .06 |    15 |
| .07 |     6 |
| .08 |     0 |
| .09 |     0 |
|  .1 |     0 |
+-----+-------+

Я хочу нормализовать это так, что сумма столбца 'Count' равна 1, а тест Колмогорова-Смирнова показывает, что они получены из одного и того же распределения.

Сейчас я делаю что-то вроде:

normalized = counts.apply(lambda x: x['Count'] / x['Count'].sum())

Это не всегда дает результат, который проходит тест KS.

...