sexta-feira, 10 de agosto de 2012

Boas vindas à turma de 2012-2

Aos alunos do segundo semestre de 2012, boas vindas ao curso! Este é o blog da turma 2JC da disciplina Técnicas de Pesquisa em Economia.

Na coluna à esquerda, vocês encontrarão o material didático do curso: software, slides e listas de exercícios. Como eu disse em sala, estou revisando os slides do semestre passado e os atalhos serão ativados à medida em que o curso avançar (os slides da primeira aula já foram publicados). As listas de exercícios estão todas disponíveis. Se houver revisão nelas, será pontual e avisarei quando acontecer.

Na coluna à direita, logo abaixo da caixa de busca, encontram-se atalhos para sites de interesse, apostilas, vídeos e material didático adicional. Esses atalhos estão ordem decrescente de relevância. Explorá-los não é obrigatório, mas acredito que há muita coisa ali que pode ajudá-los ao longo do curso e, também, depois da sua conclusão, se vocês quiserem aprofundar o estudo dos tópicos que abordaremos.

Aos alunos com matrícula anterior a 2010.1, isto é, alunos do currículo antigo, repito que a turma 2JC de TPE pertence ao currículo novo. Recomendo a leitura do aviso que o coordenador da graduação pediu-me que desse à turma do semestre passado, republicado aqui. Quem tiver dúvida sobre isso deve procurar Luciano, na secretaria do Departamento de Economia.

Divulgarei à turma pelo Twitter tudo que eu publicar aqui no blog. Para seguir-me no Twitter, use o botão no alto, à direita.

Os seus comentários aos textos do blog serão sempre bem vindos. Caso queiram comunicar-se comigo diretamente, meu email está no programa do curso, distribuído em sala e também disponível aqui.

quinta-feira, 21 de junho de 2012

Uma análise post-mortem dos resultados da segunda prova

A média da turma na segunda prova foi 6,8 (ignorando um aluno faltoso) e a mediana, 7,0. As estatísticas da primeira prova foram praticamente as mesmas (média e mediana iguais a 7,0). Assim, pode-se dizer que o desempenho da turma foi bastante consistente ao longo do semestre. No entanto, o mesmo não se pode dizer do desempenho individual dos alunos: a correlação entre as notas da P1 e as da P2 foi baixíssima, igual a 0,1. Constatações contraditórias, aparentemente.

A contradição explica-se pelo efeito de cancelamento que houve entre dois grupos de alunos.

terça-feira, 12 de junho de 2012

Solução do desafio da aula 12

No slide 12-17, lancei para vocês o desafio de construir, usando R, a função distribuição conjunta P(V,C,S,G) a partir das distribuições condicionais dadas no mesmo slide. A distribuição final deveria estar num arranjo 2x2x2x2. Este é um exercício muito bom de construção e manipulação de arranjos em R. Eis a seguir a minha resposta, anotada.

segunda-feira, 21 de maio de 2012

Pesquisa: melhor dia para monitoria extra

Pessoal, faremos nos próximos dias uma monitoria extra exclusivamente sobre criação de funções em R. A monitoria será à noite (19h) e deverá durar 45 minutos. Ela vai abordar a lista 8 de exercícios, que poderá ser cobrada na segunda prova.

Nosso monitor poderá fazer essa monitoria numa 3ª feira, numa 4ª feira ou numa 6ª feira. Para definirmos a data, indiquem no formulário no atalho abaixo qual é o dia da semana mais conveniente para vocês. O fomulário exige uma senha, a qual vou informar em sala de aula, nesta semana.

Peço que todos respondam, mesmo aqueles que não tenham certeza de que poderão comparecer à monitoria. Obrigado!

Clique aqui para responder ao formulário

sábado, 5 de maio de 2012

Vale a pena fazer as listas de exercícios?

