패널데이터 분석에서 개체와 시간을 변동하기 위한 TwoWay Fixed Effect, Interactive Fixed Effects

패널데이터 분석에서 개체와 시간을 변동하기 위한 TwoWay Fixed Effect, Interactive Fixed Effects
Photo by Richard Horvath / Unsplash

Two-Way Fixed Effects

Definition

  • 두 가지 고정 효과(Two-Way Fixed Effects) 모델은 패널 데이터 분석에서 개체와 시간에 대한 변동을 모두 통제하는 방법입니다.
  • 이는 개체와 시간의 고정 효과를 모두 포함하여, 분석 대상 변수의 변동을 설명합니다.

Motivation

  • 이 모델은 개체와 시간에 따른 변동을 모두 통제하여 더 정확한 분석을 가능하게 하기 위해 등장했습니다.
  • 이는 특히 패널 데이터에서 개체 간의 고정된 특성과 시간에 따른 변화를 동시에 고려할 수 있습니다.

Pros

  1. 이질성 통제: 개체와 시간에 따른 변동을 모두 통제할 수 있습니다.
  2. 편향 감소: 두 차원의 고정 효과를 고려하여 모델의 편향을 줄일 수 있습니다.
  3. 적용 범위 넓음: 다양한 분야에서 사용될 수 있습니다.

Cons

  1. 복잡성 증가: 모델이 복잡해질 수 있습니다.
  2. 추가 데이터 필요: 더 많은 데이터가 필요합니다.
  3. 상호작용 효과 무시: 개체와 시간의 상호작용 효과를 고려하지 않습니다.

상호작용 고정 효과 (Interactive Fixed Effects)

Definition

  • 상호작용 고정 효과(Interactive Fixed Effects) 모델은 패널 데이터 분석에서 개체와 시간의 상호작용을 고려한 방법입니다.
  • 이는 두 차원의 고정 효과 외에도, 상호작용 효과를 모델링하여 복잡한 이질성을 통제합니다.

Motivation

  • 이 모델은 개체와 시간 간의 상호작용이 중요한 경우 사용됩니다. 두 차원의 복잡한 이질성을 통제하고자 할 때 유용합니다.

Pros

  1. 상호작용 효과 반영: 상호작용을 고려할 수 있습니다.
  2. 더 나은 모델링: 복잡한 이질성을 더 잘 모델링할 수 있습니다.
  3. 편향 감소: 상호작용 효과를 고려하여 모델의 편향을 줄일 수 있습니다.

Cons

  1. 복잡성 증가: 모델이 더욱 복잡해집니다.
  2. 계산 비용 증가: 더 많은 계산이 필요합니다.
  3. 추가 데이터 필요: 상호작용을 추정하기 위해 더 많은 데이터가 필요합니다.

Alternatives

  1. Random Effects 모델: 고정 효과 대신 랜덤 효과를 사용하여 개체 간의 변동을 모델링합니다.
  2. Hierarchical Linear 모델: 계층적 구조를 고려하여 변동을 모델링합니다.
  3. Difference-in-Differences: 두 그룹 간의 차이를 비교하여 정책 효과를 추정합니다.

샘플 코드

  • C(campaign)는 범주형 변수로서 각 캠페인에 대한 고유한 효과를 모델에 포함하는 역할
import numpy as np
import pandas as pd
import statsmodels.api as sm
import statsmodels.formula.api as smf

# 데이터 생성
np.random.seed(42)
n_campaigns = 10  # 캠페인 수
t_weeks = 12      # 주 수
df = pd.DataFrame({
    'campaign': np.repeat(np.arange(n_campaigns), t_weeks),
    'week': np.tile(np.arange(t_weeks), n_campaigns),
    'spend': np.random.rand(n_campaigns * t_weeks) * 1000  # 광고비 지출
})

# 캠페인 및 시간 고정 효과 추가
df['campaign_effect'] = np.repeat(np.random.randn(n_campaigns), t_weeks)
df['week_effect'] = np.tile(np.random.randn(t_weeks), n_campaigns)
df['sales'] = 100 + df['campaign_effect'] + df['week_effect'] + 0.5 * df['spend'] + np.random.randn(n_campaigns * t_weeks) * 10

print(df.head())

# Two-Way Fixed Effects 모델 적합
model = smf.ols('sales ~ spend + C(campaign) + C(week)', data=df).fit() print(model.summary())

# 상호작용 항 추가
df['interaction'] = df['campaign'] * df['week']

# Interactive Fixed Effects 모델 적합
model_interactive = smf.ols('sales ~ spend + C(campaign) + C(week) + interaction', data=df).fit()
print(model_interactive.summary())

Read more

다중공선성은 잘못된 인과추론 결과를 만들어낼 수 있습니다.

다중공선성은 잘못된 인과추론 결과를 만들어낼 수 있습니다.

다중공선성(Multi Collinearity) * **Multi-Collinearity(다중공선성)**는 독립 변수들 간의 강한 상관관계가 존재할 때 발생합니다. 즉, 한 독립 변수가 다른 독립 변수에 의해 설명될 수 있을 정도로 상관관계가 높은 상황을 의미합니다. * 이 문제는 주로 회귀 분석에서 나타나며, 변수들 간의 관계를 해석하는 데 있어 큰 장애물이 될 수 있습니다. * 일반적인 회귀식을 $Y=

Bayesian P-Value는 불확실성을 감안하여 모델의 적합도를 평가합니다.

Bayesian P-Value는 불확실성을 감안하여 모델의 적합도를 평가합니다.

Bayesian P- Value * Bayesian P-Value는 **모델의 적합도(goodness-of-fit)**를 평가하는 데 사용됩니다. * 사후 분포(posterior distribution)를 이용하여 실제 데이터와 모델이 생성한 예상 데이터를 비교함으로써, 관측된 데이터가 모델에 의해 얼마나 잘 설명되는지를 평가합니다. * 빈도주의 p-값은 "관찰된 데이터보다 극단적인 데이터가 나올 확률"을 계산하지만, Bayesian P-Value는 "모델이 실제

Non-Identifiability는 Model Parameter를 고유하게 식별할 수 없는 현상입니다.

Non-Identifiability는 Model Parameter를 고유하게 식별할 수 없는 현상입니다.

Non Identifiability * Non-Identifiability는 주어진 데이터와 모델에 대해 특정 파라미터를 고유하게 식별할 수 없는 상황을 의미합니다. 즉, 여러 파라미터 값들이 동일한 데이터를 생성할 수 있으며, 이로 인해 특정 파라미터 값을 확정적으로 추정하기 어렵게 됩니다. * 베이지안 추론에서 Non-Identifiability는 사후 분포가 특정 파라미터 값에 대해 명확하게 수렴하지 않고, 여러 값들에 대해 비슷한 확률을

Rootgram은 큰 분산을 갖거나 비정규 형태의 데이터를 위한 히스토그램입니다.

Rootgram은 큰 분산을 갖거나 비정규 형태의 데이터를 위한 히스토그램입니다.

Rootgram * 히스토그램의 변형으로 데이터가 비정규적이거나 큰 분산을 가지는 경우, 정확한 분포를 파악하기 위해 사용됩니다. * 일반적으로 히스토그램은 데이터의 빈도를 직접적으로 나타내기 때문에, 큰 값이 빈번하게 발생하는 경우 상대적으로 작은 값을 잘 드러내지 못하는 경향이 있습니다. 반면, Rootgram은 빈도를 제곱근 형태로 변환하여, 데이터 분포의 차이를 더 잘 시각화할 수 있도록 돕습니다 * 여기서