In [1]:
# rm(list=ls()) 
options(OutDec = ",")
#==============================================================================
# Exemplo:
# Consumo e renda agregados dos EUA entre 2000 e 2009
#==============================================================================
# Modelo: 
# Consumo(y) = beta0 + beta1 Renda(x) + epsilon
#==============================================================================
dados <- read.table("../dados/d01_consumo.txt",header=T,sep=",")
x     <- dados[,2]
y     <- dados[,3]
print(head(dados))
  Year       X      C
1 2000  8559,4 6830,4
2 2001  8883,3 7148,8
3 2002  9060,1 7439,2
4 2003  9378,1 7804,0
5 2004  9937,2 8285,1
6 2005 10485,9 8819,0
In [2]:
#==============================================================================
# Grafico de dispersao
#==============================================================================
par(mfrow=c(1,1),lwd=2.0,cex.lab=1.5,cex.axis=1.1,lab=c(8,8,5),
    mar=c(4.5,4.5,1,1),xpd=T,cex.main=2.0)
plot(x,y,pch=15,xlab="Renda pessoal",ylab="Consumo pessoal",lwd=3,
     xlim=c(8500,12500),ylim=c(6500,10500))
lines(x,lm(y~x)$fitted)
text(x[1]+200,y[1],"2000")
text(x[2]+200,y[2],"2001")
text(x[3]-200,y[3],"2002")
text(x[4]-200,y[4],"2003")
text(x[5]-200,y[5],"2004")
text(x[6]-200,y[6],"2005")
text(x[7]+200,y[7],"2006")
text(x[8]+200,y[8],"2007")
text(x[9]-400,y[9]-50,"2008")
text(x[10]+400,y[10],"2009")
In [3]:
#==============================================================================
# A funcao 'lsfit' faz ajuste de minimos quadrados.
# Entretanto, recomenda-se o uso da funcao 'lm' por ser mais completa.
# Aqui estamos interessados somente nos coeficientes.
#==============================================================================
print(lsfit(x,y)$coef)
print(lm(y ~ x )$coef)
   Intercept            X 
-587,1854878    0,8826875 
 (Intercept)            x 
-587,1854878    0,8826875