xlsreadwrite

Transcrição

xlsreadwrite
Mini - Curso
Estatística em Hidrologia
Software
aplicado
a recursos hídricos
Fernanda Valente
Setembro de 2011
O que é o R?
 É um conjunto integrado de ferramentas
computacionais que permitem a manipulação e análise
de dados, o cálculo numérico e a produção de gráficos.
 É uma linguagem de programação simples (uma
variante da linguagem S).
 É uma linguagem interpretada:
– os comandos são imediatamente executados.
 É uma linguagem orientada por objectos:
– os dados manipulados são armazenados na memória activa
do computador na forma de objectos, que têm um nome e
aos quais se podem aplicar acções.
2
Instalar o R
 O R é uma aplicação de distribuição gratuita
e de código público (http://cran.r-project.org/),
existindo versões já compiladas para execução nos
principais sistemas operativos (Windows, Linux e
Macintosh).
 Depois de fazer o download da versão adequada ao
sistema operativo do computador (por ex. R-2.12.2win32.exe, para o Windows), para instalar o R basta
executar esse ficheiro.
3
Iniciar uma sessão de R
 Criar na área de trabalho uma nova pasta (por
exemplo, CursoR) onde irão ser guardados os
ficheiros de dados – pasta de trabalho.
 Iniciar o R:
Start → All Programs → R → R 2.12.1
(em alternativa, pode-se criar um atalho no desktop e alterar
as suas propriedades de modo a iniciar a aplicação na
pasta de trabalho)
4
RGui (Graphical user interface)
 O R funciona fundamentalmente no modo “pergunta-
resposta”:
– Os comandos (frases que se escrevem numa certa sintaxe)
introduzem-se a seguir à prompt ( > ) e são executados após
pressionar Enter ( )
 Edição de comandos:
– Seleccionar comandos executados anteriormente: ↑ ou ↓
– Percorrer a linha de comandos: ← ou →
– Colocar o cursor no início / fim da linha de comandos:
Home / End
 Para terminar o R:
5
– Executar o comando q() ou fechar a janela da aplicação.
Comandos elementares
 Expressão - o resultado é apresentado no visor e não é
registado em memória.
> 2+3/4*7^2
[1] 38.75
> exp(-2)/log(sqrt(2))
[1] 0.3904951
 Atribuição – o resultado da expressão é atribuído à variável e
não é apresentado no visor.
> x
> x
[1]
> x
> x
[1]
<- 2
# <- é o operador de atribuição
2
<- 2+3/4*7^2
38.75
6
Designações das variáveis
 Os nomes das variáveis podem ser uma
combinação de letras (maiúsculas são diferentes de
minúsculas), algarismos e pontos. O 1º caracter
deve ser uma letra.
 Alguns nomes são utilizados pelo sistema, pelo que
devem ser evitados (por ex., c, q, t, C, D,
F, I, T, diff, df, pt).
Exemplo: aula1.ex
7
Ajuda
 Para obter informação sobre uma função específica, por exemplo a
função mean(), pode utilizar-se qualquer uma das opções:
>
>
>
>
help(mean)
help("mean")
?mean
?"+" # Nalguns casos é obrigatório utilizar aspas
 Para pesquisar uma sequência de caracteres no help do R o comando é
help.search(), por exemplo
> help.search("standard desviation")
> ??"standard desviation"
 Para navegar nas páginas de ajuda do R utilizando um browser de
internet o comando é
> help.start()
Nota: qualquer um dos comandos anteriores pode também ser executado
através do menu Help.
8
Objectos
 As entidades que o R cria e manipula e que ficam
guardadas na memória do computador.
– Para listar os objectos disponíveis
> ls()
– Para mostrar alguma informação sobre os objectos:
> ls.str()
– Para remover objectos:
> rm(objecto1, objecto2,...)
– Para remover todos os objectos:
> rm(list=ls())
9
Workspace
 O conjunto de todos os objectos disponíveis numa
sessão.
 Pode ser guardado num ficheiro com vista à sua
utilização em futuras sessões de R.
menu File → Save Workspace...
– No final de cada sessão é perguntado ao utilizador se
quer guardar o workspace. Caso a resposta seja
afirmativa, todos os objectos disponíveis em memória
são guardados no ficheiro “.RData”, na pasta de trabalho
em uso, podendo ser carregados na próxima sessão de R.
 Podem ser guardados só alguns dos objectos
> save(x,file="Exemplo.RData”)
10
Pasta de trabalho (Working Directory)
 Localização da pasta de trabalho
> getwd()
 Especificação da pasta de trabalho
> setwd("C:/Users/fernanda/Documents/CursoR")
ou
menu File → Change dir...
 Importar um ficheiro de objectos
> load("Exemplo.RData”)
ou
menu File → Load Workspace...
11
Exercício 1
a) Importar os ficheiros de objectos
DadosMeteo.RData e Precipitacao.RData
b) Ver todos os objectos em memória (com e sem
informação adicional)
Nota:
1 - Os objectos precip, temp e vento contêm dados diários para o ano de
2006 de precipitação (mm), temperatura média do ar (ºC) e velocidade média
do vento (ms-1), respectivamente, registados em Évora (Portugal).
2 – O objecto pg.Jan contém valores totais de precipitação (mm)
registados em Lisboa e no Porto no mês de Janeiro, no período 1980 - 1999.
3 – O objecto pg.PGarcia contém valores totais anuais de precipitação
(mm) registados em Penha Garcia, Castelo Branco (Portugal), entre 1910 e
12
1994.
Scripts em R
 Um script em R é um ficheiro de texto com a extensão “.R”,
que contém uma sequência de comandos e que pode ser
executado com o comando source("ficheiro") ou
através do menu File → Source R code...
 Tipicamente, um script é útil quando se pretende repetir as
mesmas tarefas várias vezes ou quando se quer divulgar a
outros os comandos necessários para resolver um dado
problema.
 Um modo simples de criar um script em R é abrir uma
janela do editor de R (menu File → New script), ir
escrevendo os diversos comandos e, no final, guardar o
ficheiro de texto (menu File → Save). Caso se pretenda ver
ou alterar um programa já existente
13
menu File → Open script...
Alguns objectos
–
–
–
–
–
–
–
vector
factor
matrix
list
data Frame
ts
function
14
Vector
 É uma colecção ordenada de elementos do mesmo
tipo (valores numéricos, lógicos, alfanuméricos, ...).
 Uma das maneiras de criar um vector no R é através
da função c().
> x <- c(5.4, -3.7, 11.2, 0.78, 21.6)
> x
[1] 5.40 -3.70 11.20 0.78 21.60
> y <- c(FALSE, TRUE, TRUE, TRUE, FALSE)
> y
[1] FALSE TRUE TRUE TRUE FALSE
> nomes <- c("Ana","Paulo","Zé")
> nomes
[1] "Ana"
"Paulo" "Zé"
15
Vector
 Um vector pode conter os símbolos especiais NA e
NaN, que designam um valor desconhecido e um
valor não definido, respectivamente.
> y <- c(NA, 53, 31, 15, 62)
> sqrt(c(-1,1,2))
[1]
NaN 1.000000 1.414214
Warning message:
NaNs produced in: sqrt(c(-1, 1, 2))
16
Vector
 c() é a função concatenação. Os argumentos desta
função podem ser eles próprios vectores, pelo que
c(v1,v2) devolve a concatenação dos vectores
v1 e v2. Esta função pode ter um qualquer número
de argumentos.
> c(x,0,x)
[1] 5.40 -3.70 11.20 0.78 21.60 0.00
5.40 -3.70 11.20 0.78 21.60
> nomes <- c(nomes,"Maria")
> nomes
[1] "Ana"
"Paulo" "Zé"
"Maria" 17
Geração de sequências regulares
 O R permite gerar sequências de valores numéricos
>
>
>
>
>
>
>
1:15
# define o vector c(1,2,...,14,15)
15:1
# define o vector c(15,14,...,2,1)
2*1:15 # define o vector c(2,4,...,28,30)
(2*1):15 # define o vector c(2,3,...,14,15)
seq(1,15)
seq(to=15,from=1)
seq(-5,-1,by=0.5)
[1] -5.0 -4.5 -4.0 -3.5 -3.0 -2.5 -2.0 -1.5 -1.0
>
>
>
>
seq(length=9, from=-5, by=0.5)
rep(1:3,2) # define o vector c(1,2,3,1,2,3)
rep(1:3,each=2) # é o vector c(1,1,2,2,3,3)
rep(1:3,1:3) # é o vector c(1,2,2,3,3,3)18
Vector numérico (operações aritméticas)
 As operações entre vectores são realizadas
componente a componente.
 Alguns operadores aritméticos: +, -, *, /, ^
> v1 <- c(5,7)
> v2 <- 10:13
> 1/v1
[1] 0.2000000 0.1428571
> v1+v2 # o vector de menor dimensão é repetido
> v1*v2 # (total ou parcialmente) até ficar com o
mesmo número de elementos do maior
> v1*4 # cada componente de v1 é multiplicada por 4
19
Vector numérico (algumas funções)
 log,exp,sin,cos,tan,atan,sqrt,abs, ...
 length(x)devolve o número de elementos do vector x
 sum(x)devolve a soma dos elementos do vector x
 prod(x)devolve o produto dos elementos do vector x
 cumsum(x)devolve um vector cujos elementos são a soma
acumulada dos elementos do vector x
 cumprod(x)devolve um vector cujos elementos são o
produto acumulado dos elementos do vector x
 sort(x)devolve um vector com os elementos do vector x
ordenados por ordem crescente (decrescente com o
argumento decreasing=TRUE)
n
 choose(n,k)devolve o número de combinações Ck
20
Vector lógico
 Os resultados das operações que envolvem os
operadores relacionais:
<, <=, >, >=, ==, !=
são valores lógicos.
> 2==sqrt(4)
[1] TRUE
> 2!=sqrt(4)
[1] FALSE
 Quando aplicados a vectores, produzem vectores
lógicos.
> x
[1] 5.40 -3.70 11.20 0.78 21.60
> x>11
[1] FALSE FALSE TRUE FALSE TRUE
21
Vector lógico (operações)
 Os operadores lógicos conjunção, disjunção e
negação são, respectivamente:
&
> x
[1] 5.40 -3.70
> x>13
[1] FALSE FALSE
> x<5
[1] FALSE TRUE
> x>13 | x<5
[1] FALSE TRUE
|
11.20
!
0.78 21.60
FALSE FALSE
FALSE
TRUE
TRUE FALSE
FALSE TRUE
TRUE
22
Vector lógico (função is.na)
 A função is.na(x) devolve um vector lógico em
que cada elemento é TRUE se o elemento homólogo
em x é do tipo NA ou NaN, e ou FALSE caso
contrário.
> z
[1] 5.4 -3.7 11.2
NA 21.6
> is.na(sqrt(z))
[1] FALSE TRUE FALSE TRUE FALSE
Warning message:
NaNs produced in: sqrt(z)
> !is.na(z)
[1] TRUE TRUE TRUE FALSE TRUE
23
Selecção de componentes de vectores
 Cada elemento de um vector pode ser seleccionado indicando
a sua posição entre parêntesis rectos a seguir ao nome do
vector:
> letters
> letters[3]
[1] "c"
 Pode também criar-se um novo vector constituído por alguns
dos elementos do vector indicando as suas posições num
vector de índices colocado entre parêntesis rectos:
> letters[c(1,2,4)]
[1] "a" "b" "d"
> letters[-(1:20)] # devolve os elementos de letters
que não estão nas posições
indicadas
[1] "u" "v" "w" "x" "y" "z"
24
Selecção de componentes de vectores (cont.)
 Pode também seleccionar-se elementos de um vector
escrevendo uma condição entre parêntesis rectos a seguir ao
nome do vector.
> x
[1] 5.40 -3.70 11.20 0.78 21.60
> x[x>0]
[1] 5.40 11.20 0.78 21.60
> x[x>0 & x<10]
[1] 5.40 0.78
> doy <- 1:365
> doy[precip>5] # equivalente a which(precip>5)
[1] 80 85 87 92 131 136 ...
> temp[precip>0 & temp<5]
[1] 38 60
25
Exercício 2
O ficheiro “serrasPortugal.RData” contém os objectos
serras.altitude e serras.nome com dados da
altitude (em m) e do nome (pela mesma ordem),
respectivamente, das principais serras de Portugal Continental
(Fonte: Instituto Nacional de Estatística, Portugal).
a) Importe este ficheiro de objectos.
b) Indique o número de serras de Portugal Continental
existentes nestes dados.
c) Quais as serras que têm uma altitude inferior a 500 m?
d) Determine o nome e o número das serras que têm uma
altitude entre os 800 e os 1000 m, inclusivé.
e) Determine a altitude da Serra da Estrela (Estrela).
26
Revisões de Estatística
 Estatística - ciência que se ocupa da recolha,
