빅데이터 분석기사/실기 요약

[빅데이터분석기사/실기] 제3유형. 통계분석 이론 - 가설검정, 범주형/수치형 데이터 분석

✨️데이터분석가✨️ 2025. 6. 8. 17:21
728x90
728x90

제3유형통계 분석에 대한 문제를 풀고 답안을 제출하는 유형이며, 총 2문제가 출제됩니다.

통계 비전공자에게는 굉장히 난이도가 높은 유형이라,

자주 출제되는 분석 기법들을 중점적으로 학습하여 1문제를 확보하는 전략으로 가는 것이 효과적일 것 같습니다.

 

시험에 자주 출제되는 유형인 '가설검정', '범주형 데이터 분석'(카이제곱 검정, 적합도 검정, 독립성 검정, 동질성 검정), '수치형 데이터 분석'(상관관계, 회귀분석, 분산분석), '오즈비', 'GLM'에 대해 확인해 볼까요?

구분 문항 수 답안 제출 점수
제1유형 3문항 전처리 결과 제출 30점
제2유형 1문항 CSV 코드 제출 40점
제3유형 2문항 답안 제출 30점
합계 6문항 - 100점

 

 

 


1. 가설검정

모집단 : 전체 집단
표본
: 모집단의 일부 (샘플)

귀무가설(H0)
: 기존가설, 효과/차이가 없음 (= 영가설)

대립가설(HJ) : 신규가설, 효과/차이가 있음

검정통계량 : 주어진 데이터와 귀무가설 간의 차이를 통계적으로 나타낸 값
p-value : 유의수준(0.05)보다 작으면 귀무가설 기각 (= 대립가설 채택)

단일표본검정 : 모집단 1개, 한 그룹 (예, 과자무게가 200g인지 검정)

- 정규성(shapiro) 검정 → (Y) 단일 표본 검정 / (N) 비모수 검정 - Wilcoxon의 부호 순위 검정
대응표본검정 : 모집단 2개(동일 집단), 같은 그룹(전후 비교) (예, 신약의 효과 검정)
- 정규성(shapiro) 검정 → (Y) 대응 표본 검정 / (N) 비모수 검정 - Wilcoxon의 부호 순위 검정
독립표본검정 : 모집단 2개, 다른 그룹 (예, 1,2반의 성적 차이 검정)
- 정규성(shapiro) 검정 → (Y) 등분산 검정 / (N) 비모수 검정 - Mann-Whitney U 검정(중앙값 차이 검정)
                            → (Y) 등분산 검정 → (Y) 독립 표본 검정 / (N) 독립 표본 검정(Welch의 t-검정, 두 모집단 분산은 동일하지 않음)

 

1) 단일표본검정

문1-1) 다음은 원두 무게가 120g이 맞는지 확인하기 위해 30개 샘플을 측정한 결과이다.

이 결과를 바탕으로 120g이 사실인지 검정하시오. (데이터는 정규분포를 따름)
- 귀무가설(H0): μ=μ0, 원두의 평균 무게는 120g 이다.
- 대립가설(H1): μ≠μ0, 원두의 평균 무게는 120g이 아니다. (양측 검정)

TtestResult(statistic=2.153709967150663, pvalue=0.03970987897788578, df=29)

 

 

문1-2) 단측 검정

TtestResult(statistic=2.153709967150663, pvalue=0.01985493948894289, df=29)
TtestResult(statistic=2.153709967150663, pvalue=0.9801450605110571, df=29)

 

 

문1-3) 정규분포를 따르지 않는 데이터

ShapiroResult(statistic=0.35728970196526855, pvalue=2.2139240997414947e-10)
WilcoxonResult(statistic=341.0, pvalue=0.9882949283346534)

 

 

 

 

2) 대응표본검정

문2-1) 다음은 새로운 프로그램 도입 전/후의 점수이다. 효과가 있는지 검정하시오. (데이터는 정규분포를 따름)
- 귀무가설(H0): μd≥0, 새로운 교육 프로그램은 효과가 없다. / μd=(사전-사후)의 평균
- 대립가설(H1): μd<0, 새로운 교육 프로그램은 효과가 있다.

TtestResult(statistic=-2.119860886666164, pvalue=0.03152591671694539, df=9)

 

 

