Intro to Data Science
  • Home
  • Introduction
    • Overview
    • Two Cultures
    • Causal Inference
  • Python Basics
    • Python Setup
    • NumPy & pandas
    • Data Inspection
    • Subsetting
  • EDA
    • Visualize
    • Explore
    • Wrangling
  • Linear Models
    • Model Basics
    • Implementations
    • Regression Analysis
  • ML Basics
    • Introduction
    • Regularization
    • Implementations
    • K-Nearest Neighbors
  • Classification
    • Logistic Regression
    • Generative Models
  • Trees

On this page

  • 통계 분석의 주제
    • 데이터 분석에 관한 전통적인 분류
    • 통계 분석 목표
    • 예시
  • 회귀 분석
    • Simple Regression/Correlation
      • Associations과 그 strengths 비교
    • Multiple Regression
    • Regression analysis
      • Interactions
    • Uncertainty
      • Hypothesis testing
      • t값에 대한 해석

Statistics

Mixed

Author

Sungkyun Cho

Published

November 19, 2025

Load packages
# numerical calculation & data frames
import numpy as np
import pandas as pd

# visualization
import matplotlib.pyplot as plt
import seaborn as sns
import seaborn.objects as so

# statistics
import statsmodels.api as sm

# pandas options
pd.set_option('mode.copy_on_write', True)  # pandas 2.0
pd.options.display.float_format = '{:.2f}'.format  # pd.reset_option('display.float_format')
pd.options.display.max_rows = 7  # max number of rows to display

# NumPy options
np.set_printoptions(precision = 2, suppress=True)  # suppress scientific notation

# For high resolution display
import matplotlib_inline
matplotlib_inline.backend_inline.set_matplotlib_formats("retina")

통계 분석의 주제

데이터 분석에 관한 전통적인 분류

  • 탐색적 분석 vs. 가설 검증
    exploratory vs. confirmatory

    • 탐색적 분석
      • 통찰 혹은 가설의 기초 제공
      • 끼워 맞추기? 오류에 빠지기 쉬움: spurious associations
    • 가설 검증
      • 진위의 확률을 높임
      • 탐색적 분석으로부터 온 가설은 재테스트
  • 관찰 vs. 실험 데이터
    observational vs. experimental

    • 당근과 시력?
    • 커피의 효과?
    • 남녀의 임금 차별?
    • 심리치료의 효과?
  • 표본 vs. 모집단
    sample vs. population

    • Parameter(모수), uncertainty(불확실성)
    • 내일 태양이 뜰 확률?
    • 연봉과 삶의 만족도와 관계
    • 성별과 임금과의 관계
    • 두통약의 효능: “effect size”


통계 분석 목표

  • Associations: 변수들 간의 관계/연관성을 파악
  • Strength of associations: 그 관계의 크기/강도; 예측 정확성
  • Inference: 그 관계와 크기가 모집단에서는 어떠할지 추론
    • confidence/prediction interval, p-value(가설검정)

현대적 접근에서는 모호한 모집단에 대해 추론하기보다는 표본 내의 정보만으로 일반화(generalization)을 성취하고자 함.

  • 이는 변수들 간의 관계가 특정 표본에 너무 overfit되지 않도록 하여(노이즈는 무시하고, 신호는 잡아내는 것)
  • 새로운 데이터에서도 그 관계가 유지되도록 하기 위한 것이며,
  • 이를 위해 데이터를 training set, validation set으로 나누거나, resampling과 같은 방법을 이용하여; cross validation, bootstrapping
  • 여러 샘플에 대해 모형을 테스트하는 것과 같은 효과를 얻을 수 있음
  • 전통적으로 가상의 모집단에 대해 추론하여 일반화를 성취하려는 것과 같은 맥락임

예시

닭의 울음이 태양을 솟게 하는가?

돈과 행복: 패턴 vs. 예외

  • 특정 A의 임금이 p 에서 q 로 증가할 때, 트렌드대로 움직이겠는가?
  • 특정 B의 임금이 r 에서 s 로 감소할 때, 트렌드대로 움직이겠는가?
  • 특정 C의 임금을 올려주면, 트렌드대로 움직이겠는가?

