본문 바로가기
빅데이터분석기사

[3유형] 회귀 분석

by 구루미94 2024. 11. 28.

[3유형 목차]

더보기

1. 가설검정

① 가설검정

② 단일표본검정

③ 대응표본검정

④ 독립표본검정

2. 범주형 데이터 분석

① 카이제곱 검정

② 적합도 검정

③ 독립성 검정

3. 회귀 분석

① 회귀 분석

② 상관관계

③ 단순선형회귀

④ 다중선형회귀

4. 분산분석

① 분산 분석

 일원 분산 분석

③ 이원 분산 분석

1. 회귀분석

2. 상관관계

① 기본

df.corr() # 피어슨
df.corr(method = 'spearman') # 스피어맨
df.corr(method = 'kendall') # 켄달타우

② t검정 (p-val < 유의수준: 상관관계가 있다)

from scipy import stats

stats.pearsonr(df['열이름1'], df['열이름2']) # 피어슨
stats.spearmanr(df['열이름1'], df['열이름2']) # 스피어맨
stats.kendalltau(df['열이름1'], df['열이름2']) # 켄달타우

 

3. 단순선형회귀

from statsmodels.formula.api import ols

model = ols('종속변수~독립변수', data = 데이터명).fit()
model.summary()
# 결정계수: R-squared
# 회귀계수: coef
# 통계적으로 유의미한지: p-value
# 예측값 구하기
newdata = pd.DataFrame({'독립변수':[60]})
model.predict(newdata)

# 잔차제곱합
# 잔차 = 관측(실제)값 - 예측값
df['잔차'] = df['종속변수'] - model.predict(df['독립변수'])
(df['잔차'] ** 2).sum()

# MSE
(df['잔차'] ** 2).mean()

# 독립변수가 A일 때 예측값(가정: 60)에 대한 신뢰구간과 예측구간
newdata = pd.DataFrame({'독립변수':[60]})
pred = model.get_prediction(newdata)
pred.summary_frame(alpha= 0.05)

4. 다중선형회귀(수치형)

from statsmodels.formula.api import ols

model = ols('종속변수~독립변수1+독립변수2+독립변수3', data = 데이터명).fit()
model.summary()

# 회귀계수의 95% 신뢰구간
model.conf_int(alpha = 0.05)

# 독립변수가 A일 때 예측값(가정: 60)에 대한 신뢰구간과 예측구간
newdata = pd.DataFrame({'독립변수1':[60], '독립변수2':[20], '독립변수3':[40]})
pred = model.get_prediction(newdata)
pred.summary_frame(alpha= 0.05)

# pd.set_option('display.max_columns', None # 컬럼 모두 보기

5. 다중선형회귀(범주형)

① 원핫인코딩

df = pd.get_dummies(df, drop_first=True)

② 다중선형회귀

from statsmodels.formula.api import ols

model = ols('종속변수~독립변수1+독립변수2+독립변수3', data = 데이터명).fit()
model.summary()
728x90

'빅데이터분석기사' 카테고리의 다른 글

[3유형] 가설검정  (0) 2024.11.27
[1유형] 구름 모의 환경 정답  (0) 2024.11.18
[2유형] 분류 및 회귀  (0) 2024.11.11

댓글