Você está na página 1de 60

Estatstica Computacional

Funes em R

Ambiente R
O primeiro passo abrir o R. No menu do R, atualizar todos os pacotes. Quando

aparecer a opo da atualizao, optar por: Brasil-PR. Segundo passo importante: Carregar pacotes: selecione: qcc, forecast,stats, tseries, nortest e outros......, os citados so os mais importantes para podermos trabalhar sem ter que estar baixando outros pacotes. Terceiro passo atualizar novamente. Importante todas as vezes que abrir o R, dever proceder os passos citados.

Tpicos de Estatistica no R
Mostra as caracteristicas Importao dos Dados

Funes Estatsticas: Onde cada funo est

vinculada ao pacote a ser utilizado. O ambiente R, bastante menuncioso em relao aos dados, precisa-se tomar cuidado. Erros so facilmente apresentados devido aos detalhes acima citados.

Importao de Dados
Podemos utilizar a planilha eletrnica, indiferente:

BrOffice ou Microsoft, o resultado ser o mesmo. Os dados podem ser lanados na planilha normalmente, em forma de tabela de dados, com valores nmericos ou alfanumericos (strings). Depois de lanados, vai ao menu salvar como: Salva-se a planilha no formato .CSV (valores separados por vrgula).

Importando os dados para o R


Pode-se

usar o comando read.csv para armazenar os dados desse arquivo em um objeto do R chamado dados. Da seguinte forma: sintaxe:
dados <- read.csv("caminho_e_nome_do_arquivo.csv", opes)

O ambiente R, carregar os dados da planilha e

os reconhecer. Alguns exemplos iremos utilizar na aula de hoje, para melhor esclarecimento.

Exemplos da Funo ts()


require(graphics) ts(1:10, frequency = 4, start = c(1959, 2)) # 2nd Quarter of 1959 print( ts(1:10, frequency = 7, start = c(12, 2)), calendar = TRUE) # print.ts(.) ## Using July 1954 as start date: gnp <- ts(cumsum(1 + round(rnorm(100), 2)), start = c(1954, 7), frequency = 12) plot(gnp) # using 'plot.ts' for time-series plot

Cont... do exemplo anterior


## Multivariate z <- ts(matrix(rnorm(300), 100, 3), start=c(1961, 1), frequency=12) > class(z) > plot(z) > plot(z, plot.type="single", lty=1:3) ## A phase plot: > plot(nhtemp, c(nhtemp[-1], NA), cex = .8, col="blue", main = "Lag plot of New Haven temperatures")

Cont.... do exemplo
## a clearer way to do this would be ## Not run: > plot(nhtemp, lag(nhtemp, 1), cex = .8, col="blue", > main = "Lag plot of New Haven temperatures") ## End(Not run)

Correlao
Iremos trabalhar o coeficiente de correlao de

Pearson. No h grandes segredos nestas funes. Elas esto no pacote STATS, includo na instalao usual do R. Procurando tornar mais fcil a compreenso, iremos mostrar como utilizar o R atravs de um exemplo prtico.

Exemplo:
Vamos

calcular o coeficiente de correlao entre a dureza de um plstico medida em unidades de Brineel e o tempo de secagem. O tamanho da amostra de 16 pecas que vem de um lote de 2000.

(Tabela 01). Os dados dessa tabela

sero importados para o ambiente R.

Como trabalhar no R
Ler os dados:

>dados=read.csv('C:/caminho/nome.csv',header=T,sep=';', dec=',')
Visualizar os dados:

> dados
Uma vez que o conjunto de dados foi carregado , para

os clculo estatsticos, muitas vezes necessrio acessar as variveis separadamente.


Existem duas opes:

Funo attach()
> attach(dados) >X [1] 16 16 16 16 24 24 24 24 32 32 32 32 40 40 40 40
Obs.: Vejam ento que o R mostra

somente os valores de X (minutos de secagem).

O mesmo se obtm:
Escrevendo

nome do conjunto de dados, seguido do $, e ento a varivel.

>dados$X >X [1] 16 16 16 16 24 24 24 24 32 32 32 32 40 40 40 40

Plotar o Grfico:
>plot(x,y)
Onde x e y so vetores:
Vocs podem verificar uma infinidade de

funcionalidades para esta funo na ajuda do R. > help (plot) ou > ?plot

Elaborar o Grfico:
Fazendo, ento,o grfico para os nossos

dados: >plot(dados$X,dados$Y,main="Grafico de disperso",xlab="Minutos de secagem",ylab="dureza em Brinell")

Grfico

