헤맨 만큼 내 땅이다

Python/빅데이터분석기사 실기

빅데이터 분석기사 실기 체험 문제 3유형 1번 문제 (25.6/7)

mm대장 2025. 6. 7. 10:41

이번에 빅데이터 분석기사 실기 체험 문제가 변경되어서 풀어보고 있다.

 

사실 잘 못하는데 인터넷에 풀이해놓은 사람이 없어서 내 방식대로 해보았다.

이상한게 있으면 댓글달아 주세요..

 

 

① F-검정 검정통계량 값을 구하여라.

근데 scipy로 구할 수는 없나요? chatGPT는 안된다던데... 아는 분 있나요?

# 출력을 원할 경우 print() 함수 활용
# 예시) print(df.head())

import numpy as np
import pandas as pd
#import scipy.stats as stats # scipy.stats 라이브러리 임포트

# 제공된 데이터
df = pd.read_csv("data/bcc.csv")


print("원본 데이터:")
print(df)

# Classification에 따라 집단 분리
group1_data = df[df['Classification'] == 1].copy()
group2_data = df[df['Classification'] == 2].copy()

print("\n집단 1 데이터:")
print(group1_data)
print("\n집단 2 데이터:")
print(group2_data)

# 각 집단의 Resistin 값에 로그 변환 적용
group1_data['Log_Resistin'] = np.log(group1_data['Resistin'])
group2_data['Log_Resistin'] = np.log(group2_data['Resistin'])

print("\n집단 1 로그 변환 데이터:")
print(group1_data)
print("\n집단 2 로그 변환 데이터:")
print(group2_data)

# 각 집단의 표본 크기
n1 = len(group1_data)
n2 = len(group2_data)

# 각 집단의 자유도 (n-1)
df1 = n1 - 1
df2 = n2 - 1

print(f"\n집단 1 표본 크기: {n1}, 자유도: {df1}")
print(f"집단 2 표본 크기: {n2}, 자유도: {df2}")

# 각 집단의 로그 리지스틴 값에 대한 표본 분산 계산 (ddof=1 사용)
# scipy.stats.variance를 사용할 수도 있으나, pandas의 var 메소드가 데이터프레임 구조에 더 적합합니다.
var1 = group1_data['Log_Resistin'].var(ddof=1)
var2 = group2_data['Log_Resistin'].var(ddof=1)

#print(f"\n집단 1 로그 리지스틴 표본 분산: {var1}")
#print(f"집단 2 로그 리지스틴 표본 분산: {var2}")

#표분 분산의 크기가 집단2가 더 크기 때문에 집단2/집단1 로 F검정 검정통계량을 구함
result = var2/var1
round_result = round(result, 3)

print(round_result)