organização e análise de informação, com a
finalidade de inferir de um conjunto limitado de
informação para o todo e eventualmente prever a
evolução futura de um fenómeno.
 A estatística deve ser considerada um instrumento,
uma ajuda à compreensão dos fenómenos, e nunca
deve substituir a necessária e importante reflexão
sobre o problema em estudo.
27
Dados estatísticos
 Os dados (e respectiva variável) podem ser de
natureza
– qualitativa
• nominal (a ordem das categorias não tem significado)
• ordinal (há uma ordenação natural das categorias)
– quantitativa
• discreta (provêm de contagens)
• contínua (provêm de medições)
 Exemplos:
– precipitação diária numa estação meteorológica
– tipo de ocupação do solo numa bacia hidrográfica
28
Análise exploratória
 A análise inicial de dados univariados tem como
principais objectivos:
– a exploração dos dados para descobrir/identificar
aspectos ou padrões de maior interesse;
– a representação dos dados de modo a destacar esses
aspectos ou padrões:
• condensar os dados observados sob a forma de quadros;
• representar graficamente os dados;
• calcular indicadores numéricos de localização e de dispersão.
 Ao explorar dados bivariados o objectivo é:
– o estudo da variação conjunta das variáveis, procurando
pôr em evidencia “relações” eventualmente existentes
entre elas, utilizando
• indicadores numéricos;
• análise gráfica.
29
Indicadores numéricos no R
 mean(x)devolve a média dos elementos do vector x
 median(x)devolve a mediana dos elementos do vector