Salvar como:
possvel copiar ou salvar o grfico em diversos formatos:

Coeficiente de correlao linear


>cor(x, y = NULL, use = "all.obs",method = c("pearson", "kendall", "spearman"))
onde: x um vetor ou matriz

y um vetor ou matriz com as mesmas

dimenses de x

Metdo de Pearson
possvel escolher o mtodo, de acordo com o

problema. Para o nosso exemplo utilizaremos Pearson. Veja ento como ficam sintaxe e resultados do exemplo: > cor(dados) X Y X 1.0000000 0.9864599 Y 0.9864599 1.0000000

>cor(dados$X,dados$Y) [1] 0.9864599

Testar o Coeficiente de Correlao


O R apresenta a seguinte funo:

> cor.test(x, y,alternative = c("two.sided", "less", "greater"), method = c("pearson", "kendall", "spearman"), exact = NULL, conf.level = 0.95, ...)

Teste unilateral ou bilateral


Vejam que possvel efetuar um teste

unilateral ou bilateral, escolher o mtodo e grau de confiana. O default considera um teste bilateral, Pearson e 0,95. Seguindo ento com o exemplo: > cor.test(dados$X,dados$Y) Observem o resultado no console....

Resultados podem ser salvos:


Os resultados podem ser salvos em .txt ou

copiados facilmente para o editor de texto de sua preferncia. Como complementao colocamos que possvel (e recomendvel) escrever uma rotina no R para os clculos desejados. Deste modo vocs podem rodar como um programa e salvar para futuras utilizaes.

Vejam como fica:

Observem que:
Na figura anterior, vejam como abrir uma janela

(R Editor) para a edio do texto. As funes podem ser escritas nesta janela (prxima figura) e ento possvel rodar tudo ou apenas uma seleo de funes. Na figura seguinte, aps a prxima, observem que: O script pode ser salvo em .txt ou em .R.

Editando Script

Executando Script

PACOTE FORECAST

Funes do exemplo

importante lembrar que como estamos trabalhando com sries temporais vamos transformar os dados, geralmente importados de planilhas, em um objeto que o R interprete como uma srie temporal. O comando ts ( ) permite isto. A sintaxe est descrita a seguir: ts(data = NA, start = 1, end = numeric(0), frequency = 1,deltat = 1).

Significado das Funes Utilizadas

As funes:
A funo as.ts() similar a funo ts() e,

para testar se um objeto uma srie temporal pode-se utilizar is.ts(). Porm, primeiramente vamos fazer com que o R possa ler os dados: >dados=read.csv('C:/caminho/nome.csv' ,header=T,sep=';',dec=',').

Observaes:
importante nomear o conjunto de dados.

Indique o caminho para o arquivo. header

= T significa que a primeira linha corresponde aos nomes das variveis. sep = ; indica que os campos foram separados utilizando ponto e vrgula. dec = , denota que para separar os decimais foi usada vrgula.

Exemplo 1
Vamos transformar os dados da produo de

energia eltrica em um objeto que corresponde a uma srie temporal com freqncia igual a 1 (anual). O vetor com os dados tem o nome de dados e iremos chamar a srie de dados.ts. dados.ts=ts(dados, start=1970,frequency=1)

Funo tsdisplay
Uma vez importados os dados vamos construir um

grfico da srie de dados juntamente com os grficos de autocorrelao e autocorrelao parcial dos dados. Isto possvel com a funo tsdisplay (). > tsdisplay(x, plot.type = "partial", points = TRUE, ci.type = "white", lag.max = round(10 * log10(length(x))), na.action = na.interp, main = NULL, ylab = "", xlab = "", pch = 1, cex = 0.5, ...)

Observaes:

Exemplo 2:
Aplicando aos dados da tabela 1, verifique que

o R retorna o grfico da srie original e os grficos acf e pacf (Figura 1). > tsdisplay(dados)
Os grficos plotados ficaram da seguinte forma:

Grficos Plotados

Modelo ets
possvel, com este pacote, aproximar um

modelo de suavizao exponencial. Isto feito com auxlio da funo ets ( ). Como o procedimento pode ser automtico, o R mesmo ir avaliar o nvel, a tendncia e sazonalidade para escolher o melhor modelo.

A sintaxe :
> ets (y, model="ZZZ", damped=NULL, alpha=NULL, beta=NULL, gamma=NULL, phi=NULL,additive.only=FALSE, lower=c(rep(0.01,3), 0.8), upper=c(rep(0.99,3),0.98),opt.crit=c("lik","amse ","mse","sigma"), nmse=3,bounds=c("both","usual","admissible"), ic=c("aic","aicc","bic"))

