我在Python中使用statsmodel:
import statsmodels.formula.api as smf
我有一个x1值和d值的数据帧。 d列是我的因变量。我绘制d vs x1并得到:
现在,我使用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')
结果如下:
如何获得该logit曲线的拐点值?
谢谢!
答案 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])