x
 quantile(x,probs=p)devolve o quantil de ordem p
dos elementos do vector x; por omissão p=seq(0, 1,
0.25), isto é, devolve os extremos e os quartis de x
 max(x)/min(x)devolve o máximo/mínimo dos
elementos do vector x
 range(x) devolve o vector c(min(x),max(x))
 IQR(x) devolve a amplitude inter-quartil dos elementos
do vector x
30
Indicadores numéricos no R
 var(x) devolve a variância dos elementos do vector x; é
igual a sum((x-mean(x))^2)/(length(x)-1)
 sd(x)devolve o desvio padrão dos elementos do vector
x; é igual a sqrt(var(x))
 summary(x) devolve os extremos, os quartis e a média
do vector x
 cov(x,y)devolve a covariância entre x e y
 cor(x,y)devolve o coeficiente de correlação (de
Pearson) de x e y
 cor(x,y, method="spearman")devolve o
coeficiente de correlação de Spearman de x e y
31
Exercício 3
1. Considere os vectores precip, temp e vento.
a) Determine para cada vector o número total de elementos.
b) Determine indicadores numéricos de localização e de dispersão
para estes dados meteorológicos.
c) Calcule o coeficiente de variação para cada um dos conjuntos de
dados.
d) Calcular o coeficiente de assimetria para cada um dos conjuntos
de dados.
e) Determine a precipitação anual medida nesta estação
meteorológica.
Nota: coeficiente de variação: C v =
s
̄x
coeficiente de assimetria: C s=
n ∑ ( x i − ̄x )3
(n−1)(n−2) s
3
32
Nota: Funções e valores NA
 Muitas das funções estatísticas anteriores podem ser
usadas com um argumento adicional, na seguinte forma
função(x, na.rm=FALSE)
em que na.rm é uma variável lógica que indica se os
valores desconhecidos devem ser ou não ignorados.
Caso o vector x inclua elementos NA,
• se na.rm=FALSE (o que ocorre por omissão) a função
devolve NA ou uma mensagem de erro,
• se na.rm=TRUE os valores NA são ignorados.
> y
[1] NA 53 31 15 62
> mean(y)
> mean(y,na.rm=TRUE)
33
Factor
 Um factor é um vector de categorias. É utilizado para dados de
natureza qualitativa.
> nomes
[1] "Ana"
> sexo <> sexo <> sexo
[1] M H H
Levels: H
"Paulo" "Zé"
"Maria"
c("M","H","H","M")
factor(sexo)
M
M
 Os níveis (categorias) de um factor podem ser visualizados e
modificados através do atributo levels.
> levels(sexo) <- c("Male","Female")
> sexo
[1] Female Male
Male
Female
Levels: Male Female
34
Matrix
 Uma matrix é uma colecção de dados, todos do
mesmo tipo, referenciados por dois índices. É uma
generalização para duas dimensões de um vector.
 Quando a dimensão é superior a dois, a colecção é
designada array. Uma matrix é um array de dimensão
2.
 Uma matriz é definida pelo número de linhas (n),
número de colunas (m) e um conjunto de (n×m)
valores.
35
Matrix (cont.)
 A função matrix()serve para criar matrizes.
> M <- matrix(1:12,nrow=3,ncol=4)
> M
[,1] [,2] [,3] [,4]
[1,]
1
4
7
10
[2,]
2
5
8
11
[3,]
3
6
9
12
 A opção byrow=TRUE faz com que os elementos sejam
dispostos por linha.
> M <- matrix(1:12,3,4,byrow=TRUE)
36
Matrix (cont.)
 Um objecto do tipo matrix tem associado o atributo
dim que indica a sua dimensão, i.e., nº de linhas e nº de
colunas.
> dim(M) # ver a dimensão de M
[1] 3 4
Um vector pode ser transformado numa matriz.
> A <- c(3,2,-4,0,-1,8)
# A é um vector
> dim(A) <- c(3,2) # transforma A numa
matriz com 3 linhas e 2
colunas
> A
[,1] [,2]
[1,]
3
0
[2,]
2
-1
37
[3,]
-4
8
Matrix (cont.)
 Uma matriz pode ser transformada num vector.
> A
[,1] [,2]
[1,]
3
0
[2,]
2
-1
[3,]
-4
8
> as.vector(A) # devolve um vector cujos
elementos são os da
matriz
[1]
3
2 -4
0 -1
8
38
Matrix (cont.)
 Uma matriz pode ser criada por concatenação de vectores
e/ou matrizes:
•
A função cbind faz a concatenação dos objectos por
coluna
> u <- 1:3 ; v <- 4:6
> U <- cbind(u,v)
•
A função rbind faz a concatenação dos objectos por
linha
> V <- rbind(u,v)
39
Matrix (indexação e selecção de componentes)
 M[i,j] é o elemento de M que está na linha i e na coluna j
> M[3,1]
 M[i,] é a linha i e M[,j] é a coluna j da matriz M. Estes
objectos são do tipo vector
> M[2,]
> M[,1]
 Para seleccionar parte de uma linha/coluna indicam-se os índices
correspondentes
> M[c(1,3),1]
# igual a M[-2,1]
 Se a selecção incluir mais do que uma linha e mais do que uma
coluna, o resultado é uma submatriz
> M[2:3,c(1,3,4)]
40
List
 Uma lista é uma colecção ordenada de objectos, que podem ser
