이번에 빅데이터 분석기사 실기 체험 문제가 변경되어서 풀어보고 있다.
사실 잘 못하는데 인터넷에 풀이해놓은 사람이 없어서 내 방식대로 해보았다.
이상한게 있으면 댓글달아 주세요..
① 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)
'Python > 빅데이터분석기사 실기' 카테고리의 다른 글
Pandas DataFrame 기호 역할 정리 (0) | 2025.06.08 |
---|---|
빅데이터 분석기사 실기 체험 문제 3유형 3번 문제 (25.6/7) (0) | 2025.06.07 |
빅데이터 분석기사 실기 체험 문제 3유형 2번 문제 (25.6/7) (0) | 2025.06.07 |
빅데이터 분석기사 실기 작업형 2(회귀) 예제 (1) | 2025.06.06 |
빅데이터 분석기사 실기 작업형 2 체험문제(분류) 풀기 (1) | 2025.06.04 |