pbj0812의 코딩 일기

[통계학] python을 통한 체계적 표본추출 구현 본문

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)

3. 참고

 - 표본추출 방법 배우기

 - 난수 (random)

Comments