[statsmodels] 통계분석

kkiyou·2021년 8월 25일
0

Data Science

목록 보기
11/11

statsmodels

다양한 통계 분석을 할 수 있는 Python 라이브러리다. R과 유사하다.

일반적으로 아래와 같은 Alias를 사용해서 import한다.
import statsmodels.api as sm
import statsmodels.formula.api as smf


OLS(Ordinary Least Squares)
statsmodels.formula.api.ols(formula, data, subset=None, drop_cols=None, *args, **kwargs)
잔차제곱합(RSS, Residual Sum of Squares)를 최소화하는 가중치 벡터를 행렬 미분을 통해 계산하는 방법이다. 즉 근사적으로 계산하려는 결과와 실제 결과의 오차의 제곱 합이 최소가 되는 지점을 구하는 방법이다.

import statsmodels.api as sm
import statsmodels.formula.api as smf
################################################

# SSL: CERTIFICATE_VERIFY_FAILED 문제 해결
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
################################################
# 예제 데이터 Load
df = sm.datasets.get_rdataset("Guerry", "HistData").data
print(df.columns)
# Index(['dept', 'Region', 'Department', 'Crime_pers', 'Crime_prop', 'Literacy', 'Donations', 'Infants', 'Suicides', 'MainCity', 'Wealth', 'Commerce', 'Clergy', 'Crime_parents', 'Infanticide', 'Donation_clergy', 'Lottery', 'Desertion', 'Instruction', 'Prostitutes', 'Distance', 'Area', 'Pop1831'], dtype='object')

# 종속변수 ~ 독립변수1 + 독립변수2 + 독립변수3 ...
print(smf.ols("Lottery ~ Literacy", data=df).fit().summary())
                            OLS Regression Results                            
==================================================================
Dep. Variable:            Lottery   R-squared:             0.133
Model:                        OLS   Adj. R-squared:        0.123
Method:             Least Squares   F-statistic:           12.89
Date:            Wed, 25 Aug 2021   Prob (F-statistic): 0.000555
Time:                    20:21:36   Log-Likelihood:      -392.11
No. Observations:              86   AIC:                   788.2
Df Residuals:                  84   BIC:                   793.1
Df Model:                       1                               
Covariance Type:        nonrobust                               
==================================================================
             coef   std err     t        P>|t|  [0.025  0.975]
------------------------------------------------------------------
Intercept 64.0896    6.265   10.230      0.000  51.631  76.548
Literacy  -0.5245    0.146   -3.590      0.001  -0.815  -0.234
==================================================================
Omnibus:             8.096   Durbin-Watson:           1.946
Prob(Omnibus):       0.017   Jarque-Bera (JB):        3.090
Skew:                0.072   Prob(JB):                0.213
Kurtosis:            2.083   Cond. No.                 107.
==================================================================
  • Dep. Variable
    Dependent variable, 종속변수

  • Model
    모델링 방법

  • No. Observations
    Number of observations, (총)관찰표본 수

  • Df Residuals
    Degree of Freedom(자유도) Residuals(잔차), 전체 표본개수에서 독립변수와 종속변수의 개수를 뺀 것

  • Df Model
    독립변수의 개수

  • R-squared
    결정계수, 모형의 설명력

  • Adj. R-squared
    독립변수가 여러 개일 때 다중회귀분석에서 독립변수의 개수와 표본의 크기를 고려하여 R-squared를 보정한 값

  • F-statistic
    F 통계량, MSR / MSE

  • Prob (F-statistic)
    P-value(Probability value), 유의확률

  • Intercept coef
    Intercept coefficient, 회귀식의 절편

  • Literacy coef
    독립변수의 coefficient(회귀 계수) = 기울기

종속변수(Lottery) = -0.5245 * 독립변수(Literacy coef) + 64.0896(절편, Intercept coef)

  • P>|t|
    독립변수의 유의확률

  • Durbin-Watson
    잔차의 독립성을 확인하는 수치


참고자료 1 참고자료 2 참고자료 3 참고자료 4

0개의 댓글