[수업 목표]
우연히 결과가 나오는 것이 아닌, 항상 일관된 결과가 나오는지 확인해야 함
인위적으로 p-값을 낮추지 않을 수 있도록 조심해야 합니다!
말 그대로 선택적으로 보고하는 것!

원하는 결과가 나올 때 까지 자료를 수집하는 것을 조심!

# 데이터 수집 예시
np.random.seed(42)
data = np.random.normal(0, 1, 1000)
sample_sizes = [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
p_values = []
for size in sample_sizes:
sample = np.random.choice(data, size)
_, p_value = stats.ttest_1samp(sample, 0)
p_values.append(p_value)
# p-값 시각화
plt.plot(sample_sizes, p_values, marker='o')
plt.axhline(y=0.05, color='red', linestyle='dashed', linewidth=1)
plt.title('자료수집 중단 시점에 따른 p-값 변화')
plt.xlabel('샘플 크기')
plt.ylabel('p-값')
plt.show()

검증하기 위한 데이터는 반드시 따로 분리 해놓아야 함!

from sklearn.model_selection import train_test_split
# 데이터 생성
np.random.seed(42)
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)
# 데이터 분할 (탐색용 80%, 검증용 20%)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 모델 학습
model = LinearRegression()
model.fit(X_train, y_train)
# 탐색용 데이터로 예측
y_train_pred = model.predict(X_train)
# 검증용 데이터로 예측
y_test_pred = model.predict(X_test)
# 탐색용 데이터 평가
train_mse = mean_squared_error(y_train, y_train_pred)
train_r2 = r2_score(y_train, y_train_pred)
print(f"탐색용 데이터 - MSE: {train_mse}, R2: {train_r2}")
# 검증용 데이터 평가
test_mse = mean_squared_error(y_test, y_test_pred)
test_r2 = r2_score(y_test, y_test_pred)
print(f"검증용 데이터 - MSE: {test_mse}, R2: {test_r2}")
다양한 통계학 자료 추천
이번에 배운 내용을 다시 정리하기 위해 연습문제를 풀어봅시다! (정답 해설을 보지 않고 풀어보세요!)
재현 가능성(reproducibility)에 대한 설명으로 옳은 것을 고르세요.
1) 재현 가능성은 동일한 연구자가 동일한 실험을 여러 번 수행하여 동일한 결과를 얻는 것을 의미한다.
2) 재현 가능성은 다른 연구자가 동일한 실험 절차를 따라 실험을 수행하여 동일한 결과를 얻는 것을 의미한다.
3) 재현 가능성은 데이터 분석 과정에서 발생하는 오류를 줄이기 위한 방법이다.
4) 재현 가능성은 통계 분석의 정확성을 평가하는 기준이다.
정답 및 해설
- 정답은 2번
- 재현 가능성은 (내가 아닌)다른 연구자가 동일한 실험 절차를 따라 실험을 수행하여 동일한 결과를 얻는 것을 의미합니다. 이는 연구 결과의 신뢰성을 높이는 중요한 요소입니다.
p-해킹(p-hacking)의 정의에 가장 가까운 것을 고르세요.
1) 통계 분석에서 발생하는 오류를 수정하는 과정
2) 연구자가 원하는 결과를 얻기 위해 데이터를 반복적으로 분석하고 p-value를 조작하는 행위
3) 데이터를 시각화하여 결과를 해석하는 과정
4) 데이터를 수집하고 분석하는 표준 절차
정답 및 해설
- 정답은 2번
- p-해킹은 연구자가 원하는 결과를 얻기 위해 데이터를 반복적으로 분석하고 p-value를 조작하는 행위로, 이는 연구 결과의 신뢰성을 저해할 수 있습니다.
선택적 보고(selective reporting)이 문제인 이유로 가장 적절한 것을 고르세요.
1) 연구자가 모든 데이터를 수집하지 못할 수 있다.
2) 연구자가 연구 결과를 왜곡하여 보고할 수 있다.
3) 연구자가 데이터를 분석하는 방법을 모를 수 있다.
4) 연구자가 통계적 방법을 사용할 수 없다.
정답 및 해설
- 정답은 2번
- 선택적 보고는 연구자가 자신에게 유리한 결과만을 선택적으로 보고하는 행위로, 이는 연구 결과의 왜곡을 초래할 수 있습니다.
자료수집 중단 시점을 결정할 때 발생할 수 있는 문제는 무엇인가요?
1) 데이터 수집 비용이 증가한다.
2) 데이터의 신뢰도가 높아진다.
3) 연구자의 편향이 결과에 영향을 미칠 수 있다.
4) 데이터의 다양성이 감소한다.
정답 및 해설
- 정답은 3번
- 자료수집 중단 시점을 연구자가 임의로 결정할 경우, 연구자의 편향이 결과에 영향을 미칠 수 있습니다. 이는 연구의 신뢰성을 떨어뜨릴 수 있습니다.
데이터 탐색(exploration)과 검증(validation)을 분리하는 이유로 가장 적절한 것을 고르세요.
1) 데이터 탐색과 검증을 분리하면 데이터 분석 과정이 단순해진다.
2) 데이터 탐색과 검증을 분리하면 데이터 분석 과정에서 발생하는 오류를 줄일 수 있다.
3) 데이터 탐색과 검증을 분리하면 과적합(overfitting)을 방지하고 모델의 일반화 성능을 높일 수 있다.
4) 데이터 탐색과 검증을 분리하면 데이터 수집 비용을 절감할 수 있다.
정답 및 해설
- 정답은 3번
- 데이터 탐색과 검증을 분리하면 과적합을 방지하고, 모델이 새로운 데이터에 대해 얼마나 잘 일반화될 수 있는지를 평가할 수 있습니다.