Projeto para a materia 5912014, turma 2009 - DCM

Transcrição

Projeto para a materia 5912014, turma 2009 - DCM
Projeto para a materia 5912014, turma 2009
Rafael A. Rosales
Departamento de Fı́sica e Matemática · FFCLRP · USP
14 de maio de 2009
O seguinte trabalho consiste em analisar dados do ı́ndicea gregado das bolsas de valores
de diferentes mercados financeiros utilizando R. Cada quem deverá trabalhar com um ı́ndice
diferente. Os dados devem ser procurados em http://finance.yahoo.com/
A tabela 1 abaixo contém o ı́ndice de cada quem. Vocês devem a trabalhar com os dados
diários dos dois últimos anos. Os dados fornecidos pelo site acima geralmente são exportados como um a arquivo de texto (ASCII) formado por 8 colunas separadas pelo sı́mbolo ”,”.
Este formato é conhecido como .csv (comma sepparated value). As 8 colunas apresentam os
seguintes nomes: Date, Open, High, Low, Close, Volume, Adj. Close*. Cada fila apresenta
o valor agregado diário de cada um destes items (excluindo a primeira coluna). Notar que
a os dados são exportados em ordem inverso: a primeira linha corresponde ao a dado mais
recente. Para realizar as analises, vocês devem ordenar os seus e dados em sentido oposto.
Todas as analises devem ser realizadas com a coluna Close, a qual representa o valor do
ı́ndice ao terminar o dia.
Parte A
Divida os seus dados em 5 partes iguais, cada uma destas partes será referida adiante como
‘classe’.
• A1. Faça uma regressão linear para cada um das 5 classes. Faça gráficos dos dados e
sopbreponha o modelo estimado em cada caso. Intente sobrepor as 5 regressões sobre
os seu dados em um único gráfico.
• A2. Realize o teste ANOVA para cada uma das regressões em 1.
• A3. Faça um ANOVA considerando as 5 classes.
• A4. Faça um teste para verificar se as duas classes de maior variabilidade apresentam
variações da mesma magnitude.
• A5. Faça um teste para determinar se as duas últimas classes apresentam o mesmo
comportamento médio.
Parte B
Baseado nos seus resultados em A, responda as seguintes perguntas:
• B1. Existe evidência para pensar que o comportamento de alguma das suas classes
é linear? Calcule o valor médio esperado para o 1/07/09 e para o 15/07/09. (Isto
é, faça uma projeção futura para o comportamento do seu ı́ndice; pense bem se você
deve utilizar só a última classe ou todos os seu dados)
• B2. O que esta sendo testado em A2? Quais são as suas concluções?
1
sı́mbolo do ı́ndice
^MERV
^HSI
^GSPTSE
^IXIC
^DJA
^KS11
^IXF
^GDAXI
^SSMI
^NYA
^MXX
^BFX
^SSEC
^TA100
^MIBTEL
^ATX
^N225
^FTSE100
^CAC40
^IXF
^BVSP
^AEX
^SMSI
Nome
Alex Pereira da Silva
Anderson Henrique de Paiva Teixeira
Anderson Pinheiro de Oliveira Goncalves
Andre William Bortolin Bordignon
Diliane Teixeira Isobe
Edipo Luiz Lohmann
Eliseu Bittencourt Júnior
Estela Vieira da Assunção
Glauco Dantas Amancio
Guilherme Guaglianoni Piccoli
Heitor Cotrim Macias
Jéssica Faria
Jonatas Samuel Silva de Souza
José Humberto Savoia
Lucas Zamberlan Cadan
Luis Filipe Comparoni
Ma Chin Tien
Márcio Hetsheimeir
Milena Egea Marin Guerreiro
Pâmella Aline Bosco Teixeira
Raytza Resende Yoshimura
Rodrigo Menezes da Silva
Samuel Ribeiro Abrahão
Tabela 1:
• B3. O que esta sendo testado em A3? É de alguma utilidade este teste?
• B4. Qual é a sua conclusão para A4?
• B5. Qual é a sua conclusão para A5?
• B6. Quais dos supostos realizados na teoria para desenvolver os diferentes testes
utilizados poderiam não ser válidos? (faça histogramas dos dados para cada classe;
qual a sua conclusão?)
1
R: primeira sessão
Desde uma linha de comando (xterm, gnome-terminal, msdos prompt, ...) digite R. Observe
que o prompt agora é >.
1.1
Input de Dados: “dataframes”
Considere a seguinte tabela de dados.
local
Nash’s field
Silwood Bottom
Nursery Fiels
Water Meadow
area
3.6
5.1
2.8
3.9
pendente
11
2
3
0
vegetacao
Grassland
Arable
Grassland
Meadow
2
pH solo
4.1
5.2
4.3
4.9
damp
F
F
F
T
dens de minhocas
4
7
2
8
A tabela1 acima é importada a sua sessão em R pelo comando
> dadosX <read.table("http://dfm.ffclrp.usp.br/~rrosales/aulas/r-data-stat-MAN",
header = TRUE, row.names=1)
> attach(dadosX)
> names(dadosX)
[1]
"local"
"area"
[7]
"dens.de.minhocas"
"pendente"
"vegetacao"
"pH.solo"
"damp"
A função read.table importa dados gerando uma estrutura muito flexı́vel conhecida
como dataframe. header=TRUE indica que a primeira linha do arquivo contem os nomes
das variáveis. attach faz com que a variáveis sejam acessı́veis pelo seu nome, por exemplo,
Nash’s Field o qual realmente no aquivo é Nash.field. Para e ver o conteudo dos dados
importados escreva diretamente o seu nome (e digite Enter depois)
> dadosX
Selecionar partes dos dados é simples. Por exemplo,
> dadosX[,1:3]
area
pendente
vegetacao
Nash’s.Field
Silwood.Bottom
Nursery.Field
3.6
5.1
2.8
11
2
3
Grassland
Arable
Grassland
Water.Meadow
3.9
0
Meadow
Mais geralmente a sintaxe para selecionar parte dos dados é a seguinte: dadosX[,]:
todas as lineas e todas as colunas; dadosX[ , 1]: a primeira coluna; dadosX[3, ]: a terceira fila; dadosX[ , 1:3]: da primeira a terceira coluna. Também são possı́veis as formas
com operadores lógicos, por exemplo: dadosX[area > 3 & pendente < 3,] (descobra você
mesmo). Por último, também é possı́vel ordenar os dados, por exemplo,
> dtord <- dataX[order(dataX[,1]),1:6]
> dtord
> dtord2 <- dataX[rev(order(dataX[,4])),c(4,6)]
> dtord2
O primeiro comando ordena os dados de toda a tabela de acordo a “area” (esta é a variável
na primeira coluna [,1]). O comando na linha 3 gera um subconjunto dos dados, dtord2,
sorteado em ordem descendente pelo pH do solo, com output pH do solo e densidade de
minhocas (colunas 4 e 6, i.e., c(4,6)). Outras funções para ler e escrever dados são scan,
readLines, write.table, write e save. Em particular você pode escolher
> dataT <- read.csv(...)
3
para importar diretamente os aquivos em formato .csv. Esta função funciona igual a
read.table, veja help(read.table) para maiores detalhes.
Opcional: você pode trabalhar com os dados como uma serie temporal, e neste caso
considere a função ts,
myTS <- ts(as.matrix(dataframe), start = c(1992, 1), frequency = 1)
1.2
Funções de interesse
Todos os testes e métodos explicados nas aulas estão implementados em R de uma maneira
ou outra. Em particular, as seguintes funções serão centrais para o desenvolvimento do seu
projeto
cor, lm, var.test, t.test, aov
A função summary é muito útil quando utilizada conjuntamente com aov e lm, isto é,
summary(lm(...)) ou summary(aov(...)). Outras funções de interesse geral são:
Graficos: xyplot, lines, persp, contour, image, hist, dnorm, dpois, dbinom, boxplot.
Vetores/matrizes: c, seq, matrix, as.matrix, length, max, min, range.
Estatı́stica descritiva: var, mean, sd, summary.
Possivelmente num futuro você esteja interessado nos seguintes pacotes (econometria):
fBasics, fSeries, fOptions, fCalendar, fPortfolio, fExtremes e fEcofin todos da suite
rmetrics1 ; e também (series temporais): tseries, backtest, dyn, its, tsDyn, tsfa, ...
1.3
Sistema de ajuda
A ajuda pode ser iniciada ao escrever
> help.start( )
Seguidamente um browser é aberto permitindo navegar pelas paginas de ajuda. Se você
já sabe qual e a função que você quer utilizar, por exemplo lm, mas tem alguma duvida
escreva qualquer uma das seguintes opções
> ?lm
> help(lm)
> help.start(lm)
As duas primeira opções mostram a ajuda na mesma tela da linha de comando, a ultima
mostra a ajuda no browser iniciado anteriormente. Se você não sabe exatamente o nome da
função mas tem alguma idéia, intente
> help.search("read")
1 veja
http://www.rmetrics.org
4
2
Como entregar o trabalho?
As suas respostas devem ser apresentadas em três aquivos: dois para a Parte A, e um arquivo
de texto (ASCII, não em Word!) para as suas respostas a da Parte B. Para entregar a Parte
A, você devera salvar todos os objetos gerados na sua sessão final com R e também os
comandos utilizados para gerar estes objetos. Os objetos e os comandos são salvos fazendo
> save(list=ls( ), file=".RData")
> savehistory(file=".Rhistory")
Uma sessão pode ser recuperada em qualquer outra sessão posteriormente, o qual é bastante
util pois permite trabalhar sobre os mesmos dados e e com os mesmos comandos varias veces.
Isto é possı́vel com
> load(".RData")
> loadhistory(file=".RHistory")
Isto pressupõe que você sabe qual é o seu diretório de trabalho, veja getwd, setwd para
determinar e modificar esta variável. É importante utilizar nomes para a os caminhos
de arquivos de maneira correta, bem como C:\\Meus Documentos\\... em Windows ou
/home/seuloggin/.../ em Linux.
Envie unicamente uma verção da sua sessão final, não as sessões nas quais você esta
aprendendo R! As respostas para as partes A e B devem ser entregues simultaneamente,
sendo a ultima data de entrega o dia 30/06/09. As respostas devem ser encaminhadas via
email ao meu endereço (veja o meu site). Por favor identifique o subject do seu email com
o seu nome.
3
WWW
R é software livre e pode ser instalado em quase qualquer sistema operativo. e O Homepage
de R é
http://www.r-project.org/
Manuais em português podem ser acessados neste site clicando em Manuals e e logo em contributed documentation, procure a sessao ”Portuguese”no final da pagina. Alguns exemplos
são
[1] “Bioestatı́stica usando R” por Colin Robert Beasley
[2] “Introdução à Biometria utilizando R” por Leandro R. Monteiro, e José Louvise Gomes
[3] “Introdução à Programação em R” por Luis Torgo
Estes textos explicam todo o que vocês precisam saber e ainda mais. Aquivos binários
para instalar R em diferentes plataformas são encontrados em http://cran.r-project.org/.
5

Documentos relacionados