Como vocês sabem, sou da filosofia de que a função primordial da prova é estimular o estudo. Por isso, as nossas provas premiam fortemente quem faz todas as listas de exercício: a primeira metade da prova consiste em questões tiradas das listas, sem alteração. O aluno que faz todas as listas e tira as suas dúvidas sobre todos os exercícios deveria faturar os cinco primeiros pontos da prova em quinze minutos. No entanto, resta a pergunta: esse aluno aumentou as suas chances de um bom desempenho na segunda parte da prova, que consiste em questões inéditas? A seguir, eu uso o R para testar estatisticamente a hipótese de que os alunos que gabaritam a primeira parte da prova têm um desempenho superior na segunda parte.

sexta-feira, 4 de maio de 2012

Migrando para Dropbox

Isto não é propaganda ou endosso, turma. Quero só avisá-los de que estou mudando o depósito que uso para os arquivos de slides e listas de exercícios, disponíveis aqui no blog. Até agora, eu vinha usando o Scribd, que é mais dedicado a textos, mas andei enfrentando dificuldades em publicar alguns tipos de arquivos (por exemplo, CSV). Depois de avaliar o Dropbox por alguns dias, concluí que ele atende melhor aos nossos objetivos: é mais simples e parece ser mais estável e rápido do que o outro. A mudança deve ser transparente para vocês. Se algum de vocês enfrentar qualquer dificuldade para baixar os arquivos dos links do blog, peço que me comunique imediatamente por e-mail.

terça-feira, 3 de abril de 2012

A função sample() e probabilidades que não somam 1

Observamos em sala hoje que a função sample() não reclama se for designado ao seu argumento prob um vetor de probabilidades que não somam 1. Especificamente, o comando
sample(1:3, 20, replace = TRUE,
prob = c(0.1, 0.1, 0.9))
produziu uma amostra de vinte números sorteados do conjunto {1, 2, 3}, sem reclamar de termos pedido que, no sorteio, o número 1 tivesse probabilidade 10%; o número 2, probabilidade 10%; e o número 3, probabilidade 90%. O que está acontecendo? Vamos descobrir apelando para a lei dos grandes números:
amostra <- sample(1:3, 1000000,
replace = TRUE,
prob = c(0.1, 0.1, 0.9))
O vetor amostra criado acima contém um milhão de sorteios do conjunto {1, 2, 3}, com as mesmas probabilidades impróprias de antes. Depois de criar essa grande amostra, verifique quantos números 1, 2 e 3 foram produzidos, usando este comando:
for (n in 1:3)
print(length(amostra[amostra == n]))
Você verá que há aproximadamente 91 mil números 1; 91 mil números 2; e 818 mil números 3. De onde saíram essas frequências? Daqui:

91.000 ÷ 1.000.000  0,1 ÷ 1,1 = 0,1 ÷ (0,1+0,1+0,9)
818.000 ÷ 1.000.000  0,9 ÷ 1,1 = 0,9 ÷ (0,1+0,1+0,9)

Conclusão: quando a função sample() recebe um vetor de "probabilidades" cuja soma é diferente de 1, ela normaliza esses números, isto é, divide-os pela soma deles, e usa as probabilidades normalizadas para sortear elementos do espaço amostral representado no primeiro argumento.

PS: No último comando acima, usei pela primeira vez a estrutura de controle for, que ainda não estudamos. O que ela faz é simplesmente cumprir o comando print(length(amostra[amostra ==n])) três vezes, variando "n" de 1 a 3. O comando repetido, por sua vez, conta quantos números "n" são encontrados no vetor amostra.

domingo, 1 de abril de 2012

R bonitinho

Um site muito legal para aprender macetes do R é o inside-R. Ali dentro, descobri outro dia uma ferramenta que pretendo usar a partir de agora para preparar os textos aqui do blog. Chama-se Pretty R e é um gerador de código HTML a partir de código R que torna mais legível a sintaxe da linguagem. Por exemplo, o código abaixo calcula os cinquenta primeiros números de Fibonacci:

F <- c(0,1)
while(length(F) < 50) F <- c(F, sum(tail(F,2)))

Veja como fica na formatação Pretty R:
F <- c(0,1)
while(length(F) < 50) F <- c(F, sum(tail(F,2)))
Bem mais claro, não é? Observe que os nomes de todas as funções da linguagem aparecem em azul no código embelezado e ligam à biblioteca de ajuda do R. Para testar, clique em tail diretamente no código acima e aprenda o que essa função faz.

