programming/파이썬으로 배우는 통계학

[파이썬/통계] Python에 의한 기술 통계 : 통계 모델, 모델링에 관하여

Jofresh 2023. 5. 16. 16:11
728x90
반응형

통계모델(Statistical Model)은 현상이나 데이터의 패턴을 설명하거나 예측하기 위해 수학적으로 정의된 모델입니다. 이 모델은 통계학적 기법과 확률론을 사용하여 데이터의 특성과 관련된 가정을 수립하고 검정하며, 데이터로부터 파라미터를 추정하고 추론하는 데 사용됩니다.

모델링(Modeling)은 통계모델을 개발하는 과정을 의미합니다. 이는 데이터를 수집하고, 데이터의 특성을 이해하며, 모델의 구조와 가정을 설정하는 과정을 포함합니다. 모델링은 주어진 데이터에 적합한 모델을 찾고, 모델의 파라미터를 조정하여 데이터를 잘 설명하거나 예측할 수 있는 모델을 생성하는 작업입니다.

모델링은 다양한 목적을 가지고 수행될 수 있습니다. 주요 목적은 다음과 같습니다:

데이터 이해: 모델링은 데이터를 분석하고 이해하는 데 도움을 줍니다. 데이터의 패턴, 상관 관계, 동향 등을 모델을 통해 파악할 수 있습니다.

예측: 모델링은 주어진 데이터를 기반으로 미래의 사건이나 결과를 예측하는 데 사용됩니다. 예를 들어, 과거 판매 기록을 사용하여 미래의 판매량을 예측할 수 있습니다.

설명 및 해석: 모델링은 데이터에 대한 설명과 해석을 제공합니다. 모델을 통해 어떤 변수가 결과에 영향을 주는지, 어떤 변수가 관련성을 갖는지 등을 알 수 있습니다.

가설 검정: 모델링은 통계적 가설을 검정하는 데 사용될 수 있습니다. 예를 들어, A와 B라는 두 그룹의 평균 차이가 통계적으로 유의미한지를 검정하는 등의 작업에 모델링이 활용될 수 있습니다.

의사 결정 지원: 모델링은 의사 결정에 도움을 줍니다. 예를 들어, 마케팅 전략의 효과를 예측하여 리소스를 효율적으로 배분하는 데 활용될 수 있습니다.

통계모델과 모델링은 다양한 분야에서 사용되며, 데이터 분석, 연구, 예측, 의사 결정 등에 중요한 도움이 됩니다.

 

종속변수와 독립변수

종속변수(Dependent Variable)는 모델링이나 분석의 대상이 되는 변수로, 다른 변수들에 의해 영향을 받는 변수입니다. 종속변수는 주로 예측하고자 하는 대상이나 관심 변수로 사용됩니다. 종속변수는 종종 "Y"로 표기되며, 예측, 분류, 회귀 등의 분석 작업에서 결과나 목표값으로 사용됩니다. 예를 들어, 주택 가격을 예측하기 위해 주택의 크기, 위치, 건축 연도 등의 독립변수들에 의해 종속변수인 주택 가격이 결정될 수 있습니다.

독립변수(Independent Variable)는 종속변수에 영향을 주는 변수로, 다른 변수에 의존하지 않고 자체적으로 값을 가지는 변수입니다. 독립변수는 종속변수의 변동을 설명하거나 예측하는 데 사용됩니다. 독립변수는 종종 "X"로 표기되며, 다른 독립변수들과 종속변수 간의 관계를 분석하는 작업에서 사용됩니다. 이러한 분석을 통해 독립변수들이 종속변수에 미치는 영향과 관계를 이해할 수 있습니다. 예를 들어, 주택 가격을 예측하기 위해 주택의 크기, 위치, 건축 연도 등을 독립변수로 사용할 수 있습니다.

종속변수와 독립변수는 통계모델 또는 머신러닝 알고리즘에 의해 사용되는 관찰 데이터의 특성을 설명하고 예측하기 위해 사용됩니다. 이들은 상관관계, 회귀분석, 분류 등 다양한 분석 방법에서 중요한 역할을 합니다. 이를 통해 독립변수의 변화가 종속변수에 어떤 영향을 미치는지를 파악하고, 종속변수를 예측하거나 분류하는 모델을 구축할 수 있습니다.

 

모델의 명칭

