2013-02-04 4 views
9

sample() 함수를 사용하여 R에있는 데이터 세트에서 임의로 n 개의 행을 선택하고 싶습니다. 매번 다른 출력을 얻고 있었기 때문에 동일한 출력을 얻으려면 set.seed() 함수를 사용했습니다. 나는 set.seed()의 각 정수가 나에게 고유 한 출력을 줄 것이며 동일한 시드를 설정하면 출력이 동일 함을 알고 있습니다. 그러나 나는 함수로 매개 변수로 전달되는 정수를 의미 할 수 없다. 무작위 생성 알고리즘으로 들어가는 색인 일 뿐이지 만 샘플링을 시작하는 곳의 데이터 일부를 의미합니까? 예를 들어, set.seed(2)에있는 2의 의미는 무엇입니까?시드 값을 설정하는 동안 정수는 무엇을 의미합니까?

답변

6

임의 시드 (또는 시드 상태 또는 시드 만)는 의사 난수 생성기를 초기화하는 데 사용되는 숫자 (또는 벡터)입니다.

의사 난수 생성기에서 사용할 시드의 경우 임의 일 필요가 없습니다. 숫자 생성 알고리즘의 특성 때문에 원래 시드가 무시되는 한 알고리즘이 생성하는 나머지 값은 의사 임의 방식으로 확률 분포를 따릅니다.

- 그래서 wikipedia

은 임의의 기능은 다음과 같이 구현 될 수있다 : 포함

int rand_r(unsigned int *seed) 
{ 
    *seed = *seed * 1103515245 + 12345; 
    return (*seed % ((unsigned int)RAND_MAX + 1)); 
} 

(의 glibc에서 가져온 샘플) 옛날에

+0

알겠습니다. 알고리즘에 의해 생성 된 숫자 나 시리즈 또는 숫자를 반환하는 의사 난수 생성기로 들어가는 매개 변수와 같습니다. –

+0

. 또한 임의의 "임의"수를 계산할 수 있습니다. 친절하고 짧은 정보는 여기 [link] (http://www.mathstat.dal.ca/~selinger/random)에서 찾을 수 있습니다. 또한 함수 시드를 한 번만 호출하거나 동일한 일련의 난수 (적어도 C에서)를 가질 수 있습니다. – kometonja

4

난수 생성 프로그램의 시드를 설정하는 데 사용되는 숫자입니다. 그것은 당신의 데이터와 관련이 없습니다. 명시 적으로 시드를 제공하지 않으면 현재 시간부터 새 시드가 만들어집니다.

자세한 내용은 ?set.seed 도움말 페이지를 참조하십시오.

15

이 있었다 책을 pages and pages of random digits (물론 임의의 순서로).

set.seed(x)은 엄청난 수의 무작위 수첩에있는 페이지에서 임의의 숫자 읽기를 컴퓨터에 알리는 것과 같습니다. x은 데이터와 관련이 없지만 임의의 숫자를 선택하는 알고리즘이 어떻게 시작되어야 하는지를 설명합니다.

이것은 약간은 쉬울 지 모르지만 나는 비유를 좋아합니다.