Observaes:

Observaes:

Exemplo 3:
Vamos deixar que o R escolha o modelo de suavizao

exponencial para os dados da produo de energia. > modelo=ets(dados.ts) Obs: modelo o nome que escolhemos para o objeto do R que corresponde ao modelo de suavizao exponencial. Ao digitar modelo o R retorna na tela o tipo de modelo, os parmetros (smoothing parameters), os valores iniciais(initial states), o erro padro (sigma) e os critrios de informao (AIC, AICc e BIC).

Comando da funo ets


> ets(M,A,N)

M = erro multiplicativo A = tendncia aditiva N = sem sazonalidade

possvel escolher o modelo a ser ajustado. Por exemplo

ets (y,model=ANN) corresponde a um modelo com erro aditivo sem tendncia, nem sazonalidade, ou seja, a suavizao exponencial simples. Do mesmo modo ets (y,model=AAM) denota o mtodo de Holt-Winters Multiplicativo com erro aditivo.

Verificao do modelo
Uma vez escolhido o mtodo, recomenda-se calcular

algumas medidas dos erros de previso. A funo accuracy ( ) retorna as usuais medidas dos erros de previso: ME (erro mdio), RMSE (erro quadrtico mdio), MAE (erro absoluto mdio), MPE (erro mdio percetual), MAPE (erro absoluto percentual mdio) e MASE (raiz do erro absoluto mdio). O R permite calcular estas medidas dentro e fora da amostra.

A sintaxe a ser utilizada:


> accuracy (objeto , x, test)

Exemplo 4:
Em seguida so calculadas com o R as medidas

dos erros para os dados da produo mensal de energia eltrica. > accuracy(modelo) Vocs percebero que apresentar os resultados, para: ME - RMSE MAE - MPE - MAPE MASE ( os resultados sero numricos)

Cont.. do exemplo 4
Para complementar importante analisar os

resduos do modelo quanto normalidade e tambm verificar se estes tem autocorrelao. Os resduos do modelo podem ser obtidos com os seguintes comandos: > residuals (nome do objeto) ou > nome do objeto$residuals O grfico de autocorrelao dos resduos plotado com a funo acf().

Exemplo 6:
Para o modelo ajustado aos dados da produo

de energia so apresentados os resultados do R para a anlise dos resduos. Em primeiro lugar os resduos, um histograma destes, o teste JarqueBera e o grfico de autocorrelao. > modelo$residuals

Observem que:
Com os comandos acima um vetor com

os resduos do modelo obtido. O histograma e o grfico de autocorrelao dos resduos pode ser visualizado na figura 2. > hist(modelo$residuals) > acf(modelo$residuals)

Grficos:

Aplicao do teste JarqueBera


Em seguida a aplicao do teste Jarque-

Bera, do pacote tseries, aos resduos do modelo.

> jarque.bera.test(modelo$residuals) > data: modelo$residuals > X-squared = 4.1788, df = 2, p-value = 0.1238

Previses:
Para

fazer previses, a funo forecast(), mesmo nome do pacote deve ser utilizada. A sintaxe bem simples:

>forecast(objeto, fan=FALSE, ...)

h,

level=c(80,95),

Observaes:

Sendo assim:
Deste modo podem ser feitas previses com os

modelos ajustados com auxlio do pacote. Se, no lugar do objeto que corresponde ao modelo, estiver uma srie temporal, a funo automaticamente ajusta um modelo ETS. O R retorna as estimativas pontuais de previso para o nmero de perodos de h e os respectivos intervalos de confiana.

Exemplo 7:
Clculo com o R das previses pontuais e

intervalos de 80 e 95% de confiana para os dados da produo de energia eltrica .

> prev=forecast(modelo,h=5) prev


Com esses comandos aparecer no console os

dados.

Funo plot()
> plot(objeto)
O

objeto corresponde as previses obtidas com o comando forecast.

Outro grfico de interesse o que traz a

srie original com os valores preditos.

Comando seqplot.ts()
>seqplot.ts(srie original,dados ajustados)
Os dados ajustados so obtidos da

mesma forma que os resduos: > nome do modelo$fitted > fitted(nome do modelo) ou

Exemplo 8:
Para os dados da produo de energia

foram constridos os grficos com as sries reais e ajustadas e das previses (figuras 3 e 4).

>plot(prev)
>seqplot.ts(dados.ts,fitted(modelo))

Grfico Figura 3

Grfico Figura 4:

Você também pode gostar