de tipos diferentes (vectores numéricos, vectores lógicos,
matrizes, listas, funções, ...).
 Chama-se componente a cada um dos objectos da lista. As
componentes são numeradas e podem ter um nome associado.
>
+
+
+
uma.lista <-list(um.vector=1:10,
uma.palavra="Olá",
uma.matriz=matrix(1:20,ncol=5),
outra.lista=list(a=5,b=factor(c("a","b"))))
 Muitas funções no R devolvem uma lista, ou seja, um conjunto
de resultados de tipo e dimensão distintos.
41
List (selecção de componentes)
 As componentes de uma lista são indexadas e
podem ser referidas pelo seu índice, utilizando
parêntesis rectos duplos; se tiverem nome, também
podem ser referidas pelo nome.
> uma.lista[[2]]
> uma.lista$uma.palavra
42
Data frame
 Uma data frame é um caso especial de lista em que
as componentes têm todas o mesmo nº de
elementos.
 É um quadro de dados em que as colunas podem ser
de tipos diferentes.
> meteo.Evora <-data.frame(ano=rep(2006,
+ 365), dia=doy, vento,temperatura=temp,
+ precipitacao=precip)
> pb.Jan
43
Data frame (selecção de componentes)
 Os elementos de uma data frame podem ser
referidos indicando a linha e a coluna:
> meteo.Evora[3,1]
> meteo.Evora[,2]
 A notação nomeDataFrame$nomeComponente
(como numa list) também pode ser usada:
> meteo.Evora$dia
> meteo.Evora[[2]]
44
Data frame (função attach)
 As consultas a data frames podem ser simplificadas
utilizando a função attach()
 A função attach() coloca o nome da data frame no
search path (o que permite aceder directamente às colunas
de uma data frame, sem necessidade de referir o seu nome).
> dia
Error: object 'dia' not found
> attach(meteo.Evora)
> dia
[1] [1]
1
2
3
4
5 …
> search() # o search path
> detach(meteo.Evora)
> dia
Error: object 'dia' not found
45
Leitura de ficheiros
 Uma tabela de valores, registada num ficheiro de texto (ASCII),
pode ser atribuída a uma data frame, através da função
read.table(ficheiro,header=FALSE,sep="",
dec = ".",row.names, col.names, as.is = FALSE,
na.strings = "NA")
em que,
ficheiro é o nome do ficheiro de dados (entre aspas); se este não se
encontrar na pasta de trabalho, é necessário indicar o endereço
(utilizando / ou \\ como separador de pastas);
header é uma variável lógica que indica se o ficheiro tem ou não os
nomes das variáveis na primeira linha. Por omissão o valor é FALSE;
sep é o caracter que separa os valores em cada linha; por omissão é ""
que corresponde a um ou mais espaços em branco;
46
Leitura de ficheiros (cont.)
dec é o caracter utilizado como separador decimal. Por omissão é
o ponto;
row.names é um vector com os nomes das linhas. Por omissão
1,2,3,...;
col.names é um vector com os nomes das colunas. Por omissão
V1,V2,V3,...;
as.is é uma variável lógica que controla a conversão das
variáveis alfanuméricas em factores. Se o seu valor é TRUE a
leitura mantém o tipo original dos dados;
na.strings é o valor usado para os dados desconhecidos no
ficheiro e que será convertido em NA.
47
Leitura de ficheiros (exemplo)
 O ficheiro de texto (com valores separados por vírgulas e com
cabeçalho) “EstacMeteo.csv” contem dados referentes às
estações meteorológicas automáticas do Instituto de
Meteorologia de Portugal.
Criar a data frame estac.meteo com o conteúdo deste
ficheiro.
> estac.meteo <- read.table("EstacMeteo.csv",
+ header=TRUE, as.is=TRUE,sep=",")
> estac.meteo <- read.csv("EstacMeteo.csv",
+ as.is=TRUE)
48
Importar dados de uma folha de cálculo
 Há packages que têm funções para importar e exportar
dados de folhas de cálculo (por exemplo, xlsReadWrite,
ROpenOffice).
 Em alternativa, pode-se:
– copiar os dados a importar para uma nova folha de
cálculo,
deste modo evitam-se problemas com a importação de colunas e
linhas desnecessárias
– salvar essa folha como ficheiro de texto separado por
tabs (.txt) ou por vírgulas (.csv), com ou sem cabeçalho,
note que o separador utilizado pode ser a vírgula ou o ponto e
vírgula, dependendo da configuração regional do Windows
– ler o ficheiro no R com a função read.table (ou
read.csv)
49
Escrita em ficheiros
 Para escrever num ficheiro o conteúdo de uma data
frame ou de uma matriz usa-se a função
write.table(x,file="",quote=TRUE,sep=" ",
na="NA",dec=".",row.names=TRUE,col.names=TRUE)
em que,
x é o nome do objecto a guardar;
file é o nome do ficheiro, incluindo o caminho de pastas;
quote é uma variável lógica que indica se as variáveis
alfanuméricas são ou não escritas entre aspas;
sep é o caracter que separa os valores em cada linha; por
omissão é um espaço em branco;
50
Escrita em ficheiros (cont.)
na é a representação no ficheiro dos NA’s de x;
dec é o caracter utilizado como separador decimal. Por omissão
é o ponto;
row.names , col.names ou são variáveis lógicas que
indicam se o ficheiro vai ou não conter os nomes das
linhas/colunas de x, ou são vectores alfanuméricos com os
nomes a atribuir às linhas/colunas no ficheiro.
51
Escrita em ficheiros (exemplo)
 Guardar no ficheiro “meteoEvora.txt” a data frame
meteoEvora, utilizando como separador de campos o espaço
em branco.
> write.table(meteo.Evora,"meteoEvora.txt",
+ row.names=FALSE)
 Guardar no ficheiro “meteoEvora.csv” a data frame
meteoEvora, utilizando como separador de campos a vírgula
> write.table(meteo.Evora,"meteoEvora.csv",
+ row.names=FALSE, sep=",")
> write.csv(meteo.Evora,"meteoEvora.csv",
+ row.names=FALSE)
52
Ler/Escrever dados de/em outros softwares
 No package foreign, há funções para importar e
exportar dados em formato binário de Minitab, S, SAS,
SPSS, Stata,Systat, ….
 É também possível ler/escrever em Bases de Dados.
Para mais informações consultar o manual
“R Data Import/Export”:
menu Help → Manuals (in PDF) → R Data Import/Export
53
Gráficos
 O R permite construir uma grande variedade de gráficos:
> demo(graphics)
> demo(persp)
 Os comandos para criar gráficos dividem-se