문2-2) 정규분포를 따르지 않는 데이터

 
ShapiroResult(statistic=0.8106808132606462, pvalue=0.019542902973577702)
WilcoxonResult(statistic=47.5, pvalue=0.0244140625)
WilcoxonResult(statistic=47.5, pvalue=0.0244140625)

 

 

 

3) 독립표본검정

문3-1) 다음은 실기 시험 점수이다. A/B그룹 간의 평균 점수가 차이가 있는지 유의수준 0.05에서 검정하시오.

(데이터는 정규분포를 따르고, 분산이 동일하다고 가정함)
- 귀무가설(H0): μA=μB, 그룹별 시험 평균 점수는 차이가 없다.
- 대립가설(H1): μA≠μB, 그룹별 시험 평균 점수는 차이가 있다.

TtestResult(statistic=-2.051813915505951, pvalue=0.04964542271174967, df=28.0)

 

 

문3-2) 두 집단의 분산이 다른 데이터

TtestResult(statistic=-2.1837307810153024, pvalue=0.04352730399590312, df=16.729279968729678)

 

 

문3-3) 단측 검정

TtestResult(statistic=-2.051813915505951, pvalue=0.024822711355874834, df=28.0)
TtestResult(statistic=-2.051813915505951, pvalue=0.9751772886441252, df=28.0)

 

 

문3-4) 정규성 검정 / 비모수 검정

 
ShapiroResult(statistic=0.8128696504554708, pvalue=0.00405770158688692)
ShapiroResult(statistic=0.9610027583368682, pvalue=0.739578582064332)
MannwhitneyuResult(statistic=106.0, pvalue=0.40944636368515097)

 

 

문3-5) 등분산 검정 (두 집단 모두 정규성 검정을 만족할 경우에 사용)

LeveneResult(statistic=8.013957643762076, pvalue=0.008497116974003)

 

 

 


2. 범주형 데이터 분석

카이제곱 검정

적합도 검정
- 관찰도수(실제 측정값)와 기대도수(예상 평균값)의 차이

- scipy.stats.chisquare (관찰된 빈도 리스트, 기대 빈도 리스트)

독립성 검정
- 두 변수가 서로 독립적인지 확인 (교차표 형태로 만들기)
- scipy.stats.chi2_contingency (교차표, correction(연속성 보정)=True)

동질성 검정

- 두 개 이상의 집단에서 동질성을 갖는지 확인 (= 검정방법은 독립성과 같음)

 

1) 적합도 검정

문1-1) 지난 3년간 시험 점수 분포는 60점 미만 50%, 60~79점 35%, 80점 이상 15% 였다.
새로운 유형으로 출제한 300명의 시험 점수는 60점 미만 150명, 60~79점 120명, 80점 이상 30명이었다.
유의수준 0.5일 때, 새로운 유형과 기존 유형은 점수에 차이가 없는지 검정하시오.
- 귀무가설(H0): 새로운 유형과 기존 유형의 점수는 동일하다.
- 대립가설(H1): 새로운 유형과 기존 유형의 점수는 동일하지 않다.

 
Power_divergenceResult(statistic=7.142857142857142, pvalue=0.028115659748972056)

 

 

 

2) 독립성 검정

문2-1) 언어 선택에 따라 합격 여부를 조사한 결과이며, 언어와 합격 여부가 독립적인지 가설검정을 실시하시오. (유의수준 0.05)
R: 합격 80명, 불합격 20명 / Python: 합격 90명, 불합격 10명
- 귀무가설(H0): 언어와 합격 여부는 독립적이다.
- 대립가설(H1): 언어와 합격 여부는 독립적이지 않다.

Chi2ContingencyResult(statistic=3.1764705882352944, pvalue=0.07470593331213068, dof=1, expected_freq=array([[85., 15.],
       [85., 15.]]))

 

# 교차표 테이블 (리스트 형태)
df = [[80, 20], [90, 10]]
from scipy import stats
stats.chi2_contingency(df)

 

# 교차표 테이블 (로우 데이터 형태)
import pandas as pd
data = {
    '언어': ['R']*100 + ['Python']*100,
    '합격여부': ['합격']*80 + ['불합격']*20 + ['합격']*90 + ['불합격']*10
}
df = pd.DataFrame(data)
print(df.sample(10))
df = pd.crosstab(df['언어'], df['합격여부'])
print(df)
from scipy import stats
stats.chi2_contingency(df)

 

 

 