정규선형모델(Normal Linear Model)은 통계학에서 종속변수와 독립변수 간의 선형 관계를 기반으로 한 모델입니다. 이 모델은 종속변수가 독립변수들의 선형 조합에 오차항을 더한 형태로 표현됩니다. 정규선형모델은 종속변수가 정규분포를 따른다는 가정을 전제로 하며, 오차항은 평균이 0이고 일정한 분산을 가지는 정규분포를 따른다고 가정합니다. 정규선형모델은 주로 회귀분석의 기본적인 틀이 됩니다.

회귀분석(Regression Analysis)은 종속변수와 독립변수 간의 관계를 분석하는 통계적 기법입니다. 종속변수와 독립변수들 사이의 선형적인 관계를 추정하고, 독립변수들이 종속변수에 어떤 영향을 미치는지를 파악하는 것이 목적입니다. 회귀분석은 주로 예측 모델링, 변수 선택, 인과관계 추론 등에 사용됩니다. 단순회귀분석은 하나의 독립변수와 하나의 종속변수 사이의 관계를 분석하며, 다중회귀분석은 여러 개의 독립변수와 하나의 종속변수 사이의 관계를 분석합니다.

다중회귀분석(Multiple Regression Analysis)은 회귀분석의 한 형태로, 하나의 종속변수와 여러 개의 독립변수 사이의 선형 관계를 분석하는 기법입니다. 다중회귀분석은 독립변수들 간의 상호작용이나 다항식 형태로도 모델링할 수 있습니다. 이를 통해 여러 독립변수들이 종속변수에 미치는 개별적인 영향을 분석하고, 여러 변수들의 효과를 동시에 고려하여 예측 및 설명 모델을 개발할 수 있습니다.

분산분석(Analysis of Variance, ANOVA)은 독립변수의 범주에 따른 종속변수의 평균 차이를 비교하는 통계적 기법입니다. 분산분석은 검정 방법의 이름이기도 합니다. 독립변수 개수에 따라 일원분산분석, 이원분산분석으로 나뉩니다. 

 

일반선형모델은 종속변수가 따르는 확률분포를 정규분포 이외의 분포에도 사용 가능하게 한 선형모델을 일반선형 모델이라고 합니다. 정규분포를 따르는 선형모델인 정규선형모델은 일반선형모델의 일종으로 볼 수 있습니다. 

 

 

※ 아래용어들은 외울 필요까지는 없습니다. 공부하려면 어렵고 까다로운 공식을 알아야하지만 파이썬과 함께라면 이미 모델링이 되어 있기 때문에 굳이 깊게 공부할 필요는 없다고 생각합니다. 이런게 있다 정도로 용어만 알고 가시면 좋을 것 같습니다.

 

우도

파라미터가 정해져 있을 때 표본을 얻을 수 있는 확률(밀도)을 우도라 합니다.

 

우도함수

파라미터를 넘겨서 우도를 계산할 수 있는 함수를 우도함수라 합니다.

 

로그 우도

우도에 로그를 취한 것을 로그우도라 합니다. 로그를 취하면 나중에 계산이 편해지는 경우가 많습니다.

 

손실함수

파라미터 추정을 할 때 손실을 최소화하는 목적으로 사용

 

잔차

실제 종속변수의 값과 모델을 이용해서 계산한 종속변수의 추정치와의 차이를 잔차라고 합니다.

 

잔차제곱합

잔차를 제곱해서 합계를 구한 것을 잔차제곱합이라고 합니다. 잔차제곱합을 사용하면 잔차의 합이 가지는 문제를 해결할 수 있습니다. 

 

최소제곱법

잔차제곱합을 최소로 하는 파라미터를 채용하는 방법을 최소제곱법이라 합니다. 손실함수로 잔차제곱합을 사용하여 손실을 최소로 하는 파라미터를 추정치로 하는 방법이라고도 할 수 있습니다. 보통 최소제곱법은 줄여서 OLS라고 씁니다. 

 

오차함수

머신러닝 분야에서 로그우도의 부호를 바꾼 것을 오차함수라고 부릅니다. 

 

적합도와 예측 정확도

적합도는 가지고 있는 데이터에 대해 모델을 적용했을 때 들어맞는 정도입니다. 예측 정확도는 아직 얻지 못한 데이터에 대해 모델을 적용했을 때 들어맞는 정도 입니다.

 

과적합(오버피팅)

적합도는 높은데, 예측 정확도가 낮아지는 경우 과적합이라 합니다. 과적합은 가지고 있는 데이터에 지나치게 적합한 모델을 만들면 발생합니다. 

 

