Python:使用statsmodel找到logit回归模型的拐点

时间:2015-10-13 17:03:30

标签: python statistics

我在Python中使用statsmodel:

import statsmodels.formula.api as smf

我有一个x1值和d值的数据帧。 d列是我的因变量。我绘制d vs x1并得到:

enter image description here

现在,我使用statsmodel拟合了一个logit回归模型:

logit_mod = smf.logit('d ~ x1', data = df).fit()
print
print(logit_mod.summary())
logithat = logit_mod.predict(df)

plt.plot(df['x1'], logithat, 'o')
plt.scatter(df['x1'], df['d'], color='orange')

结果如下:

enter image description here

如何获得该logit曲线的拐点值?

谢谢!

1 个答案:

答案 0 :(得分:0)

import pandas as pds
df1  = pds.DataFrame({'lgt' : logithat,'x':x1}).set_index('x')
grid = np.linspace(df1.index.min(),df1.index.max(),df1.shape[0]+1)
df2 = pds.DataFrame({'grid':grid}).reset_index().set_index('grid')
df2 = pds.concat([df1,df2],join='outer',axis=1)
df2['lgt_'] = df2['lgt'].interpolate()


inflexion       = df2['lgt_'].diff().argmax()

fig = plt.figure()
ax = fig.add_subplot(111)
df2['lgt_'].plot(ax=ax)
ax.vlines(inflexion,df2['lgt_'].min(),df2['lgt_'].ix[inflexion])