3. 수치형 데이터 분석

상관관계 : 두 변수 간의 선형 관계
- 상관계수, -1(강한 음의 선형관계) ≤ r ≤ 1(강한 양의 선형관계)
- df.corr() 피어슨 / df.corr(method='spearman') 스피어맨 / df.corr(method='kendall) 켄달타우
- 귀무가설: 두 변수 간에 상관관계가 없다 / 대립가설: 두 변수 간에 상관관계가 있다
- stats.pearsonr(x,y) 피어슨 / stats.spearmanr(x,y) 스피어맨 / stats.kendalltau(x,y) 켄달타우

회귀분석
1) 단순 선형 회귀분석 : 독립변수 1개
- 최소제곱법(OLS) : 잔차들의 제곱합, ols('종속변수명 ~ 독립변수명', data=df).fit() / 잔차=실제값-예측값
- model.summary() 회귀모델 통계적 요약
- model.predict() 예측값
- model.get_prediction() 예측값 및 예측값에 대한 신뢰구간/예측구간
2) 다중 선형 회귀분석 : 독립변수 2개 이상
- ols('종속변수명 ~ 독립변수명1+독립변수명2...', data=df).fit()
- 범주형 변수는 원핫인코딩 처리, pd.get_dummies(drop_first=True)

분산분석(ANOVA) : 3개 이상의 집단 간의 평균 차이를 통계적으로 유의한지 검정
1) 일원 분산분석(One-way) : 하나의 요인, 3개 이상의 집단
- 독립성, 정규성(샤피로 검정), 등분산성(모든 집단은 동일한 분산을 가짐, 레빈 검정)을 만족
- 귀무가설: 모든 집단의 평균은 같다 / 대립가설: 적어도 한 집단의 평균은 다르다
- 3개 이상의 독립 표본 → (Y) 정규성 검정 → (Y) 등분산 검정 → (Y) 일원 분산분석 → (사후) Tukey HSD, Bonferroni
                                   → (N) Kruskal-Walls
- 사이파이 f_oneway(샘플1, 샘플2, ...) / 스테츠모델즈 anova_lm(ols('종속변수~요인', data=df).fit())
2) 이원 분산분석(Two-way) : 두 개의 요인, 3개 이상의 집단
- 독립성, 정규성(샤피로 검정), 등분산성(모든 집단은 동일한 분산을 가짐, 레빈 검정)을 만족
- 귀무가설: 모든 그룹의 첫 번째 요인의 평균은 동일하다 / 대립가설: 적어도 두 그룹은 첫 번째 요인의 평균은 다르다
- 귀무가설: 두 요인의 그룹 간에 상호작용은 없다 / 대립가설: 두 요인의 그룹 간에 상호작용은 있다
- 3개 이상의 독립 표본 → (Y) 정규성 검정 → (Y) 등분산 검정 → (Y) 이원 분산분석 → (사후) Tukey HSD, Bonferroni
- 스테츠모델즈 anova_lm(ols('종속변수~C(요인1)*C(요인2)', data=df).fit())

 

1) 상관관계

문1-1) 키와 몸무게의 상관계수를 구하시오.

           키      몸무게
키    1.00000  0.91139
몸무게  0.91139  1.00000
0.9113904891835424
       키  몸무게
키    1.0  0.9
몸무게  0.9  1.0

 

 

문1-2) 키와 몸무게의 상관계수에 대한 t검정

 
PearsonRResult(statistic=0.9113904891835424, pvalue=0.031238931097958774)
SignificanceResult(statistic=0.8999999999999998, pvalue=0.03738607346849874)

 

 

 

2) 단순 선형 회귀분석

문2-1) 키(종속변수)와 몸무게(독립변수) 데이터로 회귀모델을 구축하고, 각 문제의 값을 구하시오.

                            OLS Regression Results                            
