Степень закономерности распределения в Python
У меня есть некоторые данные, которые, похоже, следуют [Закону о власти] [1].
Используя пакет powerlaw Аарона Клаузета, я пытаюсь выполнить несколько тестов, чтобы подтвердить или отклонить это предположение.
Мои данные дискретны (данные подсчета слов).
Что я пробовал до сих пор
- Пакет Powerlaw
df_data - это фрейм данных pandas, содержащий мои данные. Этот фрейм данных состоит из двух столбцов: "количество" и "токен". Я заполнил это данными подсчета слов в течение ок. 1000 слов.
Сначала я пытаюсь использовать серию df_data.quantity для вызова метода соответствия powerlaw, генерируя подходящий объект:
fit = powerlaw.Fit(data=df_data.quantity, discrete=True)
Это где я столкнулся с моей первой проблемой. Запустив приведенный выше код, я получаю следующее предупреждение:
Вычисление наилучшего минимального значения для степенного закона соответствует /home/nbuser/anaconda3_501/lib/python3.6/site-packages/powerlaw.py:697: RuntimeWarning: недопустимое значение, встречающееся в true_divide (теоретическое_CDF * (1 - теоретическое_CDF))
В моих данных df_data.quantity нет нулей. Около 70% этой серии составлено из значений "1", а остальные находятся в диапазоне от 2 до 178. Существует очень мало случаев появления высоких значений (что как-то ожидается, как объясняется в [законе Ципфа][2]).
Вот гистограмма для данных:
Не уверен, что приведенное выше предупреждение имеет практическое значение для моих результатов.
Любые намеки на то, что я могу делать не так? Имеет ли это потенциальное влияние на дальнейший анализ с использованием этого подходящего объекта?