fundamentalmente em dois grupos:
– funções gráficas de alto nível (que permitem criar um
novo gráfico);
– funções gráficas de baixo nível (que permitem
acrescentar informação a um gráfico existente).
 A função par permite ver e modificar uma lista de
parâmetros gráficos.
> par() # devolve a lista dos valores dos parâmetros
> ?par # informação sobre a função par
54
Função gráfica: plot
 plot(x), com x um vector numérico, produz um diagrama dos
valores de x versus o seu índice:
> plot(temp)
 plot(x,y), com x e y vectores numéricos, produz um diagrama
>
>
>
>
de pontos de y versus x:
attach(pg.Jan)
plot(Lisboa,Porto)
attach(estac.meteo)
plot(-Longitude,Latitude)
 plot(f,from=a,to=b), com f uma função, traça o gráfico
de f entre a e b (por omissão, a=0 e b=1):
> plot(sin)
> plot(sin,-2*pi,2*pi)
55
Função gráfica: plot (argumentos)
 Com a função plot podem ainda ser utilizados outros
argumentos. O argumento type controla o tipo de
gráfico produzido. O seu valor pode ser "p" (pontos)
(valor por omissão), "l" (linhas), "b" (pontos ligados
por linhas), "h" (linhas verticais dos pontos ao eixo das
abcissas), "s" e "S" (função em escada).
> plot(precip,type="h")
> plot(temp,type="l")
> plot(Ano, Lisboa,type="h")
56
Função gráfica: plot (argumentos)
 O título, sub-título e as legendas dos eixos num gráfico
podem ser criados/alterados através dos argumentos
main, sub, xlab e ylab, respectivamente. Os extremos
dos eixos podem ser definidos com os argumentos xlim e
ylim, cujos valores são vectores de duas componentes.
> plot(temp,type="l",main=
+ "Temperatura média do ar em 2006",
+ xlab="dia do ano",ylab="Temp (ºC)")
 Qualquer um dos argumento da função par pode ser
também utilizado como argumento da função plot para
modificar as características do gráfico produzido.
57
Função gráfica: barplot
 Cria um gráfico de barras
> barplot(Lisboa,names.arg=Ano)
 Um exemplo mais elaborado
> LxPr.transp <- t(as.matrix(pb.Jan[,2:3]))
> barplot(LxPr.transp,names.arg=Ano,
+ beside=T, col=c("red","blue"),
+ legend=c("Lisboa","Porto"),
+ main="Precipitação mês de Janeiro (mm)")
Nota: a função colors() devolve o nome das cores que o R reconhece. Ver também
palette()
58
Visualização de vários gráficos
 As funções gráficas de alto nível criam, por omissão,
um novo gráfico, apagando, se necessário, aquele que
se encontra na janela gráfica.
– Em alguns casos, a utilização do argumento add=TRUE
permite sobrepor diferentes gráficos na mesma janela
gráfica.
> plot(sin,-pi,pi)
> plot(cos,-pi,pi,add=TRUE,col="red",lty=2)
 Pode-se utilizar a função par para visualizar
simultaneamente vários gráficos.
> op<-par(mfrow=c(2,1))
> plot(dia,temp,type="l");plot(dia,precip,type="l")
> par(op) # recupera os valores iniciais dos parâmetros
59
Funções gráficas de baixo nível
 Permitem acrescentar informação a um gráfico
existente na janela gráfica:
– as funções points(x,y) e lines(x,y) permitem
acrescentar, respectivamente, pontos e pontos ligados por
linhas;
– a função abline(a,b) acrescenta uma recta de declive
b e ordenada na origem a;
– as funções abline(v=x)e abline(h=y) permitem
adicionar rectas verticais (de abcissa x) e horizontais (de
ordenada y), respectivamente;
– a função legend permite acrescentar uma legenda ao
gráfico.
60
Funções gráficas de baixo nível (exemplos)
 Um exemplo
>
>
>
+
plot(Ano,Lisboa,ylab="precipitação", type="b")
points(Ano,Porto,col="red",type="b")
legend(1980,350,c("Lisboa","Porto"),
col=c("black","red"),lty=1,pch=1)
 Outro exemplo mais complexo
>
+
>
>
+
>
+
+
plot(dia,temp,type="l",ylab="Temperatura média
diária (T, mm)")
abline(h=mean(temp))
abline(h=c(mean(temp)-sd(temp),
mean(temp+sd(temp)), lty=2,col="red")
legend(0,30,c(expression(bar(T)),
expression(bar(T) %+-% s[T])),
col=c("black","red"),lty=1:2)
61
Guardar gráficos
 Os gráficos produzidos podem ser guardados em
ficheiros de vários tipos (pdf, jpeg, ps, …):
– num ficheiro de format pdf
> pdf("exemploG1.pdf")
> plot(Ano,Lisboa,type="h")
> dev.off()
– em formato ps segue-se um procedimento idêntico
> postscript("exemploG1.ps")
...
ou utiliza-se o botão direito do rato e escolhe-se a opção
“Save as postscript ...”
62
Histograma
 A função hist(x), cria um histograma com os elementos do
vector x.
> par(mfrow=c(1,2))
> hist(Porto); hist(Lisboa)
 O parâmetro breaks=x da função hist() permite definir
o número de rectângulos do histograma (por omissão,
calculado pela regra de Sturges, 1 + log2(n)) em que :
– x é o número de classes em que se pretende agrupar os
dados, ou
– x é um vector numérico com os limites das várias classes.
> par(mfrow=c(2,2))
>
>
>
>
hist(Pg)
hist(Pg,breaks=seq(300,1700,by=200))
hist(Pg,breaks=seq(300,1600,by=100))
63
hist(Pg,breaks=seq(300,1600,by=100),prob=T)
A função hist
 O parâmetro prob permite controlar se a área total do
histograma é um (prob=TRUE) ou se o histograma é
construído com base nas frequências absolutas (prob=FALSE)
– por omissão, prob=FAlSE sse as classes têm igual amplitude
 Quando utilizada com o parâmetro plot=FALSE, a função
hist devolve uma lista
> hist(Pg,breaks=seq(300,1600,by=100),plot=F)
breaks – vector com os limites das classes
counts – vector com as frequência absoluta das classes
intensities – vector com (frequência relativa/amplitude) das classes
density – idem
mids – vector com os pontos médios das classes
equidist – valor lógico que indica se as classes têm ou não amplitude
64
constante
Caixa-de-bigodes (box plot)
 É um gráfico que permite representar em simultâneo
medidas de localização e dispersão de uma amostra:
– transmite de modo imediato uma ideia da localização,
dispersão e forma da população de que foi extraída a
amostra;
– é um instrumento adequado para comparar várias amostras.
 Estes gráficos podem ser obtidos em R utilizando a
função boxplot().
> boxplot(Pg)
> boxplot(pg.Jan[,2:3])
65
Exercício 4
Considere os dados do vector serras.altitude.
a) Construa um diagrama de extremos e quartis e um
histograma.
b) Construa três novos histogramas: um com classes de
amplitude de 100m, outro com classes de amplitude de
250m e outro com classes de amplitude 200m mas cujo o
primeiro intervalo de classe é ]100,300].
c) Apresente os quatro histogramas construidos nas alíneas
anteriores na mesma janela gráfica (sugestão: utilize a
função par).
d) Dos quatro histogramas anteriores, qual permite ter uma
melhor representação gráfica da distribuição das altitudes
das serras de Portugal Continental? Justifique.
66
Packages
 Todas as funções e comandos do R estão armazenados em