==============================================================================
Dep. Variable:                      키   R-squared:                       0.280
Model:                            OLS   Adj. R-squared:                  0.240
Method:                 Least Squares   F-statistic:                     6.984
Date:                Wed, 23 Oct 2024   Prob (F-statistic):             0.0165
Time:                        14:25:43   Log-Likelihood:                -64.701
No. Observations:                  20   AIC:                             133.4
Df Residuals:                      18   BIC:                             135.4
Df Model:                           1                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
Intercept    135.8209     11.211     12.115      0.000     112.268     159.374
몸무게            0.4938      0.187      2.643      0.017       0.101       0.886
==============================================================================
Omnibus:                       26.498   Durbin-Watson:                   1.317
Prob(Omnibus):                  0.000   Jarque-Bera (JB):               46.624
Skew:                          -2.181   Prob(JB):                     7.51e-11
Kurtosis:                       9.076   Cond. No.                         464.
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

 

print(model.rsquared) # 결정계수 0.28
print(model.params['몸무게']) # 기울기(회귀계수) 0.4938
print(model.params['Intercept']) # 절편(회귀계수) 135.8209
print(model.pvalues['몸무게']) # pvalue(몸무게의 회귀계수가 통계적으로 유의한지) 0.017
# 신뢰구간 0.101  0.886
print(model.predict(pd.DataFrame({'몸무게':[50]}))) # 예측값(몸무게가 50일 때 예측키) 160.5
pred = model.get_prediction(pd.DataFrame({'몸무게':[50]}))
print(pred.summary_frame(alpha=0.05)) # 예측값에 대한 신뢰구간 155 ~ 165 / 예측구간 146 ~ 174
0.27954323113299584
0.49376558603491283
135.8209476309227
0.01654013445316978
0    160.509227
dtype: float64
                  mean               mean_se          mean_ci_lower       mean_ci_upper           obs_ci_lower           obs_ci_upper
160.509227 2.291332 155.695318 165.323136 146.068566 174.949888
 
755.9032418952607
37.79516209476303
37.79516209476303

 

 

 

3-1) 다중 선형 회귀분석

문3-1) 매출액(종속변수), 광고비/플랫폼(독립변수) 데이터로 회귀모델을 구축하고, 각 문제의 값을 구하시오.

   매출액  광고비  플랫폼   투자
0  300   70   15  100
1  320   75   16    0
2  250   30   14  200
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                    매출액   R-squared:                       0.512
Model:                            OLS   Adj. R-squared:                  0.454
Method:                 Least Squares   F-statistic:                     8.907
Date:                Wed, 23 Oct 2024   Prob (F-statistic):            0.00226
Time:                        14:51:21   Log-Likelihood:                -108.22
No. Observations:                  20   AIC:                             222.4
Df Residuals:                      17   BIC:                             225.4
Df Model:                           2                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
Intercept    101.0239     71.716      1.409      0.177     -50.284     252.331
광고비            1.8194      0.807      2.255      0.038       0.117       3.522
플랫폼            5.9288      1.430      4.147      0.001       2.912       8.945
==============================================================================
Omnibus:                       30.534   Durbin-Watson:                   1.354
Prob(Omnibus):                  0.000   Jarque-Bera (JB):               64.655
Skew:                           2.444   Prob(JB):                     9.13e-15
Kurtosis:                      10.327   Cond. No.                         401.
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

 

 
0.5116964327009041
1.8194269419344642
5.928755546950749
101.02387228241548
0.03764350647695994
0.0006746810554564365
0    310.57033
dtype: float64
                   0           1
Intercept -50.283684  252.331429
광고비         0.116785    3.522069
플랫폼         2.912406    8.945105
        mean    mean_se  mean_ci_lower  mean_ci_upper  obs_ci_lower  \
0  310.57033  19.887098     268.612221      352.52844    179.700104   

   obs_ci_upper  
0    441.440556  

 

 
58686.17827156107
2934.3089135780533

 

 

 

3-2) 다중 선형 회귀분석 (범주형 변수)

                            OLS Regression Results                            
==============================================================================
Dep. Variable:                    매출액   R-squared:                       0.720
Model:                            OLS   Adj. R-squared:                  0.667
Method:                 Least Squares   F-statistic:                     13.70
Date:                Wed, 23 Oct 2024   Prob (F-statistic):           0.000110
Time:                        15:06:35   Log-Likelihood:                -102.67
No. Observations:                  20   AIC:                             213.3
Df Residuals:                      16   BIC:                             217.3
Df Model:                           3                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
Intercept    400.6463     47.477      8.439      0.000     300.000     501.292
유형[T.B]     -160.2695     26.756     -5.990      0.000    -216.991    -103.548
유형[T.C]     -180.1103     40.883     -4.406      0.000    -266.778     -93.443
광고비            1.0095      0.652      1.548      0.141      -0.373       2.392
==============================================================================
Omnibus:                        9.726   Durbin-Watson:                   1.496
Prob(Omnibus):                  0.008   Jarque-Bera (JB):               16.186
Skew:                          -0.147   Prob(JB):                     0.000306
Kurtosis:                       7.397   Cond. No.                         382.
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

 

 

 

