[문제1]
철강제품의 불량률을 조사하고자 한다. 이 때, 불량률의 90%, 추정오차한계가 5% 이내가 되기 위하여 적절한 표본의 크기 중 최소값은 얼마인가?
[답1]
모비율 추정을 위해 필요한 표본의 개수
n = p(1-p)*(z/d)^2
p = 0.9, d<=0.05, z에 대한 가정이 필요함(95%의 신뢰수준으로 가정-> z=약1.96)
n >= (0.9*0.1)*(1.96/0.05)^2 (약138.3)
95%의 신뢰수준 아래 최소 139개의 표본이 필요하다.
[문제2]
다음은 1월부터 9월까지의 은의 가격이다.
1. 은의 가격 및 이동평균값 3이 설정된 시계열 그래프를 그려라
2. 1월 대비 9월의 은의 가격은 몇 % 올랐는가? (소수점 두번째 자리에서 반올림)
[답2]
1.
import pandas as pd
import matplotlib.pyplot as plt
data_ma = pd.DataFrame({'Date':['2022-01-01','2022-02-01','2022-03-01','2022-04-01','2022-05-01','2022-06-01','2022-07-01','2022-08-01','2022-09-01'],'Price':[12.14,42.6,34.4,35.29,30.96,57.12,37.28,42.49,31.38]})
data_ma.info()
data_ma['Date'] = pd.to_datetime(data_ma['Date'],format='%Y-%m-%d')
data_ma.set_index('Date',inplace=True)
data_ma
data_ma.info()
data_ma.plot()
ma = data_ma.rolling(3).mean()
plt.plot(data_ma)
plt.plot(ma)
plt.show()
2.
(31.38-12.14)/12.14 = 약 158.48% 증가하였다.
[문제3]
다음은 A,B,C 자치구별 W 의원에 대한 찬성, 반대 지지를 나타낸다. 자치구별 지지율이 같은지에 대해서 검정하라.
1. 연구가설과 귀무가설을 설정하라.
2. 검정 후 귀무가설 기각 여부를 제시하라. (유의수준 0.05)
[답3]
1.
H0: 의원에 대한 찬성율은 자치구에 관계없이 동일하다.
H1: 의원에 대한 찬성율은 자치구에 관계없이 동일하지 않다.
2.
crosstab = pd.DataFrame({'찬성':[176,193,159],'반대':[124,107,141]},index=['A','B','C'])
#교차분석(동질성검정)
from scipy.stats import chi2_contingency
chi, p, df, expect = chi2_contingency(crosstab)
p # 0.019 < 0.05 -> 귀무가설 기각 즉, 찬성율은 자치구 따라 차이가 유의하다.
[문제4]
초등학교 남학생 16명과 여학생 9명의 혈압을 측정한 problem4.csv파일을 가지고 남녀학생의 평균 혈압에 차이가 없는지 분석하라. 단, 남학생과 여학생의 혈압 데이터는 정규분포를 따르며 등분산성을 가정한다.
표본의 크기가 작지만 정규분포를 따르므로 독립표본 t test 시행(+등분산성을 가정하였으므로 등분산 가정 t검정)
1. 연구가설과 귀무가설 설정하라.
2. 검정 후 귀무가설 기각 여부를 제시하라. (95%신뢰수준)
3. 2.에서 구한 검정 통계량 값을 바탕으로 신뢰구간을 구하라. (+신뢰구간이 귀무가설 기각 여부에 어떤 역할을 하는지 설명하시라.)
[답4]
1.
H0: 학생들의 성별에 따른 평균 혈압은 같다.
H1: 학생들의 성별에 따른 평균 혈압은 다르다.
2.
data = pd.read_csv('./problem4.csv')
#정규성 검정과 등분산성 검정 통과
#i) Python 제공 function으로 풀 때
import scipy.stats as stats
female = data[data['gender']=='female']['pressure']
male = data[data['gender']=='male']['pressure']
stats.ttest_ind(female, male, equal_var=True)
#Ttest_indResult(statistic=-1.529468431300889, pvalue=0.14741253929045572) > 0.05 유의수준보다 크므로 귀무가설 기각 X 평균 혈압은 같다.
#ii) 손으로 푸는 등분산가정 독립t검정
n_f = len(female)
n_m = len(male)
mean_f = np.mean(female)
mean_m = np.mean(male)
std_f = np.std(female)
std_m = np.std(male)
mean_var = (mean_m-mean_f)
S_equal = np.sqrt(((n_m-1)*(std_m**2)+(n_f-1)*(std_f**2))/(n_m+n_f-2))
equal_t = mean_var/(S_equal*np.sqrt(1/n_m+1/n_f))
print((1-stats.t.cdf(equal_t,df=(n_m+n_f-2)))*2)
#pvalue 0.10867530361897404 > 0.05 유의수준 보다 큼
[?] Python 제공 stats.ttest_ind 적용 시와 손으로 공식 적용하여 풀 때 결과값에 차이가 있는 이유
(요약) stats.ttest_ind(equal_var=True)에서 pure 동일성을 가정하였기 때문. 손으로 푸는게 더 정확함.
[참고]
https://it-freelancer.tistory.com/296
3.
#i) Python package 활용 but package 설치 안되어있어서 확인은 못함
import pingouin as pg
res = pg.ttest(female, male, paired=False)
print(res)
#ii) 손으로 푸는 신뢰구간 (welch_ttest: 이분산가정 독립t검정)
[문제5]
출처: https://www.kaggle.com/code/kukuroo3/adp-26-problem-python/notebook?scriptVersionId=116329085
'쫌쫌따리 통계+데이터+AI' 카테고리의 다른 글
[ADP] 이항분포/포아송분포 (0) | 2023.11.06 |
---|---|
다시 정리하는 기출문제 (0) | 2022.09.18 |
Google Cloud Certified - Professional Machine Learning Engineer (1) | 2022.09.09 |
z검정, t검정 정리와 기출문제 (0) | 2022.08.29 |
시계열 분석(2) : 일보전진 이보후퇴 (0) | 2022.08.26 |
댓글