从Statsmodels预测模型倒数(1 / x)函数

时间:2019-03-19 17:57:34

标签: python dataframe model data-science prediction

现在我已经为此动了2天,似乎找不到基于互易函数的任何预测模型。 我想做的是基于来自我的熊猫数据框的数据的预测模型。我尝试过的标准测试(例如:线性回归)返回的结果非常差,因此我对数据进行了绘图,发现这是因为数据具有(1 / x)关系,而不是线性相关。

#Create a prediction model:
result = smf.ols(data = temp2, formula = "n_guns_involved ~ injured_killed").fit()
result.summary()

Console Output for 'result'

#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()

Console output for 'result2'

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')

enter image description here

作为参考,上面的紫色线是我刚刚绘制到同一张图上的倒数函数(1 / x)-正如您所看到的,需要对其进行调整以适合数据,但是很遗憾,我无法做到这一点所以。 红线是“ Linear”线,“ Green”线是我尝试的倒数功能(通过上面代码段中的result2)。

也请注意,我尝试使用X **(-1),但是当然失败了。

任何人和所有帮助都将不胜感激-谢谢!

0 个答案:

没有答案