4) 일원 분산분석

문4-1) 학생 40명을 무작위로 4개(A, B, C, D) 그룹으로 나누고, 다른 교육 방법을 적용했다.
학점 결과가 교육 방법에 따른 차이가 있는지 유의수준 0.05에서 검정하시오.
- 귀무가설(H0): 4가지 교육 방법에 의한 학생들의 학점 평균은 동일하다.
- 대립가설(H1): 적어도 두 그룹의 학점 평균은 다르다.

ShapiroResult(statistic=0.9498823422157768, pvalue=0.667108682193412)
ShapiroResult(statistic=0.9346447100990081, pvalue=0.495096931740429)
ShapiroResult(statistic=0.9871342658078467, pvalue=0.9919546177620264)
ShapiroResult(statistic=0.9752339025839639, pvalue=0.9346854448707619)
LeveneResult(statistic=1.5433829973707245, pvalue=0.22000894224209636)
F_onewayResult(statistic=7.2969837587007, pvalue=0.0006053225519892207)

 

# 스테츠모델즈
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm
model = ols('value ~ variable', data=df_melt).fit()
anova_lm(model)

 

Multiple Comparison of Means - Tukey HSD, FWER=0.05 
====================================================
group1 group2 meandiff p-adj   lower   upper  reject
----------------------------------------------------
     A      B     0.41 0.0397  0.0146  0.8054   True
     A      C     0.09 0.9273 -0.3054  0.4854  False
     A      D    -0.27 0.2722 -0.6654  0.1254  False
     B      C    -0.32 0.1483 -0.7154  0.0754  False
     B      D    -0.68 0.0003 -1.0754 -0.2846   True
     C      D    -0.36 0.0852 -0.7554  0.0354  False
----------------------------------------------------
Test Multiple Comparison ttest_ind 
FWER=0.05 method=bonf
alphacSidak=0.01, alphacBonf=0.008
=============================================
group1 group2   stat   pval  pval_corr reject
---------------------------------------------
     A      B -2.7199  0.014    0.0843  False
     A      C  -0.515 0.6128       1.0  False
     A      D  1.7538 0.0965    0.5788  False
     B      C  2.2975 0.0338    0.2028  False
     B      D  6.0686    0.0    0.0001   True
     C      D  2.5219 0.0213    0.1279  False
---------------------------------------------

 

 

문4-2) 비모수 검정

 
ShapiroResult(statistic=0.9498823422157767, pvalue=0.6671086821934112)
ShapiroResult(statistic=0.9346447100990083, pvalue=0.49509693174043135)
ShapiroResult(statistic=0.9871342658078467, pvalue=0.9919546177620264)
ShapiroResult(statistic=0.5759975003447693, pvalue=2.8656624682936833e-05)
KruskalResult(statistic=11.183607021517561, pvalue=0.010773365310213669)

 

 

 

5) 이원 분산분석

문5-1) 토마토 종자(A~D)에 대해 3가지 종류의 비료(11~13)를 사용하여 재배된 토마토 수를 조사하였다.
종자 및 비료 종류 간의 토마토 수에 차이가 있는지 유의수준 0.05에서 검정하시오. (단, 정규성, 등분산성 만족)
- (종자/비료) 귀무가설(H0): 종자/비료 간의 토마토 수에 차이가 없다.
- (종자/비료) 대립가설(H1): 적어도 하나의 종자/비료에서 토마토 수에 차이가 있다.
- (상호작용) 귀무가설(H0): 종자와 비료 간의 상호작용은 토마토 수에 영향을 미치지 않는다.
- (상호작용) 대립가설(H1): 종자와 비료 간의 상호작용은 토마토 수에 영향을 미친다.

                df       sum_sq      mean_sq          F        PR(>F)
