Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 카카오
- SMAPE
- mes
- 평가지표
- PAPER
- Python
- n_neighbors
- 스택
- 코테
- Tire
- python 갯수세기
- n_sample
- 논문editor
- Alignments
- mMAPE
- KAKAO
- 프로그래머스
- Pycaret
- Scienceplots
- knn
- 논문
- MAPE
- TypeError
- iNT
- Overleaf
- RMES
- 논문작성
- 파이썬을파이썬답게
- Mae
- 에러해결
Archives
- Today
- Total
EunGyeongKim
표본추출(가구평균소득에 대한 신뢰구간구하기) 본문
모집단과 표본
- 주제에 부함되는 모든 자료 조사 불가능 ▶ 표본을 추출하여 분석
- 모집단(population) : 분석대상이 되는 전체데이터
- 모수 (parameter): 모집단의 특성을 수치로 나타낸것
- 알수 없음. 표본으로부터 구한 통계량을 이용하여 모수를 추정하거나 통계량이 모수를 어느정도 반영하고 있는지 검정(test)함.
- 모수 (parameter): 모집단의 특성을 수치로 나타낸것
- 표본(sample) : 통계처리의 대상이 되는 부분집단
- 통계량 (statistic) : 표본으로부터 계산할 수 있는 값, 사전적 의미의 확률변수
- 통계치 : 통계량이 사후적으로 실현된 값, 표본에 따라 모든 통계치가 달라짐. 표본추출 중요
- 추론(inference) : 표본에서 알아낸 정보를 바탕으로 모집단의 특성을 알아내는 과정
- 편의 (bias) : 표본과 집단과의 체계적인 차이
- 대표적인 편의
- 표본추출편의(sample selection bias)
- 표본이 모집단을 확률적으로 대표하지 못하는것.
- 표본추출편의(sample selection bias)
- 대표적인 편의
확률오차와 표준오차
- 확률오차 : 체계적인 편의(bias)가 없더라고 추정치와 모집단의 참값을 다르게 하는것
- 추정치는 참값으로부터 확률 오차만큼 벗어남.
- 표준 오차를 이용하여 측정함
- 합의 표준오차 = 상자의 표준편차 * root(표본크기)
- 비율의 표준오차 = 상자의 표준편차 / root(표본크기)
표본 추출과 확률오차
- 표본 크기가 많아지면 표본비율의 표준오차가 적어짐
신뢰도와 신뢰구간
- 표준오차 : SE, Standard Error
- 표준오차 1% 의미
- 정규분포곡선에서 52%±1SE(51% ~ 53%)에 해당되는 정규분포곡선의 아래 면적의 합은 68%
- 정규분포곡선에서 52%±2SE(50% ~ 54%)에 해당되는 정규분포곡선의 아래 면적의 합은 95%
- 이 경우 "표본비율로 모비율을 추정할 떄 모비율에 대한 약 95%의 신뢰도를 가진 신뢰구간(confidence interval)은 50% ~ 54% 이다'라고 함
- (= 특정 후보에 대한 지지율이 50~54% 구간에 있을것으로 95%신뢰한다 라는 의미와 같음)
- 신뢰도는 '대략'의 의미
- 표준오차를 구할 때 모비율을 사용한 것이 아니라 표본비율을 사용하였기 때문에
- 표본비율의 확률 히스토그램 대신에 정규분포곡선을 이용하였기 떄문에 대략이라고 표현함
- 표준오차 1% 의미
신뢰구간의 해석
- 95% 신뢰구간 = 표본을 100번 추출할 경우 모 비율이 우리가 추정한 신뢰구간안에 95번 들어가 있음
- 신뢰구간을 쓸때 정규분포곡선의 성질을 이용하는 이유
- 중심극한정리 때문에
- 중심극한정리를 적용하면 개별 관측치의 히스토그램이 정규분포곡선과 다르더라도 표본평균의 확률 히스토그램은 표본 크기가 커지면 그 모양이 정규분포 곡선과 유사해짐.
- 중심극한정리 때문에
표본평균의 기댓값과 표준 오차
- 모평균과 표본평균의 차이 : 표본평균을 믿을수 있는지에 대한 지표
- 확률오차는 표준오차 방식으로 계산됨
- 결국 표준오차를 이용하여 표본평균이 얼마나 믿을 수 있는지를 판단해야 함
In [20]:
import numpy as np
import pandas as pd
path='/content/2020_가구마스터_20230320_21294.csv'
df = pd.read_csv(path, encoding='CP949')
columns = ["조사연도", '수도권여부', 'MD제공용_가구고유번호', '가구주_성별코드', '가구주_만연령', '가구원수', '가구주_교육정도_학력코드', '가구주_혼인상태코드', '순자산', '부채', '처분가능소득(보완)[경상소득(보완)-비소비지출(보완)]', '가구주_산업대분류코드', '가구주_직업대분류코드', '입주형태코드']
df1= df[columns]
df1.rename(columns={'조사연도':"year",
'수도권여부':"metro",
'MD제공용_가구고유번호':"id",
'가구주_성별코드':"sex",
'가구주_만연령':"age",
'가구원수':"number",
'가구주_교육정도_학력코드':"education",
'가구주_혼인상태코드':"marriage",
'순자산':"asset",
'부채':"debt",
'처분가능소득(보완)[경상소득(보완)-비소비지출(보완)]':"income_d",
'가구주_산업대분류코드':"industry",
'가구주_직업대분류코드':"job",
'입주형태코드':"house"}, inplace=True)
df1.tail()
<ipython-input-20-31dec49b0157>:8: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
df1.rename(columns={'조사연도':"year",
Out[20]:
year | metro | id | sex | age | number | education | marriage | asset | debt | income_d | industry | job | house | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
18059 | 2020 | G2 | 993800291 | 1 | 42 | 3 | 6 | 2 | 4505 | 2200 | -390 | NaN | NaN | 3 |
18060 | 2020 | G2 | 994800251 | 1 | 49 | 5 | 6 | 2 | 108180 | 22000 | 11784 | O | 3 | 1 |
18061 | 2020 | G2 | 994800261 | 1 | 57 | 5 | 6 | 2 | 236226 | 29000 | 11560 | NaN | NaN | 1 |
18062 | 2020 | G2 | 994800291 | 2 | 53 | 2 | 7 | 4 | 84695 | 25000 | 7074 | O | 2 | 2 |
18063 | 2020 | G2 | 995800261 | 1 | 44 | 5 | 6 | 2 | 58223 | 13000 | 5404 | C | 3 | 1 |
2020년 가계금융복지조사를 이용한 우리나라 전체가구 평균소득 구하기¶
In [29]:
income = df1['income_d'].dropna()
# income.describe()
se = np.std(income) / np.sqrt(len(income))
np.mean(income), np.round(np.std(income), 2), se
Out[29]:
(4482.5225310008855, 4209.62, 31.321025470960556)
In [30]:
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(15,6))
ax.hist(income, alpha = 0.3, bins = 2000)
ax.grid(True)
ax.set_xlim((-5000, 20000))
plt.show()
In [31]:
n=10000
mn =[]
for i in range(n):
sample = np.random.choice(income, size = 500, replace=True)
mean = np.mean(sample)
mn.append(mean)
fig,ax = plt.subplots(figsize = (15,6))
ax.hist(mn, alpha=0.3, bins=1000)
ax.grid()
ax.set_xlim((3500, 5500))
plt.show()
가구 평균소득에 대한 신뢰구간¶
- 95%신뢰구간 구해보기
In [35]:
n = 1000
interval = np.zeros((n, 2))
for i in range(n):
sample=np.random.choice(income, size=500, replace=True)
se = np.std(sample) / np.sqrt(len(sample))
mn = np.mean(sample)
lb = mn-2*se
hb = mn+2*se
interval[i-1][0] = lb
interval[i-1][1] = hb
df1= pd.DataFrame(data=interval, columns=['lb', 'hb'])
df1['mean'] = np.mean(income)
df1['test_l'] = np.where((df1['mean'] < df1['lb']), 1, 0)
df1['test_h'] = np.where((df1['mean'] > df1['hb']), 1, 0)
df1['test_t'] = df1['test_l'] +df1['test_h']
df1.head()
Out[35]:
lb | hb | mean | test_l | test_h | test_t | |
---|---|---|---|---|---|---|
0 | 4383.624138 | 5100.139862 | 4482.522531 | 0 | 0 | 0 |
1 | 4327.779420 | 6080.848580 | 4482.522531 | 0 | 0 | 0 |
2 | 3964.222343 | 4686.541657 | 4482.522531 | 0 | 0 | 0 |
3 | 3755.834148 | 4389.977852 | 4482.522531 | 0 | 1 | 1 |
4 | 4116.414504 | 5652.945496 | 4482.522531 | 0 | 0 | 0 |
In [36]:
# 분석 결과 100번의 시행 중 신뢰구간이 모평균을 포함하지 않는 경우 = 47
df1['test_t'].sum()
Out[36]:
47
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
'기타 공부 > 금융' 카테고리의 다른 글
불황과 호황 예측(로짓 알고리즘) (0) | 2023.03.27 |
---|---|
카이제곱을 이용한 차이 검정 (성별,직업군별 소득차이 검정) (1) | 2023.03.25 |
차이 검정 (30대 1인 가구주 성별에 따른소득차이 검정) (0) | 2023.03.21 |
차이 검정 (가구주 직업별 소득 차이 검정) (0) | 2023.03.21 |
리먼브라더스 사태과, 근 3개년 주식 비교(주가수익률, 주가등락, 6개월 보유시 최대예상손실액) (0) | 2023.03.20 |
Comments