Vous êtes sur la page 1sur 5

Lendo dados

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

os nmeros so separados por novas linhas.

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"

Medidas resumo bsicas


O R possui funes mean(), median(), var(), sd(), min() e max() que calculam mdia, mediana, varincia, desvio padro, mnimo e mximo de um conjunto de valores numricos. A funo summary() j mencionada anteriormente calcula vrias destas estatsticas de uma s vez. Alguns exemplos:
> dat <- c(23, 34, 56, 55, 43, 22, 39, 50) > mean(dat) [1] 40.25 > median(dat) [1] 41 > var(dat) [1] 177.0714 > sd(dat) [1] 13.30682 > min(dat) [1] 22 > max(dat) [1] 56 > summary(dat) Min. 1st Qu. Median Mean 3rd Qu. Max. 22.00 31.25 41.00 40.25 51.25 56.00 Alm destas a funo quantile permite o clculo de quantis

(quartis, decis, percentis e

outros).

Geradores de nmeros aleatrios


O R pode gerar nmeros aleatrios (pseudo-aleatrios - estritamente falando) de um grande nmero de distribuies: uniforme, normal, binomial, poisson, gamma, chi-quadrado, etc. Os nomes das funes para gerar nmeros aleatrios iniciam-se com a letra r e so bastante intuitivos: runif, rnorm, rbinom, rpois, rgamma, rchisq etc. Junto a cada funo geradora de cada distribuio h funes para calcular probabilidade, densidade e quantis. Por exemplo, para distribuio normal temos: Gera n nmeros Densidade para o q-simo quantil pnorm(q,mean=0,sd=1) Probabilidade para o q-simo quantil qnorm(p,mean=0,sd=1) Quantil para a probabilidade p
rnorm(n,mean=0,sd=1) dnorm(q,mean=0,sd=1)

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

Uma rpida inspeo de quantis


Vamos gerar 10.000 nmeros de uma distribuio chi-quadrado e ver o quo prximos os nossos nmeros esto dos quantis tericos de 95%:
> xch <- rchisq(10000,df=2) # gerando os nmeros > qchisq(0.95,2) # econtrando o quantil terioco de 95% quantile... [1] 5.991465 > sum(xch < qchisq(.95,2))/length(xch) # qual a frao de nossos dados # que est abaixo deste valor [1] 0.9491

... o que parece be prximo de 0.95!

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.

A QUESTO : a pulverizao faz alguma diferena?


Para obter os dados clique nos links abaixo, grave os arquivos no seu diretrio de trabalho e leia os dados no R.
Medidas de chuva em nuvens pulverizadas Medidas de chuva em nuvens sam pulverizao

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:

O denominador calculado com:

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.

aqui est um desafio para voce...


Para calcular a estatstica t para os dados com transformao logartimica ... Primeiro calcule S, e ento calcule SE12, e por fim calcule t. Voce vai precisar das funes mean(), var() e length() Click aqui para obter a soluo.

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

sample estimates: mean of x mean of y 5.134187 3.990406

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!

Vous aimerez peut-être aussi