PS: Nesse código usei a estrutura de repetição while (significa "enquanto", em inglês) que ainda não estudamos em sala. Mas a tradução do comando para o português é imediata: "enquanto o comprimento do vetor F for menor do que 50, acrescente-lhe mais um elemento, sendo o seu valor igual à soma dos dois últimos elementos do vetor F."

terça-feira, 27 de março de 2012

Selecionando linhas de uma moldura de dados

Na terminologia das bases de dados relacionais, a moldura de dados (data frame) da linguagem R é uma estrutura em que cada linha representa uma entidade e cada coluna representa um atributo das entidades. Por exemplo, considere a sequência de comandos abaixo:

sexta-feira, 23 de março de 2012

Formatando números em R

Um comentário sobre formatação de números na linguagem R, assunto que surgiu em sala outro dia. Quando digitamos uma expressão na linha de comando e concluímos com [], a expressão é repassada automaticamente para a função print(), a qual "imprime" (i.e. mostra na próxima linha do console) o resultado da expressão. Por exemplo, quando digitamos

> sqrt(2)

O que o sistema na verdade executará quando pressionamos a tecla [↵] é o comando...

domingo, 11 de março de 2012

Sobre a diferença entre os operadores de designação em R

Fiquei devendo a vocês uma explicação sobre a diferença entre os operadores <- e = na linguagem R. Os dois operadores designam o objeto nomeado à sua esquerda ao resultado da expressão à sua direita. Por exemplo, os comandos

> x <- 2+2

e

> x = 2+2

fazem a mesma coisa: designam ao valor 4 o objeto chamado "x". Lê-se "x recebe o resultado de dois mais dois" (em inglês, "x gets...").

Significa isso que os dois operadores funcionam exatamente da mesma maneira? Na verdade, não. Há uma diferença sutil entre eles.

quarta-feira, 7 de março de 2012

Dicas de uso do console R

Como vimos na aula de ontem, as teclas de navegação [] e [] servem para recuperar o texto dos comandos que já foram executados. Todos esses comandos são preservados num histórico interno do console, desde o início da sessão atual de uso do R. Dica: para ver de uma vez só todo o histórico de comandos, use a função history().

Outra dica. Se você começar a digitar o nome de uma função na linha de comando e, antes de completá-lo, apertar a tecla [Tab], o console completará o nome para você. Caso exista mais de uma função cujo nome comece com as letras que você já digitou, o sistema listará para você todas as possibilidades.

sábado, 3 de março de 2012

Instalando o sistema R

Neste final de semana, vocês devem instalar o sistema R em seus computadores. O nosso curso é bastante prático e vocês precisarão do sistema para poderem estudar e resolver as listas de exercícios. Para instalar o R, selecione o link à esquerda no blog, onde está escrito "Software", segundo o sistema operacional que você usa (Windows ou Mac OS X). Você baixará um arquivo de instalação executável. Execute o arquivo. O sistema será instalado numa pasta chamada "R". Para executá-lo no Windows 7, selecione o botão "Iniciar", abaixo e à esquerda na tela, e digite "R". Um programa chamado "R 2.14.2" deverá ser encontrado pela busca do Windows. Você o reconhecerá facilmente pelo ícone, uma letra R maiúscula azul. Como você o usará com frequência neste semestre (e, quem sabe, nos próximos semestres também, em outras disciplinas), recomendo fixar o programa na barra de tarefas ou no menu Iniciar. Basta selecionar o programa com o botão direito do mouse e escolher a opção que você prefere para fixar. Quem estiver usando Windows XP ou Mac OS X e tiver dúvidas para encontrar ou executar o programa, mande um e-mail para a gente.

Stack Overflow