남녀 임금의 차이

  • 가령, 두 회사(위, 아래)에서 구성원들은 임금 차이를 어떻게 다르게 느끼겠는가?

 

미혼자에 대한 임금 차별 vs. 편견

  • 미혼자에 대한 임금 차별이 있는가? 차별이 의미하는 바는 무엇인가?
  • 연령을 고려한 후에도 기혼자의 임금은 미혼자보다 높은가?
  • 연령을 고려한 후/연령을 조정한 후(adjusted for age)의 차이는 얼마라고 봐야하는가?

가난, 인종, 범죄 간의 관계

Racial differences in homicide rates are poorly explained by economics

출산율은 왜 감소하는가?

분석가의 태도
  • 심리적 관성/편견 주의
  • 분석가의 책임의식
  • 두 가지 접근법(예측과 이해)는 서로 상보 관계!

회귀 분석

Simple Regression/Correlation

두 변수 간의 correlation(상관관계)는 두 변수 간의 영향관계에 대한 방향성을 전제하지 않는 반면,
회귀분석은 (보통) 한 변수가 다른 변수에 영향 미친다는 것을 전제로 하고, 그 영향의 형태와 크기를 분석.

예측변수가 한 개인 회귀분석: simple regression

  1. 두 변수 간의 관계(association)을 파악: \(Y=f(X) + \epsilon=b_0 + b_1X + \epsilon\)  (\(X\)와 \(\epsilon\)은 독립; \(X \perp\!\!\!\perp \epsilon\))
  2. 그 관계의 크기(strength)를 측정
    • \(f\)에 의해 \(X\)로 \(Y\)를 얼마나 정확히 예측할 수 있는가?
    • \(f\)에 의해 \(X\)의 변량이 \(Y\)의 변량을 얼마나 설명할 수 있는가?

Pearson’s correlation coefficient: \(r\)

Linear relationships을 측정

  • \(X\)와 \(Y\)의 선형적 연관성: [-1, 1]
  • \(X\)로부터 \(Y\)를 얼마나 정확히 예측가능한가?
  • \(X\)와 \(Y\)의 정보는 얼마나 중복(redundant)되는가?

Multiple correlation coefficient: \(R\)

Extented correlation: 예측치와 관측치의 Pearson’s correlation, \(r(Y, \widehat Y)\)

  • \(R\)을 제곱한 \(R^2\)가 설명력의 정도를 나타냄

\(r\): Pearson correlation coefficient

  • \(\displaystyle r_{XY} = \frac{1}{n}\sum_{i=1}^n z_{Xi} z_{Yi} = 1 - \frac{\sum{(z_{X_i} - z_{Y_i})^2}}{2n}\)   \(z_{X_i}, z_{Y_i}\) : 각각 standardized \(X_i, Y_i\)

\(R\): Multiple correlation coefficient

  • \(Y\) 와 \(\widehat Y\) 의 Pearson correlation 즉, Y와 회귀모형이 예측한 값의 (선형적) 상관 관계의 정도; 회귀모형의 예측의 정확성
  • 다시말하면, 예측변수들의 최적의(optimal) 선형 조합과 Y의 상관 관계의 정도.

\(R^2\): Coefficient of determination, 결정계수, 설명력

  • 선형모형에 의해 설명된 Y 변량의 비율
  • 정확히 표현하면, 예측변수들의 최적의(optimal) 선형 조합에 의해 설명된 Y 변량의 비율

  \(\displaystyle R^2 = \frac{V(\widehat{Y})}{V(Y)} = 1 - \frac{V(e)}{V(Y)}\)

Source: Applied Regression Analysis and Generalized Linear Models by John Fox

  • \(Y_i = e_i + \hat{Y_i}\)
  • \(Y_i - \overline{Y} = [\overset{\text{\large error}}{(Y_i - \hat{Y_i})} - 0] + \overset{\text{\large explained}}{(\hat{Y_i} - \overline{Y})}\)
  • \(V(Y) = V(e) + V(\widehat Y)\),   (\(e\)와 \(\hat{Y}\)의 상관 = 0)


