다중회귀
안녕하세요 😊
3유형을 잡고자 놀이터 문제 다 풀이하고 추가적으로 문제집 풀이 시작했는데
다중 선형 회귀랑 다중 회귀 모형이 다른 거 일까요?? 문제집에 있는 거 풀이하다가 답이 달라서 한번 강사 님께서 올려주신 문제로 문제집에 있는 풀이 방법이랑 강사 님께서 해주신 풀이 방법으로 각각 해보니 서로 다른 답이 나오네요.. sm.OLS랑 formula.api.ols 차이를 알고 싶습니다!
#데이터
import pandas as pd
df = pd.DataFrame({
'매출액': [300, 320, 250, 360, 315, 328, 310, 335, 326, 280,
290, 300, 315, 328, 310, 335, 300, 400, 500, 600],
'광고비': [70, 75, 30, 80, 72, 77, 70, 82, 70, 80,
68, 90, 72, 77, 70, 82, 40, 20, 75, 80],
'플랫폼': [15, 16, 14, 20, 19, 17, 16, 19, 15, 20,
14, 5, 16, 17, 16, 14, 30, 40, 10, 50],
'투자':[100, 0, 200, 0, 10, 0, 5, 0, 20, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
})
df.head(3)
# 풀이 1
from statsmodels.formula.api import ols
model1 = ols('매출액 ~ 광고비 + 플랫폼', data=df).fit()
print(model1.summary())
#풀이2(문제집)
import statsmodels.api as sm
X=df[['광고비','플랫폼']]
y=df[['매출액']]
model2 = sm.OLS(y,X).fit()
print(model2.summary())
답변 1
1
저도 그렇고 콘텐츠에 오류는 있을 수 있고, 문제집을 헐뜯을 생각은 전혀 없으니 오해 없으시기 바랍니다.
이 풀이는 문제가 있어요. OLS 함수는 상수항을 자동으로 처리하지 않아 수동으로 더해야 합니다.
아래와 같이요!!
강의를 만들기 위해 비교분석을 많이 했습니다. R과 동일한 값인지 동일하지 않다면 출제 가능성을 낮게 생각하고 있어요! OLS를 사용한다면 상수항을 추가하는 것이 R과 정답이 같습니다.
제가 작업형3에서 R스타일을 사용하는 이유도 상수항 추가의 번거로움을 없애기 위함이에요!
import statsmodels.api as sm
X = df[['광고비', '플랫폼']]
X = sm.add_constant(X) # 상수항 추가
y = df['매출액']
model2 = sm.OLS(y, X).fit()
print(model2.summary())
1
상수항 관련 문구가 있을리는 없어요 !!
문제는 동일하고
ols로 푸는 방식과 OLS로 푸는 방식이 있어요
단, OLS는 상수항을 수동으로 작성해야 합니다.🙂
어떤 풀이를 사용해도 됩니다.
원핫인코딩과 레이블 인코딩에서 concat
0
2
1
제2유형 질문입니다.
0
19
2
C()
0
15
2
작업형 2에서 strafity 적용 유무
0
21
2
수강 기간 연장 가능 여부 문의드립니다.
0
17
1
ols
0
20
2
2유형 작성관련 질문(일반 심화)
0
21
2
2유형 작성관련 질문
0
18
2
2유형 object컬럼 개수 다르면
0
20
2
코딩팡질문이요ㅠㅠ
0
22
2
관찰값과 기대값의 개념이 헷갈립니다.
0
13
2
작업형2 ID 컬럼 삭제 질문
0
23
2
2유형 작성관련 질문
0
20
2
memoryerror 질문
0
18
2
작업형 유형2 이렇게 고정 템플릿으로 가져가도 될까요?
0
21
1
ID 삭제 필수 인가요?
0
19
3
7회 기출문제 작업형1번 df 변환 후 저장되는 방식 질문
0
16
2
3 유형 귀무가설, 대립가설
0
20
2
인코딩 관련 질문 있습니다
0
23
2
작업형3 이원분산분석 sm에서불러오기 / anova_lm 차이
0
27
2
2유형 원핫인코딩 오류
0
23
2
시험장에서 주석 단축키 안될 때 많나요?
0
29
2
라벨인코딩 방식
0
29
2
test 재학습 관련
0
16
2