C(종자)          3.0  4801.000000  1600.333333  18.757977  7.254117e-10
C(비료)          2.0  1140.316667   570.158333   6.682993  1.835039e-03
C(종자):C(비료)    6.0   725.350000   120.891667   1.417007  2.146636e-01
Residual     108.0  9214.000000    85.314815        NaN           NaN
0.0000000007
0.0018350390
0.2146636000

 

Multiple Comparison of Means - Tukey HSD, FWER=0.05 
====================================================
group1 group2 meandiff p-adj   lower   upper  reject
----------------------------------------------------
     A      B   5.7333 0.1106 -0.8444  12.311  False
     A      C     12.1    0.0  5.5223 18.6777   True
     A      D     16.7    0.0 10.1223 23.2777   True
     B      C   6.3667 0.0616  -0.211 12.9444  False
     B      D  10.9667 0.0002   4.389 17.5444   True
     C      D      4.6 0.2679 -1.9777 11.1777  False
----------------------------------------------------
Multiple Comparison of Means - Tukey HSD, FWER=0.05 
====================================================
group1 group2 meandiff p-adj   lower   upper  reject
----------------------------------------------------
    11     12    0.175 0.9973 -5.7831  6.1331  False
    11     13    6.625 0.0254  0.6669 12.5831   True
    12     13     6.45 0.0305  0.4919 12.4081   True
----------------------------------------------------
Test Multiple Comparison ttest_ind 
FWER=0.05 method=bonf
alphacSidak=0.01, alphacBonf=0.008
=============================================
group1 group2   stat   pval  pval_corr reject
---------------------------------------------
     A      B -2.3457 0.0224    0.1346  False
     A      C -4.9096    0.0       0.0   True
     A      D -7.0162    0.0       0.0   True
     B      C -2.3944 0.0199    0.1194  False
     B      D -4.2491 0.0001    0.0005   True
     C      D -1.7691 0.0821    0.4928  False
---------------------------------------------
Test Multiple Comparison ttest_ind 
FWER=0.05 method=bonf
alphacSidak=0.02, alphacBonf=0.017
=============================================
group1 group2   stat   pval  pval_corr reject
---------------------------------------------
    11     12 -0.0691 0.9451       1.0  False
    11     13 -2.8722 0.0052    0.0157   True
    12     13  -2.411 0.0183    0.0548  False
---------------------------------------------

 

 

 


4. 오즈비

오즈(Odds) : 어떤 사건이 발생할 확률과 발생하지 않을 확률의 비율 (오즈 = 발생 확률 / 발생하지 않을 확률)
오즈비(Odds Ratio, OR) : 로지스틱 회귀분석에서 독립변수의 계수를 exp() 함수에 넣어 산출한 값 (= exp(독립변수의 계수))
                                         독립변수가 한 단위 증가할 때, 종속변수(0 또는 1)가 1(사건 발생)이 될 확률의 변화
- 오즈비 > 1 → 독립변수 값이 증가하면 → 종속변수 확률이 증가함
- 오즈비 < 1 → 독립변수 값이 증가하면 → 종속변수 확률이 감소함
  (예, 오즈비 = 2, 독립변수가 1단위 증가하면 종속변수 확률이 2배가 됨 / 형제자매가 많을수록 생존확률이 증가함)
from statsmodels.formula.api import logit
import numpy as np
model = logit("종속변수 ~ 독립변수", data=데이터).fit() # 로지스틱 회귀 모델 생성 및 학습
print(model.summary()) # 독립변수 계수 확인
오즈비 = exp(독립변수의 계수) # 오즈비 계산

 

 

 


5. GLM

선형 회귀 모델을 확장한 것
종속변수의 분포가 정규분포 외에 다른 분포(이항분포, 포아송분포 등)를 따르는 경우에도 적용할 수 있음

잔차 이탈도(Residual Deviance) 값은 glm summary에서 제공함 (logit summary에는 없음)
from statsmodels.formula.api import glm
import statsmodels.api as sm
# glm 모델 적합 (로지스틱 회귀를 위해 이항분포 사용)
formula = "종속변수 ~ 독립변수"
model = glm(formula, data=데이터, family=sm.families.Binomial()).fit()
print(model.summary()) # 잔차 이탈도 확인
# 오류율 = (잘못 분류된 샘플 수) / (전체 샘플 수)
# 오류율 = 1 - accuracy

 

 

 

 

 

728x90
728x90