Associations과 그 strengths 비교

카테고리 변수에 대해서도 비슷하게 생각할 수 있음.
이 경우, 두 그룹 간의 차이에 대한 효과의 크기를 말할 수 있고, \(R^2\) 이외에도 Cohen’s d로 표현할 수 있음.
예를 들어, 결혼과 삶의 만족도 간의 관계(association)와 그 강도(strength)

Important

인과 관계에 대한 섯부른 추론은 금물!
특히, 예측력이 낮은 경우; Leo Breiman의 중요 요지 중 하나

Multiple Regression

예측변수가 2개 이상인 경우: 변수들 간의 진실한 관계를 분석; 인과관계 추론을 지향함

미혼자에 대한 임금 차별이 있는가? 차별이 의미하는 바는 무엇인가?
연령을 고려한 후에도 기혼자의 임금은 미혼자보다 높은가?
여전히 높다면, 연령을 고려한 후 혹은 연령을 조정한 후(adjusted for age)의 차이는 얼마라고 봐야하는가?

연령을 고려한 임금 차이를 조사하는 방법은 무엇이 있겠는가?; 연령별로 나누어 비교?

Data from the 1985 Current Population Survey

연령을 고려한 마라톤 기록?

70세 노인과 20세 청년이 동일하게 2시간 30분의 기록을 세웠다면?

  • “나이 차이가 큰 두 사람의 기록을 비교하는 것은 공평하지 않아”
  • 나이를 감안한 마라톤 실력?
  • 다시 말하면, 나이와는 무관한/독립적인 마라톤 능력에 대해 말하고자 함
  • 이는 동일한 나이의 사람들로만 제한해서 마라톤 기록을 비교하는 것이 공평한 능력의 비교라고 말하는 것과 같은 이치임
  • 아래 그림에서 20세라면 보통 2시간 정도, 70세라면 보통 3시간 정도가 전형적인 기록이기 때문에, 이를 고려하여 기록을 조정할 수 있음;
    • 가령, 70세 노인의 기록 2.5시간은 -0.5시간(=3-2.5); 나이로는 설명/예측되지 못하는 정도
    • 20세 청년의 기록 2.5시간은 +0.5시간(=2.5-2); 나이로는 설명/예측되지 못하는 정도
남녀별 연령에 따른 평균 마라톤 기록

Source: https://doi.org/10.1186/2052-1847-6-31

Regression analysis

예측 모형 vs. 인과 모형

  • 인과적 가정없이 예측이 목적인 경우도 있으나 보통 인과적 연관성을 파악하는 것이 목적임
  • 회귀 분석은 전통적으로 “causal inference”에서 중요한 역할을 해왔으나
  • 그 한계가 파악되고 확장되어 앞서 논의한 “causal inference”의 영역이 확립되었음.

예시: 교수의 연봉(salary)이 학위를 받은 후 지난 시간(time since Ph.D.)과 출판물의 수(pubs)에 의해 어떻게 영향을 받는가?

\[salary = b_0 + b_1 \cdot time + b_2 \cdot pubs + \epsilon, ~~ \epsilon \perp\!\!\!\perp time, pubs\]

Source: Cohen, J., Cohen, P., West, S. G., & Aiken, L. S. (2003). Applied multiple regression/correlation analysis for the behavioral sciences (3rd ed.)


Data: c0301dt.csv

acad0 = pd.read_csv("data/c0301dt.csv")
acad0.head(5)
   time  pubs  salary
0     3    18   51876
1     6     3   54511
2     3     2   53425
3     8    17   61863
4     9    11   52926
from statsmodels.formula.api import ols

mod1 = ols("salary ~ time", data=acad0).fit()
mod2 = ols("salary ~ pubs", data=acad0).fit()
mod3 = ols("salary ~ time + pubs", data=acad0).fit()
Intercept   43658.59
time         1224.39
dtype: float64
Intercept   46357.45
pubs          335.53
dtype: float64
Intercept   43082.39
time          982.87
pubs          121.80
dtype: float64

