在此处和此处在线查看我看到有两种方法可以在 python 中估计优势比,但结果不同。
第一种方式:
import scipy.stats as stats
import pandas as pd
df=pd.DataFrame({'c':['m','m','m','m','f','f','f','f'],'l':[1,1,1,0,0,0,0,1]})
ct=pd.crosstab(df.c,df.l)
oddsratio, pvalue = stats.fisher_exact(ct)
第二种方式:
from sklearn.linear_model import LogisticRegression
df=pd.get_dummies(df,drop_first=True)
clf = LogisticRegression()
clf.fit(df[['c_m']],df[['l']].values)
odds_ratio=np.exp(clf.coef_)
第一种方法返回优势比=9,第二种方法返回优势比=1.9。我对优势比的概念相对较新,我不确定如何使用费希尔检验和逻辑回归来获得相同的值,有什么区别以及哪种方法是在这种情况下获得优势比的正确方法。我会很感激任何提示。谢谢。