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