Кривая, построенная по степенному закону, не перекрывается с точками данных.Python

Программы на Python
Anonymous
Кривая, построенная по степенному закону, не перекрывается с точками данных.

Сообщение Anonymous »


Я пытался подогнать степенной закон к своим данным о распределении степеней, используя пакет степенного закона Alstott et al. Ниже приведен мой код.

импортировать networkx как nx импортировать степенной закон импортировать matplotlib.pyplot как plt g = nx.powerlaw_cluster_graph(1000, 25, 0,9) градусы = список(dict(g.grade).values()) fit = powerlaw.Fit(градусы, дискретный=True) рис, топор = plt.subplots(figsize = (10,10)) powerlaw.plot_pdf(градусы, цвет='r', маркер = 'o', linestyle='', ax=ax) #построение группированных точек данных fit.power_law.plot_pdf(color = 'darkblue', ax=ax) #построение подобранной кривой ax.set_xlabel('k', размер шрифта = 16) ax.set_ylabel('P(k)', размер шрифта = 16) ax.set_title('Степень распределения сети', размер шрифта = 20) ax.tick_params (размер метки = 12) plt.text(0.05, 0.6, f'γ = {round(fit.power_law.alpha, 2)}', Transform=plt.gca().transAxes, fontsize=20, color='darkblue') plt.text(0.05, 0.55, '$x_{min}$ = ' + f'{fit.power_law.xmin}', Transform=plt.gca().transAxes, fontsize=20, color='darkblue') plt.text(0,05, 0,50, f'KS Расстояние: {round(fit.power_law.D, 2)}', Transform=plt.gca().transAxes, fontsize=20, color='darkblue')
Изображение
Как вы видите, синяя кривая находится далеко от точек данных, разбитых на красные.

Что заставило меня почесать голову, так это то, как подобранная кривая расположена вдали от всех точек. Почему это так? Означает ли это, что подгонке нельзя доверять? Расстояние Колмогорова-Смирнова также невелико. Fit.noise_flag имеет значение false, что означает, что подгонка недействительна. Итак, что дает?

Вернуться в «Python»