sample()
함수를 사용하여 R에있는 데이터 세트에서 임의로 n 개의 행을 선택하고 싶습니다. 매번 다른 출력을 얻고 있었기 때문에 동일한 출력을 얻으려면 set.seed()
함수를 사용했습니다. 나는 set.seed()
의 각 정수가 나에게 고유 한 출력을 줄 것이며 동일한 시드를 설정하면 출력이 동일 함을 알고 있습니다. 그러나 나는 함수로 매개 변수로 전달되는 정수를 의미 할 수 없다. 무작위 생성 알고리즘으로 들어가는 색인 일 뿐이지 만 샘플링을 시작하는 곳의 데이터 일부를 의미합니까? 예를 들어, set.seed(2)
에있는 2
의 의미는 무엇입니까?시드 값을 설정하는 동안 정수는 무엇을 의미합니까?
9
A
답변
6
임의 시드 (또는 시드 상태 또는 시드 만)는 의사 난수 생성기를 초기화하는 데 사용되는 숫자 (또는 벡터)입니다.
의사 난수 생성기에서 사용할 시드의 경우 임의 일 필요가 없습니다. 숫자 생성 알고리즘의 특성 때문에 원래 시드가 무시되는 한 알고리즘이 생성하는 나머지 값은 의사 임의 방식으로 확률 분포를 따릅니다.
- 그래서 wikipedia
은 임의의 기능은 다음과 같이 구현 될 수있다 : 포함
int rand_r(unsigned int *seed)
{
*seed = *seed * 1103515245 + 12345;
return (*seed % ((unsigned int)RAND_MAX + 1));
}
(의 glibc에서 가져온 샘플) 옛날에
4
난수 생성 프로그램의 시드를 설정하는 데 사용되는 숫자입니다. 그것은 당신의 데이터와 관련이 없습니다. 명시 적으로 시드를 제공하지 않으면 현재 시간부터 새 시드가 만들어집니다.
자세한 내용은 ?set.seed
도움말 페이지를 참조하십시오.
15
이 있었다 책을 pages and pages of random digits (물론 임의의 순서로).
set.seed(x)
은 엄청난 수의 무작위 수첩에있는 페이지에서 임의의 숫자 읽기를 컴퓨터에 알리는 것과 같습니다. x
은 데이터와 관련이 없지만 임의의 숫자를 선택하는 알고리즘이 어떻게 시작되어야 하는지를 설명합니다.
이것은 약간은 쉬울 지 모르지만 나는 비유를 좋아합니다.
알겠습니다. 알고리즘에 의해 생성 된 숫자 나 시리즈 또는 숫자를 반환하는 의사 난수 생성기로 들어가는 매개 변수와 같습니다. –
. 또한 임의의 "임의"수를 계산할 수 있습니다. 친절하고 짧은 정보는 여기 [link] (http://www.mathstat.dal.ca/~selinger/random)에서 찾을 수 있습니다. 또한 함수 시드를 한 번만 호출하거나 동일한 일련의 난수 (적어도 C에서)를 가질 수 있습니다. – kometonja