terça-feira, 30 de setembro de 2008

Análise de cluster da rentabilidade empresas do Ibovespa

####Segue abaixo apenas um dos métodos que foi elaborado para separação das empresas em #####clusters

a<-agnes(dados, metric = "euclidean",stand = FALSE, method = "ward")
a
plot(a)
fo<-cutree(hclust(dist(dados,method="euclidean"),method="ward"),h=80)
plot(hclust(dist(dados),method="ward"))
abline(h=80)
country<-names(dados)
c<-lapply(1:5,function(nc) country[fo==nc])
ccmedia<-lapply(1:5,function(nc)
apply(dados[,fo==nc],2,mean))
cmedia


########bjs############

segunda-feira, 29 de setembro de 2008

Blog interessante

Olá, pessoal. Como alguns sabem, criei este blog há pouco tempo ( há 5 dias). Bem, procurando artigos de economia cuja autoria fosse de professores que já me deram aula de economia, cheguei ao blog abaixo que achei muito interessante. Lá vcs vão ver de tudo: discussões políticas, econômicas, artigos, indicação de outros blogs interessantes, críticas as mais diversas, referências a livros, etc, etc, etc.
O endereço do blog é
http://gustibusgustibus.wordpress.com/

bjs

Identificação, Estimação e Adequação de Modelos

http://leg.ufpr.br/~ehlers/CE017/praticas/node9.html

Livro

Analysis of Integrated and Cointegrated Time Series with R

sexta-feira, 26 de setembro de 2008

Analisando a rentabilidade das empresas do IBOVESPA

##vamos analisar a rentabilidade diária com os retornos do ibovespa
plot(rent.dia, ibov.dia, pch=20, cex=1.2, xlab="rent.dia", ylab="ibov ao dia", main="rentabilidade das empresas", col=c("slateblue", "firebrick", "darkolivegreen")[as.numeric(res)] )
abline(v=mean(rent.dia), lty=2, col="red")
abline(h=mean(ibov.dia), lty=2, col="red")
abline(v=median(rent.dia), lty=2, col="blue")
abline(h=median(ibov.dia), lty=2, col="blue")
legend(19, -1,c("roxo=baixa", "violeta=média", "verde=alta"))
title(sub="rentabilidade: média= vermelha e mediana=azul")

## hehe

quinta-feira, 25 de setembro de 2008

Matriz hat para estimar valores futuros

eq<-lm(y~x1+x2)
x<-model.matrix(eq)
h<-hat(x)
h # que é seu h00, pelo que entendi#
#Bem, usando o que vc falou: h00 = x0'((X'X)^-1)x0 (X'X)^-1 é o mesmo anterior ....
# x0 é o vetor x para o qual eu quero gerar a previsão
# de um novo y, este vetor não foi utilizado pra estimar
# o modelo.
# então suponha que xo=[1,2,2]
x0<-matrix(c(1,2,2),3,1)
x0
# então
h00<-t(x0)%*%solve(crossprod(x))%*%x0
h00

bjim, meu caro

Dúvidas de um colega

eq<-lm(y~x1+x2)
names(eq)
ajuste<-eq$fitted.values
x<-model.matrix(eq)
h<-hat(x)
h # que é seu h00, pelo que entendi
h[1]h[1:length(h)]
eq$coefficients
eq$coefficients[1]# seu bo
eq$coefficients[1:length(eq$coefficients)]
Olha, mas lembre que em projeções, quando se tem variáveis exógenas, não se consegue projetar além da mostra,mas se vc tem variáveis endógenas Y(-1) y(-2) se consegue. Isto é parecido com um sistema de variáveis endógenas do tipoVAR.

quarta-feira, 24 de setembro de 2008

AUTO-IDENTIFICAÇÃO DE MODELOS

Claro, vc consegue identificar o melhor modelo. O Próprio programa identifica para vc. Este é um exemplo de alisamento exponencial e ARIMA para a série de comércio no Brasil.
fD1 <- ets(COM)
fD2 <- auto.arima(COM)
fD1.out <- ets(pmc,model=fD1)
fD2.out <- Arima(pmc,model=fD2)

## ok!!!

terça-feira, 23 de setembro de 2008

Média da carteira de ativos

Não sô, vc tem de montar deste jeito.
w<-c(unlist(carteira)/sum(unlist(carteira)))
wm<-as.matrix(dados)
co<-cov(m)
peso<-matrix(w,3,1)
risco<-sqrt(t(peso)%*%co%*%peso)
risco
retcarteira<-t(peso)%*%mean(dados)
retcarteira

# entendeu Fábio? Pôxa....

# bjs

Distribuição de probabilidade dos retornos da usiminas

Marcos, vc tem de fazer assim para obter a distribuição de probabilidade dos retornos da Usiminas neste período da amostra, usando o R:

dad<-read.table("usiminas.txt",head=T)
summary(dad)
y<-dad$ret
m<-matrix(sample(y,1000*1000,r=T),1000,1000)
medias<-colMeans(m)
x<-sort(medias)
par(mfrow=c(1,2))
d<-density(medias)
hist(medias,prob=T)
lines(d)
plot(function(x) dnorm(x, mean(medias), sd(medias)), min(medias), max(medias), ylab = "dens")

bjs

segunda-feira, 22 de setembro de 2008

Comandos Básicos em EViews

‘ ######## Montando uma regressão#######

‘vamos criar um workfile com o nome de coeficientes'
workfile coeficientes u 1 20

'vamos criar as séries x1 , x2 e y onde nrnd é a normal(0,1) e o restante você já sabe'
series x1= 15+@nrnd
series x2=10+10*@nrnd
series u=nrnd
series y=3*(x1^2)+2*x2+5+u

'vamos criar um vetor para estimar o intercepto
series betazero=1

'vamos guardar as variáveis e a série que só tem 1 no grupo denominado g'
group g betazero x1 x2

'vamos converter o grupo g em matriz chamada xx
matrix xx=@convert(g)

'vamos calcular os coeficientes
vector betas=@inverse((@transpose(xx)*xx))*@transpose(xx)*y

'vamos mostrar os coeficientes
show betas

'vamos criar a equação e comparar os coeficientes
equation eq01.ls y c x1 x2

'vamos mostrar os coeficientes
show c

Comandos Básicos em R

### Medidas de avaliação de ajuste na amostra
y=ipc # coloque a série real
previsao<-eq$fitted.values ## coloque a série ajustada
diferenca2=(y-previsao)^2
diferenca=y-previsao
y2=y^2
n<-length(y)
previsao2=previsao^2
diferenca_perc= diferenca/y
rmse=sqrt(sum(diferenca2)/n)
mae=sum(abs(diferenca))/n
mape=(sum(abs(diferenca_perc))/ n)*100
tic=sqrt(sum(diferenca2)/n)/(sqrt(sum(y2)/n)+sqrt(sum(previsao2)/n))
media_prev=mean(previsao)
mediay=mean(y)
bp=((media_prev-mediay)^2)/(sum(diferenca2)/n)
desvio_prev=sd(previsao)
desvioy=sd(y)
vp=(desvio_prev-desvioy)^2/(sum(diferenca2)/n)
cp=1-(bp+vp)
resultado<-list("raiz do erro quadrático médio"=rmse, "erro absoluto médio"=mae,
"erro percentual absoluto médio"=mape,"coeficiente de desigualdade de Theil"=tic,
"proporção de vício"=bp,"proporção de variância"=vp,"proporção de covariância"=cp)
resultado