일반화 오차

아직 얻지 못한 데이터에 대한 예측오차를 일반화 오차라고 합니다.

 

 

교차검증

교차검증(Cross-validation)은 머신러닝 및 통계 모델의 성능을 평가하기 위해 사용되는 방법 중 하나입니다. 주어진 데이터를 여러 개의 겹(fold)으로 나누어 모델을 학습하고 검증하는 과정을 반복하여 평가합니다. 교차검증은 모델의 일반화 성능을 신뢰할 수 있는 방법으로 평가하기 위해 사용됩니다.

리브-p-아웃 교차검증(Leave-p-Out Cross-Validation)은 교차검증의 한 유형으로, 모든 샘플 중 p개의 샘플을 선택하고 나머지를 훈련 데이터로 사용하여 모델을 학습한 후, 선택한 p개의 샘플을 검증 데이터로 사용하여 모델의 성능을 평가합니다. 이 과정을 가능한 모든 조합에 대해 반복합니다. 리브-p-아웃 교차검증은 데이터의 크기가 작을 때 주로 사용되며, 모든 가능한 조합에 대해 평가하기 때문에 시간과 계산 비용이 많이 소요될 수 있습니다.

k겹 교차검증(k-Fold Cross-Validation)은 가장 널리 사용되는 교차검증 방법 중 하나입니다. 주어진 데이터를 k개의 겹(fold)으로 나누고, 한 겹을 검증 데이터로 사용하고 나머지 k-1개 겹을 훈련 데이터로 사용하여 모델을 학습합니다. 이러한 과정을 k번 반복하고, 각 반복에서의 성능을 평균하여 최종적인 성능을 얻습니다. k겹 교차검증은 계산 비용이 적고, 일반적으로 k=5 또는 k=10으로 설정됩니다.

교차검증은 모델의 성능을 신뢰할 수 있는지 확인하고, 과적합(overfitting) 문제를 감지하고 예방하는 데 도움을 줍니다. 또한, 모델의 하이퍼파라미터 조정이나 변수 선택과 같은 모델 튜닝 작업에 사용될 수 있습니다. 교차검증을 통해 모델의 일반화 성능을 평가하고, 실제 데이터에 대한 예측 성능을 더 정확하게 추정할 수 있습니다.

 

AIC

아카이케 정보기준(Akaike Information Criterion, AIC)은 통계 모델의 적합도와 복잡도를 평가하는 지표입니다. 아카이케 정보기준은 확률론적 모델 선택 기법 중 하나로, 작은 AIC 값이 더 적합한 모델을 나타냅니다.

AIC는 최대우도추정법(Maximum Likelihood Estimation, MLE)에 기반하여 계산됩니다. 모델의 AIC 값은 다음과 같이 계산됩니다:

AIC = -2 * log(최대 우도) + 2 * (모델의 파라미터 개수)

AIC는 모델의 적합도를 나타내는 음의 로그 우도(-2 * log(최대 우도))와 모델의 복잡도를 패널티로 부과하는 항(2 * (모델의 파라미터 개수))으로 구성됩니다. 즉, AIC는 모델이 데이터를 잘 설명하는 정도와 모델의 복잡도를 고려하여 최적의 모델을 선택하는 데 사용됩니다.

AIC를 사용하여 여러 모델을 비교할 때, AIC 값이 작은 모델이 데이터를 더 잘 설명하면서도 복잡도가 낮은 모델이라고 할 수 있습니다. 따라서 AIC를 최소화하는 모델이 일반적으로 선호됩니다. AIC를 활용하여 모델 선택을 수행하면, 과적합을 피하고 더 간단하면서도 설명력이 좋은 모델을 선택할 수 있습니다.

참고로, AIC는 통계 모델의 상대적인 적합도를 평가하는 지표이므로, 절대적인 기준값은 없습니다. 따라서 AIC를 사용하여 모델을 비교할 때에는 여러 모델 간의 상대적인 AIC 값을 비교하고, 가장 낮은 AIC 값을 가지는 모델을 선택하는 것이 일반적입니다.

 

이렇게 적고 보니 머리가 아프네요. 하지만 위 내용을 다 이해할 필요는 없습니다. 복잡한 계산은 파이썬이 해줄 거니깐요! 

우리는 어떤 라이브러리의 어떤 메소드를 사용할지만 잘 알면 됩니다! 

 

728x90
반응형