módulos (packages).
 Numa sessão de R, o conteúdo de um package só fica
disponível quando este é carregado em memória.
– Para ver quais os packages disponíveis: >(.packages())
– Para ver quais os packages instalados localmente: >library()
– Para carregar em memória um package já instalado:
>library(nome_package)
ou menu Packages → Load Package ...
 O R inclui um conjunto de packages desenvolvidos pelos
utilizadores para implementar métodos específicos, quer na área
da estatística, quer noutras áreas (por ex. R Commander-Rcmdr).
– Para instalar um package fazer:
menu Packages → Install Package(s) ...
67
Package: fBasics
 fBasics: estatísticas básicas e de mercado (ambiente
criado para o ensino de “Engenharia Financeira” e
“Finanças Computacionais”)
 Indicadores de forma:
– coeficiente de assimetria
> skewness(precip); skewness(pg.PGarcia$Pg)
– coeficiente de achatamento
> kurtosis(precip); kurtosis(pg.PGarcia$Pg)
 Resumos de indicadores:
> basicStats(precip)
> basicStats(pg.PGarcia$Pg)
68
Package: Rcmdr
 R commander: uma interface gráfica do R para
análises estatísticas básicas.
 Para um correcto funcionamento em Windows, o R
commander deve ser utilizado quando o R está a ser
executado numa janela gráfica de um único
documento (SDI).
– Pode-se alterar as propriedades de um atalho do R para iniciar
esta aplicação em modo SDI: acrescentar --sdi ao caminho
indicado em Target.
 A função Commander() inicia a interface gráfica
do R commander
69
Modelos probabilísticos no R
 O software R disponibiliza “tabelas estatísticas”
para um conjunto de distribuições.
 Para cada distribuição estatística é possível calcular
1. função massa de probabilidade ou função densidade
2. função distribuição cumulativa
3. quantis
4. números pseudo-aleatórios
Nota: o quantil de ordem p é o menor valor de x tal que F(x) ≥ p,
sendo F a função distribuição cumulativa
70
Modelos probabilísticos no R
Distribution
beta
binomial
Cauchy
chi-squared
exponential
F
gamma
geometric
hypergeometric
log-normal
logistic
neg. binomial
normal
Poisson
Student's t
uniform
Weibull
Wilcoxon
R name
beta
binom
cauchy
chisq
exp
f
gamma
geom
hyper
lnorm
logis
nbinom
norm
pois
t
unif
weibull
wilcox
additional arguments
shape1, shape2, ncp
size, prob
location, scale
df, ncp
rate
df1, df2, ncp
shape, scale
prob
m, n, k
meanlog, sdlog
location, scale
size, prob
mean, sd
lambda
df, ncp
min, max
shape, scale
m, n
71
Modelos probabilísticos no R
 Ao nome R da distribuição acrescentam-se os
prefixos:
–
–
–
–
d
p
q
r
para função massa de probabilidade ou função densidade
para função distribuição cumulativa
para quantis
para números pseudo-aleatórios
As funções pxxx e qxxx têm o argumentos lógico:
lower.tail – se for TRUE (por omissão), as
probabilidades são P[X ≤ x], caso contrário são P[X > x].
72
Distribuição binomial
 X ∩B n , p
n inteiro positivo e 0 < p < 1
– pode tomar os valores x=0, 1, 2,⋯, n

– com probabilidade P [ X = x]= n p x 1− pn−x
x
 Exemplo: Seja X ∩B 4, 0.3
> dbinom(2,4,0.3)
– P [ X =2]=0.2646
> pbinom(2,4,0.3)
– P [ X ≤2]=0.9163
 Alguns gráficos da função massa de probabilidade:
>
>
>
>
x <- 0:4
plot(x,dbinom(x,4,0.3),type="h")
x <- 0:50
plot(x,dbinom(x,50,0.3),type="h")
73
Exercício 5
a) Qual a probabilidade do caudal instantâneo de um
dado curso de água atingir ou ultrapassar (pelo menos
uma vez) o valor associado a um período de retorno
de T=50 anos durante os n=10 anos de construção de
uma barragem nesse curso de água?
b) Construa um gráfico do risco R (a probabilidade de
um determinado acontecimento hidrológico ser
igualado ou excedido pelo menos uma vez em n anos
sucessivos) em função do período de retorno T.
Nota: utilize escalas logarítmicas nos dois eixos com a função
par(xlog=TRUE,ylog=TRUE) e plot(...,log="xy")
74
Exercício 5 b)
75
Distribuição normal
 X ∩N  , 
–
–
–
–
 ∈ℝ ,  0
2
pode tomar qualquer valor real
1 x−μ
− ( σ )
1
f ( x)=
e 2
, x∈ℝ
função densidade
√2 πσ
valor médio E[ X ] = μ
variância Var[ X ] = σ2
 Exemplo: Seja X ∩N (2, 4)
> pnorm(2,2,4)
– P [ X ≤2]=0.5
> 1-pnorm(2.5,2,4)
– P [ X >2.5]=0.4502618
 Alguns gráficos da função densidade:
> curve(dnorm(x), from=-6, to=13)
> curve(dnorm(x,0,2), from=-6, to=6, add=T, col=2)
76
> curve(dnorm(x,8,1), from=-6, to=13, add=T, col=3)
Outras distribuições com interesse em
hidrologia
 Log-normal, Gumbel, Pearson tipo III, Weibull ...
– aparecem em diferentes packages: stats, evd,
lmom, lmomco, …
 Exemplo: Seja X ∩ln N (1, 2)⇔ ln ( X )∩N (1, 2)
> plnorm(2,0,1)
– P [ X ≤1]=0.5
> 1-plnorm(2.5,0,1)
– P [ X >2.5]=0.1797572
 Alguns gráficos da função densidade:
