Académique Documents
Professionnel Documents
Culture Documents
Se voce tem um arquivo com nmeros pode usar a funo scan() para ler estes dados no R na forma de um vetor. Por exemplo para ler o arquivo texto file1.dat pode-se usar o comando:
> x <- scan("file1.dat")
Se os nmeros so separados por vrgulas ou espaos em branco, como no aquivo file2.dat por exemplo, isto deve ser informado funo scan() atravs do argumento sep.
> x <- scan("file2.dat",sep=",") Se o argumento sep omitido assume-se que
Pode-se ler dados na forma de caracteres mas isto deve ser informado explicitamente para o funo scan() usando o argumento what=, Veja este exemplo com o arquivo char.dat:
> c1 <- scan('chars.dat',what='') > c1 [1] "this" "is" "some"
"character" "data"
O R l cada palavra como um elemento de um vetor. Se voce quiser informar ao R que deve tratar cada linha como um elemento, ento deve-se informar funo scan() que o separador um caracter de final de linha, representado por \n:
> c2 <- scan("chars.dat",what='',sep='\n') > c2 [1] "this is some" "character data"
outros).
Alguns histogramas
Podemos examinar os resultados de funo rnorm() usando a funo hist():
> hist(rnorm(1000)) > hist(rnorm(1000,2)) > hist(rnorm(1000,2,2)) # mdia 0, d.p.=1 # mdia 2, d.p.=1 # mdia 2, d.p.=2
Outro exemplo com nmeros aleatrios provenientes da distribuio chi-quadrado com diferentes nmeros de graus de liberdade:
> hist(rchisq(1000,df=2)) > hist(rchisq(1000,5)) > hist(rchisq(1000,100)) # df argumento obrigatrio
Fazendo um teste T
Considere dados de um experimento de pulverizao de nuvens. Cientistas pulverizam nuvens com cristais chamados "Silver Iodide crystals" a fazem medidas da quantidade de chuva produzida. Depois fazem medidas sem a pulverizao das nuvens.
Lendo os dados
Podemos usar a funo scan() para ler os arquivos de dados em dois vetores:
> unseeded <- scan("unseeded") Read 26 items > seeded <- scan("seeded") Read 26 items
Inspecionando os dados
Podemos fazer um histograma para uma rpida inspeno dos dados:
> par(mfrow=c(2,1)) > hist(seeded) > hist(unseeded) get both plots on
Isto mostra o quo assimtricos so os dados. Talvez a gente possa fazer estes dados se aproximar da normal utilizando a transformao logartimica:
> hist(log(seeded)) > hist(log(unseeded))
Sim, parece bem melhor! Devemos usar a transformao logartmica nas anlises.
O teste T
Agora queremos saber se a pulverizao afeta a quantidade de chuva, isto , se um conjunto de nmeros significativamente maior ou menor que outro. O teste T utilizado para testar a igualdade das mdias de dois conjuntos de nmeros. Para isto clacula-se a estatstica t que dada pela seguinte frmula:
onde
Na equao acima e so as mdias aritmticas dos dois conjuntos de nmeros, e so as razes quadradas das varincias dos dois conjuntos, e e so os nmeros de pontos em cada conjunto.
O teste T no R
Agora temos a estatstica t calculada para estes dados. Mas como utiliz-la? Bem, podemos olhar numa tabela para saber sa a diferena entre os dois grupos significativa. Podemos tambm calcular um intervalo de confiana de 95% para diferena das mdias e ver se o intervalo exclui o valor zero. Mas a maneira mais fcil usar o R para fazer isto tudo para ns. Isto possvel porque o R j tem uma funo que faz o teste T.
> t.test(log(seeded),log(unseeded),var.equal=T) Two Sample t-test data: log(seeded) and log(unseeded) t = 2.5444, df = 50, p-value = 0.01408 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: 0.2408650 2.0466972
Note como o programa calculou o valor da estatstica t - este valor deve ser igual ao que voce calculou anteriormente em vrios passos. Uma coisa interessante nestes resultados o campo 95 percent confidence interval este nos disz que a diferena das mdias difere significativamente de zero. - o que permite dizer que a pulverizao das nuvem parece ter algum efeito!