Como fazer exame de amostras de dados em I
Os estatísticos muitas vezes têm de recolher amostras de dados e, em seguida, calcular estatísticas. Tomando uma amostra é fácil com R, porque uma amostra é realmente nada mais do que um subconjunto de dados. Para fazer isso, você faz uso de amostra(), que leva um vetor como input- seguida, você diga a ele quantas amostras para desenhar a partir dessa lista.
Digamos que você queria para simular rolos de morrer, e você deseja obter dez resultados. Porque o resultado de um único rolo de um dado é um número entre um e seis, o seu código se parece com isso:
> Amostra (1: 6, 10, substituir = TRUE) [1] 2 2 5 5 3 3 5 6 3 5
você diz amostra() para voltar dez valores, cada um na gama 1: 6. Porque cada rolo do dado é independente de qualquer outro rolo do dado, você está amostragem com reposição. Isso significa que você tomar uma amostra da lista e redefinir a lista ao seu estado original (em outras palavras, você coloca o elemento que você acabou atraído de volta para a lista).
Para fazer isso, você adicionar o argumento substituir = TRUE, como no exemplo.
Porque o valor de retorno do amostra() função é um número determinado aleatoriamente, se você tentar essa função repetidamente, você vai obter resultados diferentes de cada vez. Este é o comportamento correto na maioria dos casos, mas às vezes você pode querer obter resultados repetíveis cada vez que você executar a função.
Normalmente, isso irá ocorrer somente quando você desenvolver e testar seu código, ou se você quer ter certeza de que alguém pode testar seu código e obter os mesmos valores que você fez. Neste caso, é usual para especificar um denominado valor de semente.
Se você fornecer um valor de semente, a sequência de números aleatórios será redefinido para um estado conhecido. Isto é porque R não criar números aleatórios, mas apenas números pseudo-aleatórios. A sequência pseudo-aleatória é um conjunto de números que, para todos os efeitos práticos, parecem ser aleatória, mas foram gerados por um algoritmo. Quando você define uma semente de partida para um processo de pseudo-aleatório, R sempre retorna a mesma seqüência pseudo-aleatório.
Mas se você não definir a semente, R retira o estado atual do gerador de números aleatórios (RNG). No arranque R pode definir uma semente aleatória para inicializar o RNG, mas cada vez que você chamá-lo, R começa a partir do próximo valor na corrente RNG. Você pode ler a Ajuda ?RNG para obter mais detalhes.
Em R, utiliza o set.seed () função para especificar o valor inicial da semente. O argumento para set.seed () é qualquer valor inteiro.
> Set.seed (1)> amostra (1: 6, 10, substituir = TRUE) [1] 2 3 4 6 6 6 2 4 4 1
Se você desenhar uma outra amostra, sem definir uma semente, você tem um conjunto diferente de resultados, como seria de esperar:
> Amostra (1: 6, 10, substituir = TRUE) [1] 2 2 5 5 3 3 5 6 3 5
Agora, para demonstrar que set.seed () realmente não repor o RNG, tente novamente. Mas desta vez, defina a semente mais uma vez:
> Set.seed (1)> amostra (1: 6, 10, substituir = TRUE) [1] 2 3 4 6 6 6 2 4 4 1
Você começa exatamente os mesmos resultados como a primeira vez que você usou set.seed (1).
Você pode usar amostra() para retirar amostras do quadro de dados íris. Neste caso, você pode querer usar o argumento substituir = FALSE. Porque este é o valor padrão do substituir argumento, você não precisa escrevê-lo explicitamente:
> Set.seed (123)> index lt; - amostra (1: nrow (íris), 5)> índice [1] 44 119 62 133 142> iris [índice], Sepal.Length Sepal.Width Petal.Length Petal.Width Species44 5.0 3.5 1.6 0.6 7.7 2.6 setosa119 6.9 2.3 virginica62 5,9 3,0 4,2 1,5 versicolor133 6,4 2,8 5,6 2,2 virginica142 6,9 3,1 5,1 2,3 virginica