Dear Error.
Pandas 에서 statsmodels.formula.api 를 불러와서 다중회귀분석을 하려던 그 때 마주한 에러
import statsmodels.formula.api as smf
# statsmodels.formula.api.ols(formula, data, subset=None, drop_cols=None, *args, **kwargs)
model = smf.ols(formula='체중(5kg단위) ~ 수축기혈압 + 식전혈당(공복혈당)', data=filter_df_drop)
'식전혈당(공복혈당)' 변수와 '수축기혈압' 변수가 몸무게에 영향을 미칠 것인지 가설을 검증하기위해서
위와 같은 코드를 실행하고 아래와 같은 에러 코드를 만났다.
SyntaxError: invalid syntax. Perhaps you forgot a comma?
에러로 확인되니 에러 문구처럼 comma나 오타가 있는지 확인
statsmodels의 공식 문서에 들어가서 formula.api.ols 사용법을 확인
https://www.statsmodels.org/dev/generated/statsmodels.formula.api.ols.html#statsmodels.formula.api.ols
statsmodels.formula.api.ols(formula, data, subset=None, drop_cols=None, *args, **kwargs)
formula에 str을 넣는 방법 이외에도 object를 넣는 방법을 구글링 통해서 찾고 실행
(공식 문서) formula str or generic Formula object
target = filter_df_drop[['수축기혈압','식전혈당(공복혈당)']]
x_data = filter_df_drop[['체중(5kg단위)']]
model = smf.ols(target, x_data)
PatsyError: model is missing required outcome variables
import os
os.name
if os.name == 'posix' :
plt.rc('font', family='AppleGothic')
else :
plt.rc('font', family='Malgun Gothic')
# 마이너스 폰트 깨지는 문제 대처
plt.rc('axes', unicode_minus=False)
5. 변수명 변경 후 에러 해결
변수명의 괄호'(',')' 를 변경 후 에러 해결
model = smf.ols(formula='weight ~ bp_high + bs',data =filter_df_drop)
model = smf.ols(formula='체중 ~ 수축기혈압 + 식전혈당',data =filter_df_drop)