Science/통계학
[통계학] python을 통한 체계적 표본추출 구현
pbj0812
2020. 9. 18. 01:03
0. 목표
- python을 통한 체계적 표본추출 구현
1. 이론
- 모집단의 기본단위를 순서대로 1 ~ N 까지 번호를 할당하고 표본추출간격 k=N/n으로 정함.
- 첫째 구간에서 무작위로 기본단위 하나를 추출하여 그 번호가 a라면 표본은 a, a+k, a+2k... 인 기본단위들을 추출하여 구성
- 예시 원본
2. 실습
1) library 호출
import random
2) 함수 제작
(1) k 값으로는 모집단인 inp의 길이를 n 으로 나눠 구함.
* 딱 맞아떨어지지 않는 경우가 많기에 int를 취하여 정수 형태(소수점 버림)로 만듬
(2) 모집단에서 k*n 이후의 나머지 부분은 버림
(3) 랜덤함수를 통해 0 ~ k-1 의 자연수 값을 구하여 a에 할당
(4) 반복문을 통하여 a + i*k 값을 결과값(list)에 누적
def func(inp, n):
k = int(len(inp) / n) #1
inp2 = inp[:k*n] #2
a = random.randint(0, k-1) #3
result = []
for i in range(n):
result.append(inp2[a + (i * k)]) #4
return result
3) 예제 모집단 생성
- 맞아 떨어지지 않기 위해 1001개 생성
inp_list = [i for i in range(1001)]
4) 실행
result = func(inp_list, 10)
5) 결과
- 결과 : [14, 114, 214, 314, 414, 514, 614, 714, 814, 914]
print(result)