세 모형을 비교하면,

Model 1: \(\widehat{salary} = \$1,224\:time + \$43,659\)
Model 2 : \(\widehat{salary} = \$336\:pubs + \$46,357\)
Model 3: \(\widehat{salary} = \$983\:time + \$122\:pubs + \$43,082\)

  • 연차(time)의 효과는 $1,224에서 $984로 낮아졌고,
  • 논문수(pubs)의 효과는 $336에서 $122로 낮아졌음.

  • 교수들의 연차와 그들이 쓴 논문 수는 깊이 연관되어 있으며 (r = 0.66), 두 변수의 redunancy가 각 변수들의 효과를 변화시킴.
  • 두 예측 변수의 산술적 합(\(b_1 \cdot time + b_2 \cdot pubs\))으로 연봉을 예측하므로 각 예측변수의 효과는 (각각 따로 예측할 때에 비해) 수정될 수 밖에 없음.
  • 수학적으로 보면, 각 예측변수의 기울기는 다른 예측변수의 값에 상관없이 일정하므로, 다른 예측변수들을 (임의의 값에) 고정시키는 효과를 가짐
  • 즉, 다른 변수와는 독립적인, 고유한 효과를 추정하게 됨

각 회귀계수를 partial regression coefficient (부분 회귀 계수) 라고 부름.

부분 회귀 계수의 첫번째 해석:

  • 만약 논문 수가 일정할 때, 예를 들어 10편의 논문을 쓴 경우만 봤을 때, 연차가 1년 늘 때마다 연봉은 $984 증가함; 평면(2차원)의 선형모형을 가정했기에 이 관계는 논문 수에 상관없음.
  • 연차가 일정할 때, 예를 들어 연차가 12년차인 경우만 봤을 때, 논문이 1편 늘 때마다 연봉은 $122 증가함; 평면(2차원)의 선형모형을 가정했기에 이 관계는 연차에 상관없음.

이는 다른 변수를 고려 (통제, controlling for) 했을 때 혹은 다른 변수의 효과를 제거 (partial out) 했을 때, 각 변수의 고유한 효과를 의미함; holding constant, controlling for, partialing out, adjusted for, residualizing

뒤집어 말하면, 연차만 고려했을때 연차가 1년 늘면 $1,224 연봉이 증가하는 효과는 연차가 늘 때 함께 늘어나는 논문 수의 효과가 함께 섞여 나온 효과라고 말할 수 있음.

이는 인과관계에 있는 변수들의 진정한 효과를 찾는 것이 얼마나 어려운지를 보여줌

부분 회귀 계수에 대한 두번째 해석

  • 다른 변수들이 partial out 된 후의 효과.
  • 실제로 $122는 “연차로 (선형적으로) 예측/설명되지 않는” 논문수(즉, 잔차)로 “연차로 예측/설명되지 않는” 연봉(즉, 잔차)을 예측할 때의 기울기; 아래 그림에서 보라색으로 예측되는 빨간색 부분

 

Direct and Indirect Effects

만약, 다음과 같은 인과모형을 세운다면,

  • 연차가 연봉에 미치는 효과가 두 경로로 나뉘어지고,
  • 연차 \(\rightarrow\) 연봉: 직접효과 $983
  • 연차 \(\rightarrow\) 논문 \(\rightarrow\) 연봉: 간접효과 1.98 x $122 = $241.56
  • 두 효과를 더하면: $983 + $241.56 = $1224.56 = 논문수를 고려하지 않았을 때 연차의 효과
    • 즉, 연차가 1년 늘때 연봉이 $1224 증가하는 것은 연차 자체의 효과($983)와 논문의 증가에 따른 효과($241)가 합쳐져 나온 결과라고 말할 수 있음.
  • 이 때, 논문 수를 통한 효과는 연차가 연봉에 미치는 하나의 기제(mechanism)이라고 볼 수 있음.

Strength of Associations

