如何解决将Logistic回归代码应用于多个变量
我有一个看起来像这样的数据库。 Age
和Race
是分类的,分别标记为0-4和0-3。症状变量(Asymptomatic
,Fever
,Cough
)和Covid_Pos
为0/1。我还有6个症状变量,但出于本文的目的,我会将示例数据压缩为3。
ID Covid_pos Asymptomatic Fever Cough Age_Group_N RACE_GROUP_N
0 1 0 1 0 0 3
1 0 0 0 1 1 2
2 1 1 0 1 3 0
3 1 0 1 0 4 0
4 0 1 1 0 4 2
5 1 0 1 0 0 1
6 0 1 1 0 2 2
我想针对每种症状运行以下逻辑回归模型:
asy_model = smf.logit("Covid_pos ~ Asymptomatic + C(RACE_GROUP_N,Treatment(0))+ C(Age_Group_N,Treatment(0))",data = df_merged2).fit()
asy_model_odds = pd.DataFrame(np.exp(asy_model.params),columns= ['OR'])
asy_model_odds['z-value']= asy_model.pvalues
asy_model_odds[['2.5%','97.5%']] = np.exp(asy_model.conf_int())
asy_model_odds
这给了我以下输出:
然后我想对该输出进行“代码编辑”,以便以以下格式获取OR(95%CI),并为此编写了以下代码:
asy_model_odds['OR'] = round(asy_model_odds['OR'],2)
asy_model_odds['2.5%'] = round(asy_model_odds['2.5%'],2)
asy_model_odds['97.5%'] = round(asy_model_odds['97.5%'],2)
asy_model_odds["OR 95% CI"]= asy_model_odds['OR'].map(str)+' ('+asy_model_odds['2.5%'].map(str)+','+asy_model_odds['97.5%'].map(str)+')'
asy_model_oddsOR=asy_model_odds["OR 95% CI"]
asy_model_oddsOR
我的问题/疑问陈述::我希望能够获取我的每个症状变量的OR(95%CI)模型输出,而不必一遍又一遍地编写此代码每个症状(是否需要宏或函数?),例如,模型为:
fev_model = smf.logit("Covid_pos ~ Fever + C(RACE_GROUP_N,Treatment(0))"
cou_model = smf.logit("Covid_pos ~ Cough + C(RACE_GROUP_N,Treatment(0))"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。