본문 바로가기
Algorithms

[빅데이터분석기사][실기] 작업형 제3유형

by doraemin_dev 2025. 6. 21.

작업형 제3유형 - 통계적 가설 검정

* 통계적 가설 검정은 시험에 잘 안 나오는 듯합니다.

import pandas as pd
import scipy.stats as stats
from math import sqrt

# 1. 단일표본 T
stats.ttest_1sample(data['A'], 75) # 모평균 값 (75) 대입

# 2. 독립표본 T
# 먼저, 두 그룹이 등분산성을 띠는지 확인해야한다.
stats.levene(data.loc[data.classes =='A', 'len'], data.loc[data.classes=='B', 'len']) # A의 len과 B의 len 비교
stats.ttest_ind(data.loc[data.classes=='A']['len'], data.loc[data.classes=='B']['len'], equal_var=True) # 등분산성을 만족하면 True, 아니면 False

# 3. 쌍체표본 T
stats.ttest_rel(data['A'], data['B'], alternative='greater') # 기본값은 'two-sided': 표본평균의 차이는 0인지 따질때. #차이가 있으면 'greater'

# 4. One-way ANOVA
stats.f_oneway(x1, x2, x3)

# 5. 카이제곱검정 (적합도 검정)
stats.chisquare(observed, f_exp = expected)

# 6. 카이제곱검정 (독립성 검정)
stats.chi2_contingency([x1,x2,x3])

작업형 제3유형 

# 로지스틱 회귀
import statsmodels.api as sm
data = pd.read_csv("dataset.csv")
data.head()

# 3-1. 로지스틱 회귀 모형을 만들고, Weight의 오즈비를 계산하시오
data1 = data.copy()
data1['Gender'] = data1['Gender'].map({'Male':1, 'Female':0})
X = data1[['Height', 'Weight', 'ShoeSize']]
y = data1['Gender']

from sklearn.model_selection import train_test_split
X_tr, X_test, y_tr, y_test = train_test_split(X, y.values.ravel(), test_size=0.3)

X_tr = sm.add_constant(X_tr)
model = sm.Logit(y_tr, X_tr.values).fit()
print(model.summary())

odds_ratios = np.exp(model.params)
results = odds_ratios[2]
print(results)

# 3-2. logit-likelihood를 계산하시오
print(model.llf)

# 3-3. 예측 결과와 실제값의 오차율을 계산하시오
X_test = sm.add_constant(X_test)
y_pred = (model.predict(X_test) >= 0.5).astype(int)

error_rate = (y_pred.values - y_test)
print(np.mean(np.abs(error_rate)))
data = pd.read_csv("dataset.csv")
data.head()
data['transmission'].unique() # array(['Manual', 'Automatic', 'Semi-Auto'], dtype=object)
data['transmission'] = data['transmission'].map({'Manual':0, 'Automatic':1, 'Semi-Auto':2})
data['fuelType'] = data['fuelType'].map({'Petrol':0, 'Diesel':1, 'Hybrid':2})

data.columns.unique() # 'year', 'price', 'transmission', 'mileage', 'fuelType', 'tax', 'mpg','engineSize']
X = data[['year', 'transmission', 'mileage', 'fuelType', 'tax', 'mpg','engineSize']]
y = data[['price']]

import statsmodels.api as sm

X = sm.add_constant(X)
model = sm.OLS(y,X).fit()

# 결정계수를 계산하시오
rsquared = model.rsquared
print(rsquared)

# 회귀 계수 중 가장 큰 값을 계산하시오
coefs = model.params
print(coefs.idxmax(), coefs.max())

# 최소 p_value 값을 계산하시오
p_value = model.pvalues
print(p_value.idxmin(), p_value.min())

[빅데이터분석기사] 합격 후기

 

[빅데이터분석기사] 합격 후기

필기를 합격하고학기 종강하고실기 시험까지 며칠이 없어서 기출 몇 회 풀고 갔습니다[빅데이터분석기사] 필기 공부법 및 후기 [빅데이터분석기사] 필기 공부법 및 후기정말 감사하게도, 유튜

doraemin.tistory.com