#python #regression #scatter-plot
Вопрос:
У меня есть (не отсортированный) набор данных, показывающий это на точечной диаграмме:
и мне интересно, есть ли простой способ рассчитать несколько наклонов/подогнать разные полиномы 1-го класса, чтобы проверить, соответствует ли наклон группы 1 (оранжевый) группе 2 (синий). Я думаю о:
- выполните
for
цикл, сопоставляя различные группы данных, а затем удаляя группу из списка. - повторная сортировка данных для групп-ов, имеющих одинаковое значение для своей первой производной.
Я подозреваю, что для этого есть более простое решение. Вопрос: не могли бы вы, пожалуйста, пролить свет на простые методы для этого?
Код
Это может быть показательным примером:
e1f=[] e2f=[] teoe1=[] teoe2=[] def generate_point(x,m,n): y=m*x n np.random.normal(5,1)*0.001 return y N=2000 m1=-2 m2=-2 e1f = np.random.uniform(1e-2, 7*1e-3,N) e2f = [generate_point(i, m1 random.randint(1,10)*0.3*1e-1, random.randint(1,5)*1e-2 random.randint(5, 10) *1e-4) for i in e1f] teoe1 = np.random.uniform(1e-2, 1.5*1e-2,N) teoe2 = [generate_point(j, m2 random.randint(1,10)*0.3*1e-1, 15e-4 random.randint(1,5)*1e-2 random.randint(1,7)*1e-14) for j in teoe1] plt.figure(figsize=(12,8)) plt.locator_params(nbins=6) plt.scatter(teoe1,teoe2, s=40, alpha=0.1, marker='o') plt.grid(True, color='blue', linewidth=3, linestyle='--', alpha=0.1) plt.scatter(e1f,e2f, s=40, alpha=0.1, marker='o') plt.ticklabel_format(style='sci', axis='both', scilimits=(0,0)) plt.show()