>
>
>
>
curve(dlnorm(x),from=0,to=6,ylim=c(0,2))
curve(dlnorm(x,0,0.5),from=0,to=6,add=T,col=2)
curve(dlnorm(x,0,0.25),from=0,to=6,add=T,col=3)
curve(dlnorm(x,1,1),from=0,to=6,add=T,col=4)
77
Qual a distribuição teórica que se ajusta?
 Métodos gráficos:
– Histograma e função densidade (estimada e teórica)
>
>
>
>
attach(pg.PGarcia)
hist(Pg)
hist(Pg,breaks=seq(200,1600,100),prob=TRUE)
lines(density(Pg)) # adiciona curva densidade estimada
por
kernel
> curve(dnorm(x,mean(Pg),sd(Pg)),from=200,to=1600,
+ add=TRUE,lwd=2,col=2)
– Função distribuição cumulativa empírica
>
>
>
+
plot(ecdf(Pg))
plot(ecdf(Pg), verticals=TRUE, do.points=FALSE)
curve(pnorm(x,mean(Pg),sd(Pg)),from=200,to=1600,
add=TRUE,lwd=2,col=2)
78
Qual a distribuição teórica que se ajusta?
 Métodos gráficos (cont.):
– Diagrama quantil-quantil (q-q plot)
• é um diagrama de pontos dos quantis de uma amostra
versus os quantis, da mesma ordem, de outra amostra (ou
distribuição teórica).
– Se as amostras têm a mesma dimensão, o q-q plot não é mais do
que um diagrama de pontos das amostras ordenadas.
• Objectivo: avaliar se as duas amostras provêm de
populações com uma distribuição comum ou se a amostra
se ajusta à distribuição teórica considerada.
– Neste caso, os pontos devem-se situar aproximadamente ao longo
da recta bissectriz dos quadrantes ímpares; quanto mais se
afastarem desta linha de referência, mais provável é as duas
populações terem diferentes distribuições.
79
Qual a distribuição teórica que se ajusta?
 Métodos gráficos (cont.):
