2017-11-05 18 views
1

나는 15 개의 샘플을 가지고 있으며 회귀 분석을하기에는 다소 적다.부트 스트랩을 사용하여 샘플 수를 늘리는 것이 합리적입니까? 그렇다면 어떻게 그것을 성취 할 수 있습니까?

누군가는 부트 스트랩 기술을 사용하여 샘플 수를 늘리면 내 데이터가 통계적으로 더 의미가 있다고 말했습니다. 그래서 나는 노력했다.

내가 처음 시도한 것은 파이썬에서 scikit-learn에서 '리 샘플 (resample)'기능을 통해 샘플 수를 15에서 1000 개로 늘리는 것이 었습니다. 나는 '재 샘플'기능의 소스 코드를 볼 때

http://scikit-learn.org/stable/modules/generated/sklearn.utils.resample.html

는하지만, 부트 스트랩에 대해 아무것도 없을 것 같습니다.

여기 내 질문이 있습니다.

1 : 부트 스트랩 기술을 사용하여 15 개 샘플을 1000 개 샘플로 리샘플링하는 것은 통계적으로 의미가 있습니까?

질문 2 : 그렇다면 어떻게 그것을 파이썬 환경에서 구현할 수 있습니까?

감사합니다.

+0

"부트 스트랩"또는 numpy.random.sample이 여러 번 호출 되었습니까? – jmunsch

답변

3

Q1. 부트 스트랩 자체가 널리 사용되고 통계적으로 유효한 기술이지만 15 개의 샘플은 너무 작아서 유용하지 않습니다.

15 개의 샘플이 관심있는 인구를 대표한다고 생각하는 이유가 도메인 별 이유 일 수 있습니다.이 경우 부트 스트랩을 사용할 수 있습니다. 부트 스트랩과 데이터의 변형을 결합하는 것이 좋습니다. 즉, 데이터가 리샘플링 될 때마다 새 데이터에 약간의 노이즈를 추가 한 다음 원본 데이터 세트에 추가합니다. http://www.stat.cmu.edu/~cshalizi/402/lectures/08-bootstrap/lecture-08.pdf

Q2 :

이 부트 스트랩 기술과 그 변화에 대해 배울 수있는 좋은 자원이다. Sklearn 기능으로 올바른 길을 가고 있습니다. 설명서에서 언급했듯이 resample 함수는 부트 스트랩의 한 단계를 구현합니다.

기본적으로 수행해야 할 작업은 원래 데이터의 resample 함수를 호출하고 새 DataFrame의 크기가 1000이 될 때까지 새 DataFrame에 추가하는 루프를 실행하는 것입니다. 참고 : 새 DataFrame에도 원본 데이터.

resample 함수는 임의로 선택한 데이터의 하위 집합을 반환합니다. 랜덤 부분 집합의 관측 수는 n_samples의 값과 같습니다. 예를 들어, n_samples = 10으로 설정하면 replace 함수에 의해 10 개의 데이터 포인트가 반환됩니다. n_samples = 15로 설정하면 resample은 매번 전체 데이터 세트를 반환합니다.

고려해야 할 또 다른 매개 변수는 바꾸기입니다. replace가 True이면 원래 데이터의 데이터 포인트가 replace에 의해 반환 된 하위 세트에서 반복 될 수 있습니다. replace가 False이면 원래 데이터의 각 데이터 요소는 하위 집합에 한 번만 나타날 수 있습니다.

이 매개 변수의 선택은 보유한 데이터에 따라 다르지만 합리적인 접근 방식은 아마도 n_samples를 < 15로 설정하고 = true를 바꾸면 resample에서 반환 한 데이터의 변형을 늘릴 수 있습니다.