如何使用 statsmodels.formula.api logit 进行预测
how to predict using statsmodels.formula.api logit
我有以下问题。我想使用 statsmodels.formula.api
.
中的 logit
进行样本内预测
查看我的代码:
import statsmodels.formula.api as smf
model_logit = smf.logit(formula="dep ~ var1 + var2 + var3", data=model_data)
到目前为止一切都很好。但我想使用我的模型进行样本内预测:
yhat5 = model5_logit.predict(params=["dep", "var1", "var2", "var3"])
这给出了错误 ValueError: data type must provide an itemsize
。
当我尝试时:
yhat5 = model5_logit.predict(params="dep ~ var1 + var2 + var3")
我遇到另一个错误:numpy.core._exceptions._UFuncNoLoopError: ufunc 'multiply' did not contain a loop with signature matching types (dtype('<U32'), dtype('<U69')) -> None
如何使用 from statsmodels.formula.api
对 Logit 模型进行样本内预测?
这对我没有帮助:
使用示例数据集:
import statsmodels.formula.api as smf
import pandas as pd
import numpy as np
from sklearn.datasets import make_classification
X,y = make_classification(n_features=3,n_informative=2,n_redundant=1)
model_data = pd.DataFrame(X,columns = ['var1','var2','var3'])
model_data['dep'] = y
拟合模型(我在你的代码中没有看到):
import statsmodels.formula.api as smf
model_logit = smf.logit(formula="dep ~ var1 + var2 + var3", data=model_data)
res = model_logit.fit()
您可以获得样本内预测(概率)和预测标签:
in_sample = pd.DataFrame({'prob':res.predict()})
in_sample['pred_label'] = (in_sample['prob']>0.5).astype(int)
in_sample.head()
prob pred_label
0 0.005401 0
1 0.911056 1
2 0.990406 1
3 0.412332 0
4 0.983642 1
然后我们检查实际标签:
pd.crosstab(in_sample['pred_label'],model_data['dep'])
dep 0 1
pred_label
0 46 2
1 4 48
我有以下问题。我想使用 statsmodels.formula.api
.
logit
进行样本内预测
查看我的代码:
import statsmodels.formula.api as smf
model_logit = smf.logit(formula="dep ~ var1 + var2 + var3", data=model_data)
到目前为止一切都很好。但我想使用我的模型进行样本内预测:
yhat5 = model5_logit.predict(params=["dep", "var1", "var2", "var3"])
这给出了错误 ValueError: data type must provide an itemsize
。
当我尝试时:
yhat5 = model5_logit.predict(params="dep ~ var1 + var2 + var3")
我遇到另一个错误:numpy.core._exceptions._UFuncNoLoopError: ufunc 'multiply' did not contain a loop with signature matching types (dtype('<U32'), dtype('<U69')) -> None
如何使用 from statsmodels.formula.api
对 Logit 模型进行样本内预测?
这对我没有帮助:
使用示例数据集:
import statsmodels.formula.api as smf
import pandas as pd
import numpy as np
from sklearn.datasets import make_classification
X,y = make_classification(n_features=3,n_informative=2,n_redundant=1)
model_data = pd.DataFrame(X,columns = ['var1','var2','var3'])
model_data['dep'] = y
拟合模型(我在你的代码中没有看到):
import statsmodels.formula.api as smf
model_logit = smf.logit(formula="dep ~ var1 + var2 + var3", data=model_data)
res = model_logit.fit()
您可以获得样本内预测(概率)和预测标签:
in_sample = pd.DataFrame({'prob':res.predict()})
in_sample['pred_label'] = (in_sample['prob']>0.5).astype(int)
in_sample.head()
prob pred_label
0 0.005401 0
1 0.911056 1
2 0.990406 1
3 0.412332 0
4 0.983642 1
然后我们检查实际标签:
pd.crosstab(in_sample['pred_label'],model_data['dep'])
dep 0 1
pred_label
0 46 2
1 4 48