연차와 논문 수로 연봉을 예측했을 때의 \(R^2 = 0.53\)

  • 즉, 연차와 논문 수로 연봉의 변량의 53%를 설명할 수 있음
  • 혹은 \(R = r(Y, \hat{Y}) = \sqrt{0.53} = 0.73\)

반면, 각 변수와 연봉 간의 고유한 상관관계를 측정하고자 한다면 partial/semi-partial correlation을 고려(아래 테이블)

  • 논문 수와는 독립적인 연차와 연봉 간의 부분상관계수(partial correlation) \(pr = 0.53\)
    • 그 제곱 \(pr^2 = 0.28\); 28%의 변량을 설명
  • 연차와는 독립적인 논문 수와 연봉 간의 부분상관계수(partial correlation) \(pr = 0.23\)
    • 그 제곱 \(pr^2 = 0.05\); 5%의 변량을 설명
  • semi-partial correlation 조금 다른 의미
\(r\) (simple) \(pr\) (partial) \(sr\) (semi-partial)
time 0.71 0.53 0.43
pubs 0.59 0.23 0.16

 

\(r^2\) \(pr^2\) \(sr^2\)
time 0.50 0.28 0.18
pubs 0.35 0.05 0.03


직접 효과(direct effect)가 거의 0인 경우

만약, 예를 들어 연차의 효과 $1224이 논문수를 고려했을 때 줄어든($983) 수준을 훨씬 넘어 통계적으로 유의하지 않을 정도로 0에 가까워진다면(즉, 모집단에서는 사실상 0일 가능성이 있음), 연차의 효과는 모두 논문의 효과를 거쳐 나타나는 것이라고 말할 수 있음(직접 효과 = 0). 다시 말하면, 연차 자체는 연봉에 영향을 주지 않음; 완전 매개 (fully mediate)한다고도 표현함.

Spurious Relationships

반대로, 만약 다음과 같이 연차를 고려했을 때 논문수(pubs)의 효과가 거의 사라진다면,
논문수(pubs)와 연봉(salary)의 관계는 spurious(가짜)한 관계라고 잠정적으로 말할 수 있음.

연차를 논문수와 연봉의 common cause 라고 말하며, confounding이 되어 논문수와 연봉의 인과관계는 실제로 없을 수 있음을 암시함.
즉, 논문수가 연봉에 영향을 주는 것처럼 보이는(연관성) 이유는 연차로 인해 모두 증가되어 나타나는 착시현상임.

Important

요약하면,

  • 회귀분석을 통해, 변수들 간의 관계를 파악하고, 그 관계의 크기를 추정
  • 그 관계가 얼마나 일반화될 수 있는지를 추론; 모집단에 대한 추론
  • 인과 관계 추론에 대한 위험성을 인지하고, 신중한 접근이 필요함

다른 예로, 집값을 예측하는 모델의 경우

Saratoga Houses dataset

\(\widehat{price} = 36668.9 + 125.4 \cdot livingArea - 14196.8 \cdot bedrooms\)

Show the code
from statsmodels.formula.api import ols
houses = sm.datasets.get_rdataset("SaratogaHouses", "mosaicData").data
print(houses.head(3))
    price  lotSize  age  landValue  livingArea  pctCollege  bedrooms  \
0  132500     0.09   42      50000         906          35         2   
1  181115     0.92    0      22300        1953          51         3   
2  109000     0.19  133       7300        1944          51         4   

   fireplaces  bathrooms  rooms          heating      fuel              sewer  \
0           1       1.00      5         electric  electric             septic   
1           0       2.50      6  hot water/steam       gas             septic   
2           1       1.00      8  hot water/steam       gas  public/commercial   

  waterfront newConstruction centralAir  
0         No              No         No  
1         No              No         No  
2         No              No         No  
linear model
mod = ols("price ~ livingArea + bedrooms", data=houses).fit()
mod.summary()
Show the code
(
    so.Plot(houses, x='livingArea', y='price')
    .add(so.Dots())
).show()
sns.boxplot(data=houses, x='bedrooms', y='price', fill=False)
plt.show()