Estou acrescentando à nossa lista de sites recomendados (à direita no blog) um link que merece um comentário. Trata-se do Stack Overflow, um fórum dedicado a sanar dúvidas bem específicas da comunidade de estudantes e profissionais na área de TI. A estrutura do fórum é democrática e todos podem responder as perguntas e pedidos de ajuda de todos. Até onde vi, a qualidade das respostas é muito boa e acho que o site pode ser útil para o aprendizado de vocês em R, durante o curso e depois dele. O site é organizado em seções dedicadas às diversas linguagens de programação que existem. O link que estou inserindo ao lado corresponde, é claro, àquela que estamos estudando.

Na verdade, o Stack Overflow é um capítulo da Stack Exchange, uma grande coleção de fóruns de perguntas e respostas abrangendo áreas temáticas muito mais amplas do que programação ou TI. Por exemplo, o fórum CrossValidated é dedicado à análise estatística de dados. Existe outro dedicado à Economia. Vocês vão encontrar também fóruns sobre videogames, fotografia, culinária, e dezenas de outros assuntos.

sexta-feira, 2 de março de 2012

A rede de Indra

Ontem em sala eu lancei um segundo desafio. Na capa dos slides do nosso curso há a foto de uma teia de aranha respingada com gotículas d'água, que eu disse representar a "rede de Indra". O que é a rede de Indra e em que sentido ela simboliza as redes bayesianas que estudaremos em breve? Um aluno já me mandou uma boa resposta, mas não totalmente completa. Quando estudarmos as redes bayesianas, o simbolismo vai ficar mais claro.

Na próxima semana, começaremos o nosso estudo formal da linguagem R. Quem tiver dificuldade em instalar o software, mande um email para mim ou para o monitor.

terça-feira, 28 de fevereiro de 2012

Desafio: título do blog

Hoje em sala eu lancei um desafio sobre o título do nosso blog. O primeiro aluno que descobrisse o que o título tem a ver com a nossa disciplina ganharia meio ponto na P1. O seu colega Thiago Frotte descobriu, parabéns! Vou manter o mistério, caso outros queiram tentar descobrir.

EM 02/03/2012: Menções honrosas aos alunos Daniel Abib e Michelle Ferreira, que também mandaram a resposta certa ao desafio.

Orientação para os alunos com matrícula anterior a 2010

Reproduzo abaixo a mensagem do Coordenador de Graduação da Economia que transmiti hoje cedo em sala, sobre a mudança no programa de TPE (novo currículo). Atenção os alunos com matrícula anterior a 2010:
Este é o novo curso de Técnicas de Pesquisa em Economia (ECO 1800). O curso faz parte da grade obrigatória dos alunos que se deparam com o NOVO currículo (isto é, os alunos que ingressaram em 2010). Se V. ingressou no curso antes de 2010 e, portanto, se depara com o currículo antigo, V. deverá se matricular no curso de TPE ministrado pelo professor Marco Antônio Cavalcanti, ou o curso de Econometria II do novo currículo (cujo conteúdo corresponde ao conteúdo de TPE do currículo antigo). Os conteúdos desta matéria e da matéria ministrada po Marco Antônio Cavalcanti são distintos. Portanto, V. precisa fazer a matéria de TPE do currículo antigo, o Departamento de Economia não considerará como válida a apresentação desta TPE. Quaisquer dúvidas ou perguntas, procure o coordenador Vinicius Carrasco ou o secretário Luciano Rossi.

segunda-feira, 27 de fevereiro de 2012

Boas vindas aos alunos da turma de 2012-1

Bem vindos ao blog da disciplina Técnicas de Pesquisa em Economia da PUC-Rio, turma 2JD!

À esquerda vocês encontrarão o material didático do curso. À direita, uma coleção de sites que recomendo a vocês. Além da publicação deste material, usarei o blog para complementar as discussões que teremos em sala de aula sobre a linguagem R e os tópicos teóricos da nossa disciplina, como inferência bayesiana, redes bayesianas e modelos ocultos de Markov.

Eu uso também bastante o Twitter, para antecipar o tema das aulas, recomendar leituras extras ou sites interessantes, e para avisos de modo geral. Para seguir-me, use o botão no alto do blog, à direita. (Você precisará ter uma conta no Twitter.)