– Diagrama quantil-quantil (q-q plot)
Exemplo: com a precipitação total anual de Penha Garcia
> par(pty="s") # gráfico numa região quadrada
> qqnorm(Pg) # qqplot com a distribuição normal
idêntico ao comando seguinte
> qqplot(qnorm(ppoints(length(Pg)),Pg)
> qqline(Pg) # acrescenta uma linha recta ao
gráfico anterior que passa no 1º e
3º quartis
Nota: a função ppoints (também utilizada por qqnorm) gera uma
sequência de n pontos de probabilidade utilizando a fórmula de Cunnane
(1:n – a)/(n + 1 – 2a)
com a = 3/8 se n ≤ 10 ou a = 1/2 caso contrário.
80
Qual a distribuição teórica que se ajusta?
 Outro exemplo: Pretende analisar-se se a distribuição de
Gumbel se ajusta adequadamente à precipitação diária
máxima anual registada em Penha Garcia, Portugal (dados
no ficheiro “Pmad.PGarcia.csv”)
Relembrando a distribuição Gumbel: X ∩Gum (α ,β) ,α∈ℝ , β>0
1
x−β
x−β
– função densidade f ( x)= α exp[− α −exp(− α )] , x∈ℝ
– valor médio E [ X ]=α+0.5772β
– Variância
2
Var [ X ]= π β2
6
Nota: as funções associadas à distribuição de Gumbel (dgumbel,
pgumbel, qgumbel, rgumbel) encontram-se no package evd.
81
Qual a distribuição teórica que se ajusta?
 Outro exemplo (cont):
>
>
>
#
#
>
>
+
Pmad.PGarcia<-read.csv("Pmad.PGarcia.csv")
lybrary(evd)
?qgumbel
Cálculo das estimativas dos parâmetros de
escala (β) e localização (α)
escala<-sqrt(6)*sd(Pmad.PGarcia$Pmad)/pi
local<-mean(Pmad.PGarcia$Pmad)0.5772*escala
> qqplot(qgumbel(ppoints(66),loc=local,
+ scale=escala),Pmad.PGarcia$Pmad)
> abline(a=0,b=1)
82
Qual a distribuição teórica que se ajusta?
 Outro exemplo: simulação de 66 valores provenientes de uma
Dist. de Gumbel com os mesmos parâmetros de localização e
de escala do exemplo anterior
# fixar a semente do gerador de nº aleatórios
>
>
>
+
>
set.seed(1234)
x <- rgumbel(66,loc=local,scale=escala)
qqplot(qgumbel(ppoints(66),loc=local,
scale=escala),x)
abline(a=0,b=1)
83
Qual a distribuição teórica que se ajusta?
 Testes de ajustamento:
– Teste de Shapiro-Wilk (teste de normalidade)
shapiro.test(...)
– Teste do qui-quadrado de Pearson
chisq.test(...)
– Teste de Kolmogorov-Smirnov
ks.test(...)
 Exemplo:
> shapiro.test(Pg)
> ks.test(Pmad.PGarcia$Pmad,
+ "pgumbel", loc = 45, scale=16.3)
84
Testes de hipóteses:
 Procedimento:
1º Formular duas hipóteses:
Hipótese nula (H0) onde se especifica o valor do parâmetro ou
distribuição a verificar (a que se dá o beneficio da dúvida)
Hipótese alternativa (H1) onde se específica a hipótese a
considerar se rejeitarmos H0 (a que se dá o ónus da prova)
2º Identificar a estatística do teste (e as condições em que
é válida).
3º Definir o nível de significância (α)
α= P [ Rejeitar H 0 ∣ H 0 verdade]
4º Calcular a estatística do teste
5º Conclusão: rejeitar H0 se o valor p (p-value) ≤ α
o p-value é a probabilidade da estatística do teste tomar valores
mais extremos que o valor calculado com base na amostra, sob
H0 verdadeira.
85
Alguns testes paramétricos no R
 Testes paramétricos – supõe-se conhecida a distribuição
teórica da população em estudo e as hipóteses a formular
dizem respeito ao(s) parâmetro(s).
t.test(…) Teste t-Student para o valor da média de uma
população normal ou para a comparação das médias de duas
populações (utilizando amostras independentes ou amostras
emparelhadas)
Exemplo: Comparação da precipitação média no mês de Janeiro nas
cidades do Porto e Lisboa (amostras emparelhadas – factor de
emparelhamento: ano)
> attach(pg.Jan)
> shapiro.test(Lisboa-Porto) #teste à normalidade
da população das diferenças
> t.test(Lisboa, Porto, pair=TRUE)
var.test(…) Teste F à razão das variâncias de duas
populações normais.
86
Exercício 6
É desencadeado um programa de controlo da poluição de um rio em
que foram efectuadas medições, antes de lançar a campanha antipoluição e um ano após. As medições são combinações de vários
índices: quanto maior for o valor resultante maior é a poluição.
Obtiveram-se os seguintes resultados:
Ponto de
controlo
Antes da
campanha
Um ano após
1
2
3
4
5
6
7
8
9
10
68 88 101 82 96 74 65 74 52 99
67 87
90
76 98 69 68 65 59 70
Será que a campanha anti-poluição reduziu de facto a poluição?
Explicite e verifique todas as hipóteses necessárias à resolução do
problema
87
O modelo linear
 Designação genérica que engloba vários modelos
estatísticos como:
– a regressão linear (simples e múltipla)
– a análise de variância
– a análise de covariância
 Relaciona,
Y - a variável resposta (dependente, modelada), com
x1, x2, …, xp - as variáveis preditoras (independentes,
explicativas).
 Pressupostos,
Y i =β0+β1 x 1(i)+β 2 x 2(i)+...+β p x p(i)+ϵi , i=1,... , n
ϵi ∩N (0,σ 2 ) ,∀i
{ϵ}i são v.a. independentes
88
O modelo linear no R
 lm(…) função básica no estudo do modelo linear (linear
model). Tem como primeiro argumento (obrigatório) um
objecto do tipo formula que indica qual a variável resposta
(e.g., y) e quais as variáveis preditoras (e.g., x1, x2, x3)
y ~ x1 + x2 + x3
 Exemplos:
> lm(y ~ x) # RLS de y sobre x
> lm(y ~ -1+x) # RLS de y sobre x com ordenada na
>
>
origem nula (recta passa na origem)
lm(y ~ x1+x2+x3)# RLM de y sobre x1, x2, x3
lm(log(y) ~ x1+x2)# RLM da variável transformada,
log(y), sobre x1, x2
89
O modelo linear no R (cont.).
 A função lm produz um objecto de classe “lm”, uma list com
várias componentes. A maioria dessas componentes não é
mostrada automaticamente.
 Informação sobre o modelo ajustado pode ser obtida
utilizando várias funções como, por exemplo,
summary devolve um resumo alargado do resultado da
análise de regressão;
coef devolve o vector das estimativas dos βi
fitted devolve os valores ajustados da variável resposta ( ŷ i )
residuals devolve os resíduos (e i = yi − ŷ i )
confint devolve intervalos de confiança para cada βi
predict permite ajustar novas observações à regressão
ajustada ou obter intervalos de confiança para o
valor esperado da variável resposta ou intervalos de
90
predição.
Um exemplo
Um dos métodos de estimar a capacidade de armazenamento de um
copado arbóreo (parâmetro utilizado na modelação da intercepção)
utiliza a relação linear que se pode estabelecer entre a precipitação
(bruta) e precipitação sob-coberto para chuvadas independentes com
completa saturação do copado.
>
>
>
>
>
>
>
>
pinhal<- read.csv("Pinhal.csv")
pinhal[1:3,]
summary(pinhal)
boxplot(pinhal)
cor(pinhal)
plot(pinhal) # idêntico a plot(pinhal$tf ~ pinhal$pg)
lm(tf ~ pg, data=pinhal)
pinhal.lm<-lm(tf ~ pg, data=pinhal)# recta ajustada
Tf = -0.3798 + 0.86642 pg
> abline(pinhal.lm)
> summary(pinhal.lm)
91
Os resultados de summary (lm(...))
 Coefficientes: Estimate – estimativa de cada parâmetro do modelo
Std.Error – estimativa do erro padrão (desvio
padrão associado a cada estimador dos parâmetros)
t-value – valor da estatística num teste-t às
hipóteses H 0 : β j =0 vs. H 1 : β j ≠0
Pr(>|t|) – p-value associado ao teste anterior
 Residual standard error – estimativa do desvio padrão erros
aleatórios (ε) e respectivos graus de liberdade.
 Multiple R-squared – coeficiente de determinação (R2)
n−1
2
 Adjusted R-squared – R2 modificado =1−(1− R )×
n−( p+1)
 F-statistic – estatística do teste F de ajustamento global com as
hipóteses
H 0 : β j =0, ∀ j=1,... , p vs. H 1 : ∃
respectivos graus de liberdade e p-value
j t.q.
β j ≠0
92
Análise de resíduos e outros diagonósticos
 Para identificar eventuais violações grosseiras aos
pressupostos do modelo é conveniente analisar os
resíduos.
 Outras ferramentas de diagnóstico visam identificar
observações individuais com características especiais
(por exemplo, distância de Cook e “observações
alavanca”- leverage points)
 O R disponibiliza uma forma gráfica rápida para fazer
esta análise: aplicar o comando plot a um objecto da
classe “lm”
> op <- par(mfrow=c(3,2))
> plot(pinhal.lm,which=1:6)
> par(op)
93
Exercício 7
O ficheiro “Homogeneidade.csv” contém dados de precipitação
anual (cm). A série AY corresponde a valores médios das
precipitações anuais medidas em 25 estações homogéneas e a
série Z às precipitações anuais registadas na estação z, situada
na mesma região das anteriores. Sabe-se que na década de
1930 a estação z foi deslocada de lugar.
a) Utilizando o método da dupla-massa, verifique se a série Z é
homogénea.
b) Caso não haja homogeneidade, efectue as correcções
necessárias para que a série Z fique homogénea.
94
Mais algumas informações
 O package topmodel faz a implementação deste modelo
hidrológico em R
http://cran.r-project.org/web/packages/topmodel/index.html
 Outro package com interesse EcoHydRology
http://cran.rproject.org/web/packages/EcoHydRology/index.html
 Para mais informações sobre análise de dados hidrológicos
e modelação
http://rwiki.sciviews.org/doku.php?
id=guides:tutorials:hydrological_data_analysis
95
Bibliografia geral para o R
 Documentação disponível no CRAN (Comprehensive R
Archive Network - http://www.r-project.org/):
The R Manuals, editados por, R Development Core
Team, Current Version: 2.13.1 (Julho 2011)
(http://cran.r-project.org/manuals.html).
 Contributed Package: Available Bundles and
Packages(http://cran.r-project.org/web/packages/)
 Contributed Documentation, escritos por utilizadores
de R. Por exemplo, “Introdução à Programação em
R” por Luis Torgo. (http://cran.r-project.org/other-docs.html)
 Fox, J., Getting Started With the R Commander (August 2006)
(http://socserv.socsci.mcmaster.ca/jfox/Misc/Rcmdr/Getting-Started-with-the-Rcmdr.pdf)
96

Documentos relacionados