비슷한 넓이의 집들로 나누어 보면,

Interactions

두 변수가 서로 상호작용하는 경우: not additive, but multiplicative

  • 각각의 효과가 더해지는 것을 넘어서서 서로의 효과를 증폭시키거나 감소시키는 경우
  • 강수량과 풍속이 함께 항공편의 지연을 가중시키는 경우
  • 운동량과 식사량이 함께 체중 감량에 영향을 미치는 경우
  • 나이에 따른 지구력 감소가 운동을 한 기간에 따라 변화하는 경우
    • 보호 요인 (protective factor)
    • 위험 요인 (risk factor)

각 변수의 효과가 다른 변수에 의해 변하므로 앞서 “통계적 통제”의 해석은 적용되지 않음.
즉, 각 변수의 고유한 효과에 대해 말할 수 없음.

가령, 나이에 따른 지구력 감소가 운동을 한 기간에 따라 변화하는 경우

\[ \begin{align} endure &= b_0 + b_1 \cdot age + b_2 \cdot exercise + b_3 \cdot age \cdot exercise \\ &= b_0 + (b_1 + b_3 \cdot exercise) \cdot age + b_2 \cdot exercise \end{align} \]

Interaction의 패턴
  1. Synergistic or enhancing interaction
  • 상호작용 효과가 원래 효과들과 같은 방향으로 작용하는 경우
  • 삶의 만족도(Y)가 직업 스트레스(X)와 부정적인 관계에 있고, 부부관계의 문제(Z)와도 부정적인 관계에 있는 경우
  • 이 둘의 상호작용이 부정적이라면, 직업 스트레스와 부부관계의 문제가 동시에 증가하면 각각의 sum이 예측하는 것보다 더 낮은 삶의 만족도가 예측됨.
  1. Buffering interaction
  • 두 변수가 반대 방향으로 Y에 작용하고 있을 때, 한 변수가 다른 변수의 효과를 감소시키는 경우
  • 즉, 한 변수의 impact가 다른 변수의 impact를 줄여주는 경우
  • 건강보건에 대한 연구에서, 한 변수가 질병의 위험요인이고 다른 변수가 질병의 위험을 줄여주는 보호요인인 경우
  • 위의 예에서처럼, 나이(X)는 지구력 감소의 위험요인이고, 운동기간(Z)은 지구력 보호요인인 경우
  1. Interference or antagonistic interactionin
  • 두 변수가 같은 방향으로 Y에 작용하고 있을 때, 상호작용은 반대 방향으로 작용하는 경우
  • 대학생의 학업성취도(Y)에 대하여, 학업동기(X)와 학업능력(Z)이 모두 학업성취도(Y)에 긍정적인 영향을 미치나 이 두 변수는 서로 보완적인 효과를 가지고 있음.
  • 즉, 성취도에 대한 학업능력의 중요성은 높은 학업동기에 의해 낮아질 수 있음.
  • 반대로, 학업동기에 대한 중요성은 높은 학업능력에 의해 낮아질 수 있음.

Uncertainty

관찰자가 관찰한 대상으로부터 얻은 결과를 관찰하지 않은 더 넓은 대상으로 일반화할 수 있는가?
가령, 다음과 같이 150명에 대해 조사한 “연령이 임금에 미치는 효과”를 일반화 할 수 있는가?
한 나라의 국민 전체?

Statistical inference (통계적 추론)

통계학의 추론(statistical inference)은 작은 샘플(sample)로부터 얻은 분석 결과를 바탕으로 모집단(population)이라고 부르는 전체에 대해 말하고자 하는 시도에서 비롯되었음

  • 농업 분야에서 시작; 비료/종자의 효과
  • 사람에게도 적용될 수 있는가?

앞서 논의한 모든 내용은 “특정 샘플” 내에서 변수들 간의 관계에 대한 분석임.
통계적 추론은 수많은 같은 수의 샘플들, 가령 N = 150인 즉, 150명으로 이루어진 샘플들을 반복적으로 관찰한다면 그 샘플들 간의 편차들이 어떠하겠는가에 대한 논의임.


