studying data

문제의 본질을 꿰뚫어 해결책을 찾는 법을 공부합니다

콤퓨타 공부/통계

[통계 공부] 로지스틱 회귀분석과 상호작용

study_data study_data 2021. 9. 8. 12:02

A/B 테스팅 데이터를 다운받아 분석을 해보십시오. 독립변수는 weekend와 group을 사용하고 종속변수는 click으로 하여 로지스틱 회귀분석을 해보세요. 모형 1은 click ~ weekend + group로, 모형 2는 click ~ weekend + group + weekend:group으로 분석하세요.

abtest.xlsx
0.14MB

1. AIC와 BIC로 비교할 때 어떤 모형이 더 나은 모형입니까?

정답: 모형 2
해설: 

맞다/틀리다 둘 중에 하나로 나눠져야 정확도를 평가할 수 있습니다. 로지스틱 회귀분석은 확률을 예측하기 때문에 맞다/틀리다로 나뉘지가 않습니다. 그래서 문턱값을 기준으로 나누는 것입니다.
# 데이터 열기
df = pd.read_excel('abtest.xlsx')

# 모형1
from statsmodels.formula.api import logit

m1 = logit('click ~ weekend + group', df).fit()
m1.summary()

# 모형2
m2 = logit('click ~ weekend + group + weekend:group', df).fit()
m2.summary()

모형 1 과 모형 2를 돌려본 결과 (왼쪽: 모형1, 오른쪽: 모형2)

 

2. 모형 1과 모형 2의 정확도(accuracy)를 평가해보세요. (문턱값 0.5) 어떤 모형의 정확도가 더 높습니까?

정답: 모형 2
해설: 모형 1의 정확도는 0.6136이고 모형2의 정확도는 0.6265이므로 모형2가 더 높다.
# 모형1의 정확도
from sklearn.metrics import accuracy_score
import numpy as np

prob1 = m1.predict(df)
pred1 = np.where(prob1 > 0.5, 1, 0)
accuracy_score(df.click, pred1)     #0.6136

# 모형2의 정확도
prob2 = m2.predict(df)
pred1 = np.where(prob2 > 0.5, 1, 0)
accuracy_score(df.click, pred1)     #0.6265

 

3. 모형2의 기울기를 해석해보세요. 어떤 결론을 내릴 수 있습니까? (weekend=1이 주말)

정답: 주중에는 A안, 주말에는 B안이 더 클릭이 많이 된다
해설: weekend에 0과 1을 대입해서 해석한다

왼쪽 weekend == 0, 오른쪽 weekend == 1의 결과값