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

menu