Source: The Truthful Art by Albert Cairo.

  • 샘플들로부터 나타나는 임금 차이 값의 분포 >> 남녀 임금 차이가 편차는 어떠한가?
  • 이 분포를 sampling distribution(표본 분포)이라고 부름

  • 평균이 $2.27이고, 임금 차이 값들의 95%가 $1.47 ~ $3.04 범위에 있음을 알 수 있음.
  • 연구자가 관찰한 샘플로부터 연구자는 매우 큰 확신(95%)을 갖고 남녀의 시간당 임금의 차이는 1.47달러에서 3.04달러 사이에 있을 것이라고 말할 수 있음.

비슷하게, 나이(age)와 시간당 임금(wage)의 true relationship에 대해서도
샘플마다 age와 wage의 관계는 다르게 나타날 것임 (두번째 그림).

  • 예를 들어, 샘플들로부터 나타나는 기울기들의 분포를 살펴봄으로써 (세번째 그림): sampling distribution
  • 이 분포에 따르면 평균이 0.066이고, 기울기 값들의 95%가 0.005 ~ 0.140 범위에 있음을 알 수 있음.
  • 연구자가 관찰한 샘플로부터 연구자는 (age와 wage의 선형성을 가정한다면), 매우 큰 확신을 갖고 나이가 10세 늘때마다 시간당 임금의 증가율은 0.05에서 1.4달러 사이에 있을 것이라고 말할 수 있음.


Source: The Truthful Art by Albert Cairo.

Hypothesis testing

Null hypothesis(영가설)에 대한 테스트
즉, 모집단에서 파라미터가 0 인가에 대한 테스트

데이터: cp3.csv

from statsmodels.formula.api import ols
cps = pd.read_csv('data/cps3.csv')
mod = ols("wage ~ married + sex + age", data=cps).fit()
mod.summary()
OLS Regression Results
Dep. Variable: wage R-squared: 0.125
Model: OLS Adj. R-squared: 0.107
Method: Least Squares F-statistic: 6.956
Date: Tue, 26 Mar 2024 Prob (F-statistic): 0.000208
Time: 23:01:35 Log-Likelihood: -433.48
No. Observations: 150 AIC: 875.0
Df Residuals: 146 BIC: 887.0
Df Model: 3
Covariance Type: nonrobust
coef std err t P>|t| [0.025 0.975]
Intercept 4.4946 1.349 3.332 0.001 1.829 7.161
married[T.Single] -0.3592 0.764 -0.470 0.639 -1.870 1.152
sex[T.M] 2.4337 0.721 3.374 0.001 1.008 3.859
age 0.0880 0.031 2.834 0.005 0.027 0.149
Omnibus: 31.384 Durbin-Watson: 2.127
Prob(Omnibus): 0.000 Jarque-Bera (JB): 45.207
Skew: 1.130 Prob(JB): 1.53e-10
Kurtosis: 4.458 Cond. No. 153.


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

t값에 대한 해석

예측변수 \(X_j\) 에 대해서 모집단의 회귀계수 \(b_j\) 에 대한 표본 분포는 평균이 \(b_j\) 인 정규분포를 따르고, 표준편차, 즉 standard error는 근사적으로 다음과 같음.

\(\displaystyle SE^2(b_j) = \frac{{MS}_{residual}}{N \cdot Var(X_j) \cdot (1 - R^2_j)}, ~(df = N-k-1)\)

  • 표본이 클수록
  • 평균 잔차가 작을수록
  • jth 예측변수의 값이 퍼져 있을수록
  • 다른 예측변수들로부터 jth 예측변수가 예측되지 못할수록; 즉 다른 변수들과 correlate되지 않을수록

Source: Wikipedia, Student’s t-distribution

표준정규분포(standard normal distribution)의 확률값

Source: The Truthful Art by Albert Cairo

사람 키의 분포

Source: Human Height

Implementations

This work © 2024 by Sungkyun Cho is licensed under CC BY-NC-SA 4.0