функции sample и rbinom в R

Я предполагаю, что это спрашивали раньше, но я все еще немного ржавый о функциях «sample» и «rbinom» в R и хотел бы задать следующие два простых вопроса:

а) Допустим, у нас есть:

        rbinom(n = 5, size = 1, prob = c(0.9,0.2,0.3))

Таким образом, «n» = 5, но «prob» указано только для трех из них. Какие значения R присваивает этим двум n?

б) Допустим, у нас есть:

        sample(x = 1:3, size = 1, prob = c(.5,0.2,0.9))

Согласно R-help (? образец):

     The optional prob argument can be used to give a vector of weights    
     for obtaining the elements of the vector being sampled.  
     They need not sum to one, but they should be non-negative and not all zero.

Возникает вопрос: почему «проблема» не нуждается в сумме с единицей?

Любые ответы будут очень признательны: спасибо!


person user36478    schedule 22.06.2015    source источник
comment
Почему они обязательно должны в сумме равняться 1? Вес c(3,1) так же действителен, как и c(0.75,0.25). И я понимаю, что R просто переработает веса до длины n в соответствии с rbinom(n = 5, size = 1, prob = c(1,0)), где веса будут 1,0,1,0,1   -  person thelatemail    schedule 22.06.2015
comment
Внутренне R будет перерабатывать, если это необходимо, и делать prob=prob/sum(prob) перед его использованием.   -  person Robert    schedule 22.06.2015


Ответы (1)


Из документации для rbinom:

Числовые аргументы, отличные от n, перерабатываются в длину результата.

Это означает, что в вашем примере вектор prob, который вы передаете, будет перерабатываться до тех пор, пока не достигнет необходимой длины (предположительно 5). Таким образом, вектор, который будет использоваться:

c(0.9, 0.2, 0.3, 0.9, 0.2)

Что касается функции sample, как указал @thelatemail, вероятности не должны суммироваться до 1. Похоже, что вектор prob нормализуется до 1 внутри.

person Tim Biegeleisen    schedule 22.06.2015