现在我已经为此动了2天,似乎找不到基于互易函数的任何预测模型。 我想做的是基于来自我的熊猫数据框的数据的预测模型。我尝试过的标准测试(例如:线性回归)返回的结果非常差,因此我对数据进行了绘图,发现这是因为数据具有(1 / x)关系,而不是线性相关。
#Create a prediction model:
result = smf.ols(data = temp2, formula = "n_guns_involved ~ injured_killed").fit()
result.summary()
#Bad results, let's see what reciprocal function is like
result2 = smf.ols(data = temp2, formula = "n_guns_involved ~ I(1/injured_killed)").fit()
result2.summary()
ik_temp = pd.DataFrame({"injured_killed": np.arange(0,20.0,0.01)})
ik_temp['Linear_prediction'] = result.predict(ik_temp)
ik_temp['Reciprocal_prediction'] = result2.predict(ik_temp)
plt.scatter(temp2['n_guns_involved'], temp2['injured_killed'])
plt.plot(ik_temp['injured_killed'], ik_temp['Linear_prediction'], color = 'red')
plt.plot(ik_temp['injured_killed'], ik_temp['Reciprocal_prediction'], color = 'green')
作为参考,上面的紫色线是我刚刚绘制到同一张图上的倒数函数(1 / x)-正如您所看到的,需要对其进行调整以适合数据,但是很遗憾,我无法做到这一点所以。 红线是“ Linear”线,“ Green”线是我尝试的倒数功能(通过上面代码段中的result2)。
也请注意,我尝试使用X **(-1),但是当然失败了。
任何人和所有帮助都将不胜感激-谢谢!