1 回答

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊
簡(jiǎn)短的回答:
在這兩種情況下,您應(yīng)該得到相同的賠率9。
默認(rèn)情況下,懲罰在 sklearn 邏輯回歸模型中為“L2”,這會(huì)扭曲系數(shù)值(正則化),因此,如果使用懲罰 ='none,您將獲得相同的匹配優(yōu)勢(shì)比。
所以改為
clf = LogisticRegression(penalty='none')
并計(jì)算odds_ratio
長(zhǎng)答案:
在第一種情況下,奇數(shù)比是先前的比值比,由偶然性/交叉制表制成,計(jì)算如下圖所示
df 的列聯(lián)表將是
l 0 1
c
f 3 1
m 1 3
比值比 = f 的幾率為 0 / m 的幾率為 0
f 的幾率為 0 = P(f=0)/P(f=1) = (3/4) / (1/4)
m 的幾率為 0 = P(m=0)/P(m=1) = (1/4) / (3/4)
比值比 = ((3/4)/(1/4)) / (1/4)/(3/4)) = 9
在第二種情況下,您通過擬合邏輯回歸模型獲得優(yōu)勢(shì)比的估計(jì)值。如果您使用懲罰=“無”,您將獲得賠率比= 9。默認(rèn)情況下,邏輯遞歸估計(jì)器中的懲罰為“L2”。
from sklearn.linear_model import LogisticRegression
df=pd.get_dummies(df,drop_first=True)
clf = LogisticRegression(penalty='none')
clf.fit(df[['c_m']],df[['l']].values)
odds_ratio=np.exp(clf.coef_)
print(odd_ratio)
array([[9.0004094]])
您還可以通過另一種方法獲得優(yōu)勢(shì)比,這也會(huì)產(chǎn)生相同的優(yōu)勢(shì)比???/p>
#Method 2:
odds_of_yis_1_for_female = np.exp(clf.intercept_+clf.coef_*1) #logit for female
odds_of_yis_1_for_male = np.exp(clf.intercept_+clf.coef_*0) # logit for male
odds_ratio_2 = odds_of_yis_1_for_female/odds_of_yis_1_for_male
print(odds_ratio_2)
[[9.0004094]]
要了解為什么這兩種方法相同,請(qǐng)參閱此處
添加回答
舉報(bào)