Regressão e Mínimos quadrados
Renato Assunção
DCC-UFMG
Nem sempre queremos interpolar
Relação entre duas quantidades x e y
 Relação não é perfeita devido a:

– Erros de medição
– Ignorância sobre o fenômeno
– Impossibilidade de obter todas as
informações necessárias
Fontes de imprecisão

Relação é perfeita teoricamente mas
existem erros de medição.
 A lei de OHM diz respeito à relação entre
corrente, tensão e resistência: RI=V onde:
– I é a corrente em ampéres
– V é a tensão em volts
– R é a resistência em ohms

Fixe um resistência R e faça algumas
medições de I e V. Elas não seguem a
relação acima PERFEITAMENTE.
Ignorância e falta de informação
Não sabemos exatamente o que faz
com que Y varie mas parece ser x.
 Taxa de desemprego e Inflação:
relação inversa (curva de Phillips)
 Um gráfico de Y versus x mostra que
existe uma relação, talvez não
causal, entre y e x.
 Qual o mecanismo extao que
relaciona x e y?

Falta de informação
Acreditamos que exista uma relacao
perfeita entre x e y
 Mas não conseguimos medir x: caro,
impossível, ou muito demorada, ou
destrutiva do material...
 Medimos apenas um indicador
grosseiro de x, uma quantidade z.
 A relação entre y e z não é perfeita.

Relação entre x e y
Mede-se n pares de pontos x e y
 Fazemos uma tabela com os pontos.

Processo químico
X = temperatura da
reação
Y = Produção (yield)
25 medições em
diferentes níveis de
temperatura do processo
Gráfico dos 25 pontos
Relação entre x e y
Não é uma reta perfeita.
 Mas podemos ver que existe um reta
α + βx subjacente tal que Y ≈ α + βx
 Como encontrar esta reta?

Dados de mortalidade
Y = Número de pessoas mortas, por faixa
etária, dentre os membros do fundo de
pensão do Banco do Brasil.
 Dados a partir de 20 anos e por idade
simples:

– 20 anos = 1 morte
– 21 anos = 4 mortes
– 22 anos = 3 mortes, etc.
Número de mortes (Y) versus idade (X)
Relação entre y e x?







Morte está associada a idade.
Maior idade  maior chance de morrer num
dado ano
Queremos estimar a probabilidade de morte
entre idades x e x+1 dado que está vivo à
idade x
Seja qx = Prob(Morte em [x, x+1) | vivo em x)
Como qx está associado com x? Esperamos
que qx cresça com x.
Onde está essa relação no gráfico anterior?
O que está faltando?
Falta levar em conta mais um fator





Precisamos saber o número de pessoas que
estavam vivas no início do ano em cada
faixa etária.
Este número é o número Pop de EXPOSTOS
AO RISCO de morte.
Y é claramente associado com Pop.
Se Pop = 5, Y não pode maior que 5!
Duas faixas com probabilidade de morte
iguais (digamos 0.01):
– uma com Pop=100  esperamos contar 1 morte
– Outra com Pop=10000  esperamos 100 mortes
Y x idade (esq) e Pop x idade (dir)
Plot de Y versus Pop=expostos
Não é o que queremos ver...
O que precisamos ver?





Precisamos ver como a probabilidade de
morte varia com idade.
Divida o número de mortes Y pelo número
de expostos Pop em cada idade
Isto dá a proporção daqueles vivos em
cada idade que acabaram falecendo
durante o ano.
Esta proporção deve estar associada com
qx = probabilidade de morte por faixa etária.
Plotar esta proporção versus idade.
Não está bom ainda... O que falta?
Ah…o que um logaritmo faz…
Relação parece linear, não?
Regressão LINEAR de log(y/exp) versus idade
Parâmetros da regressão linear



Como interpretar os parâmetros de uma regressão linear?
Considere a relação teórica/postulada entre o valor
esperado de Y quando x esta fixado num certo valor.
Seja x = 0 + 1 x este valor esperado de Y quando x esta
fixo
y
x = 0 + 1 x
Incremento em x ao
passar de x para x+1
é 1
0
x
x+1
O incremento é o
MESMO VALOR 1
QUALQUER QUE SEJA
o x de onde se parte.
Parâmetros da regressão linear - 2

Isto é, se x=20 e mudamos para x=21, o valor esperado de
Y muda: ele varia da quantidade 1
 Este incremento não depende do nível x de onde
começamos: se x=45 e mudamos para x=46, o impacto no
valor esperado de Y continua sendo o mesmo valor 1
 Isto é uma forma muito simples de descrever o impacto
em μx da ação de variar x em uma unidade.
 É um resumo muito simples de entender: mude x em uma
unidade e você estará mudando o valor esperado de Y em
1
Interpretação dos parâmetros em GLM




Como interpretar os parâmetros da regressão quando usamos log(Y)?
Como antes, considere a relação teórica/postulada entre o valor
esperado de Y (isto e’, x) e o valor de x
– log(Yx/Expx) ≈ a + b*x
ou seja
Yx/Expx = qx ≈ exp(a + b*x)
Temos qx = exp(a) * exp(b*x) = exp(a) * [ exp(b) ]x
Ou seja qx = A * Bx
– onde A = exp(a) e B=exp(b)



Se mudamos da idade x para a idade x+1, a probabilidade
de morte passa de qx = A * Bx para qx+1 = A * Bx+1
A razão entre estas duas probabilidades é igual a
– qx+1/qx = ( A * Bx+1) / (A * Bx) = B
Isto é, qx+1 = B qx E ISTO VALE PARA TODO x
O que o parâmetro  mede?

Temos qx+1 = B qx onde B=exp()
 Pelo ajuste,   0.06  B  exp(0.06) = 1.062
Isto é, a mortalidade aumenta em aprox
6,2% a cada ano adicional.
 Ao passar de 30 para 31 anos de idade, a
chance de morrer em um ano aumenta em
6.2%
 Ao passar de 80 para 81 anos, a chance
também aumenta nos mesmos 6.2%

Modelos estatísticos




Compare a situação de conhecimento atual com
aquela com a qual começamos.
Poucos cálculos depois e sabemos agora que, a
cada ano de idade, a mortalidade aumenta em 6.2%
aproximadamente.
Podemos até mesmo obter um intervalo que diz
quão boa (ou quão ruim) é essa aproximação.
Um intervalo de 95% de confiança para 1 é dado
por 0.060 +- 1.96 * 0.004 = (0.053, 0.068)
– onde 0.04  0.003839 é o standard error da estimativa (ver
saída do R)

O I.C. de 95% para B=exp(1) é
– (exp(0.053), exp(0.068)) = (1.054, 1.070)
Modelos estatísticos





Quanta economia de explicação, quanta concisão
para explicar um fenômeno complexo.
A cada ano adicional de idade aumentamos em
aproximadamente 6.2% a chance de morrer em um
ano. Com grande confiança podemos dizer que
esse aumento está entre 5.4% e 7.0%
Este é o poder, a beleza, a importância dos
modelos estatísticos.
Extrair toda a informação possível de um grande
conjunto de dados.
Informação é uma descrição sintética do
mecanismo que está gerando os dados.
E outros grupos?
Os dados anteriores eram para
homens não-fumantes.
 O quadro é outro para mulheres nãofumantes.
 E também outro para fumantes.
 Podemos rodar um modelo separado
para cada conjunto de dados.

Ajustes separados
Masculino
Não Fumante
ˆ0  9,36440
Feminino
ˆ0  8,67990
ˆ  0,03756
ˆ1  0,06007
1
Exp( 1 )  1,0619 Exp( 1 )  1,03827
Fumante
ˆ0  10,06363
ˆ0  9,08423
ˆ1  0,08214
ˆ1  0,06498
Exp( 1 )  1,08561 Exp( 1 )  1,06713
Modelo único com covariáveis

Modelo único com duas covariáveis: sexo e
idade.
y  0  1Idade 2 Sexo 3 Fumo 4 IdadeSexo 5 IdadeFumo







Estimate Std. Error
z value Pr(>|z|)
(Intercept)
-9.37176
0.18815 -49.80892 0.00000
idadetot
0.05967
0.00380 15.69628 0.00000
sexo
0.64565
0.32488
1.98738 0.04688
fumo
-0.57489
0.35975 -1.59803 0.11004
idadetot:sexo -0.01949
0.00674 -2.89215 0.00383
idadetot:fumo 0.02183
0.00702
3.10992 0.00187
Ajuste CONJUNTO
Masculino
Não
Fumante
ˆ1  0.05967
Exp( ˆ )  1,06149
1
Fumante
ˆ2  ˆ3  ˆ6  0,49339
Exp( ˆ2  ˆ3  ˆ6 )  0,61055
Feminino
ˆ2  ˆ3  ˆ5  0,68583
Exp( ˆ2  ˆ3  ˆ5 )  1,98541
ˆ2  ˆ3  ˆ4  ˆ5  ˆ6  0,13276
Exp( ˆ2  ˆ3  ˆ4  ˆ5  ˆ6 )  1,14198
Graficos:
The landmark Doll and Peto study (1976) on
smoking and heart attack deaths.
• Doll and Peto collected data on thousands of British
doctors, many of whom smoked, and many did not.
• The unit of analysis was the number of person-years,
of which over 180,000 were collected.
• The outcome of interest was death due to coronary
thrombosis.
• The explanatory variables of interest were smoking
and age (because heart attack deaths increase with
age).
Data for the Doll and Peto study
agecat smoker died person_y
1 1
1
32
2 1
1
104
3 1
1
206
4 1
1
186
5 1
1
102
1 0
1
2
2 0
1
12
3 0
1
28
4 0
1
28
5 0
1
31
1 1
0
52375
2 1
0
43144
3 1
0
28406
4 1
0
12477
5 1
0
5215
1 0
0
18788
2 0
0
10661
3 0
0
5682
4 0
0
2557
5 0
0
1431
* agecat = 1 for 35-44, 2 for 45-54, 3 for 55-64, 4 for 65-74, 5 for 75-84
* smoker = 1 for yes, 2 for no
* deaths = deaths in group due to coronary thrombosis
* person_y = total person-years of exposure for group
Regression-style poisson model
. poisson deaths smoker age1 age2 age3 age4, exposure(person_y)
Poisson regression
Number of obs
=
10
LR chi2(5)
=
922.93
Prob > chi2
=
0.0000
Log likelihood = -33.600153
Pseudo R2
=
0.9321
-----------------------------------------------------------------------------deaths |
Coef.
Std. Err.
z
P>|z|
[95% Conf. Interval]
---------+-------------------------------------------------------------------smoker |
.3545356
.1073741
3.302
0.001
.1440862
.564985
age1 | -3.700096
.1922195
-19.249
0.000
-4.07684
-3.323353
age2 | -2.216089
.1270503
-17.443
0.000
-2.465104
-1.967075
age3 | -1.072591
.1086726
-9.870
0.000
-1.285586
-.8595969
age4 | -.3496037
.1104853
-3.164
0.002
-.5661509
-.1330565
_cons | -4.219229
.1249837
-33.758
0.000
-4.464193
-3.974266
person_y | (exposure)
------------------------------------------------------------------------------
Predição de preços imobiliários
Qual o valor de um imóvel?
 Existem softwares para fazer esta
predição de forma automática a partir
de varias características do imóvel.
 Menos subjetivo, mais rápido, primeira
avaliação
 Como um software desses pode ser
construído?

Preços de imóveis
Coletamos precos de 1500 imoveis a
venda no mercado de BH
 Alguns sao caros, outros sao baratos.
 O que faz com que os precos dos
imoveis variem?
 As três coisas mais importantes que
afetam o valor de um imóvel...

Localização

Localização:
– dividir a cidade em pequenos áreas

Outra abordagem mais simples:
– localização e’ status socio-economico;
– status e’ mensurados por renda.
– Renda e’ medida pelo IBGE em 2000
pequenas áreas da cidade.
– Renda do “chefe do domicilio”

Então: “localização” = renda media da
região onde esta o imóvel.
Outras características do imóvel









Ano da construção
Área total do imóvel
Numero de quartos
Numero de suítes
Quantos aptos por andar?
possui salão de festas? 0 ou 1
Possui piscina? 0 ou 1
ETC...
Ao todo, 30 características numéricas para cada
um dos 1500 imóveis.
Visão matricial
Organizar os dados como vetores e
matrizes.
 preços: um vetor Y de dimensão 1500
 As características: matriz 1500 x 30

– Cada linha = um imóvel
– 1ª. coluna = renda media da regiao
– 2ª. coluna = ano da construção
– 3ª. coluna = área total
– Etc.
Visão matricial
 y1 
 y 
 2 
Y   


 y1499 
 y1500 
 renda1
 renda
2

X 


renda1499
renda1500
Precos de 1500 imoveis
Vetor de dimensao 1500
area1
area2

area1499
area1500
salao1 
 salao2 




 salao1499 
 salao1500 

30 caracteristicas de 1500 imoveis
Matriz X de dimensao 1500 x 30
Preco e’ uma soma ponderada
Procuramos um modelo matematico
simples que possa explicar, a partir
das características, porque alguns
imóveis são caros e outros são
baratos.
 Área total: quanto maior o imóvel,
maior o preço.

Influencia de área
Vamos fazer uma primeira aproximação,
talvez muito grosseira e sujeita a revisões.
 Mas será um ponto de partida.
 Vamos imaginar que, APROXIMADAMENTE,
o preço aumenta linearmente com a área do
imóvel .
 Isto e’, que o preço Y ≈ a + b * area

Um gráfico com 150 imóveis
Rodrigo, usei o seguinte:
area <- runif(150, 50, 500)
y <- abs(50 + 2 * area + rnorm(150, 0, 100))
plot(area, y, ylim=c(0, max(y)))
Deixe comentado no arquivo .tex para
eu modificar mais tarde se necessario.
Cada ponto e’ um imovel
O eixo vertical tem os precos (em
milhares de reais)
O eixo horizontal tem as areas (em
metros quadrados)
Parece que o preco e’, grosseiramente,
uma funcao linear da area
Isto e’, Y ≈ a + b*area
Um gráfico com 150 imoveis
area <- runif(150, 50, 500)
y <- abs(50 + 2 * area + rnorm(150, 0, 10
plot(area, y, ylim=c(0, max(y)))
abline(50, 2)
Reta no grafico corresponde
a esta equacao:
Preco Y ≈ 50 + 2*area
Área não e’ tudo
Dois imóveis com praticamente a
mesma area possuem preços
diferentes.
O que causa a diferença?
Idade do imóvel?
Dois imóveis, com áreas iguais: se um
for mais velho, provavelmente será
mais barato.
Ampliando o modelo inicial
Podemos entao imaginar que a idade traz
um impacto adicional ao nosso modelo de
preco.
 Neste momento, temos Y ≈ a + b*area
 Já vimos ate mesmo que a ≈50 e b ≈ 2
 Podemos agora acrescentar o impacto de
idade imaginando que:

– Y ≈ a + b*area + c*idade

Como maior idade reduz o preço, devemos
ter c < 0
Um modelo ainda mais complexo
Mas o preço não depende apenas de
area e idade.
 Dois imóveis com mesma área e
mesma idade podem ter preços bem
diferentes dependendo de:

– Sua localizacao (renda da sua regiao)
– Numero de suites
– Numero de vagas na garagem
– Etc.

Cada fator pode ser acrescido ao
modelo inicial de forma linear
Modelo mais complexo
Vamos considerar um modelo que, a partir
das 30 características do imóvel, fornece
uma predição do preço da seguinte forma:
 Y e’ aproximadamente igual a


a + b*area + c*idade + d*localizacao + ETC...

O problema e’:
– como encontrar os valores de a, b, c, etc. que
tornem a aproximação a melhor possível?
O problema de forma matemática

Queremos que cada um desses 1500
valores seja aproximadamente igual a
uma combinação linear das 30
características (mais a constante a)
y1  a  b * area1  c * idade1  ...
y2  a  b * area2  c * idade2  ...

y1500  a  b * area1500  c * idade1500  ...

Podemos escrever isto de forma
matricial
O problema de forma matemática

Para facilitar a notação no futuro,
vamos escrever os pesos que
multiplicam cada característica como
b0 (para a constante), b1 (para area), b2
(para idade),..., b30 para a presenca ou
não de salão de festas
y1  b0  b1 * area1  b2 * idade1  ...  b30 * salao1
y2 b0  b1 * area2  b2 * idade2  ...  b30 * salao2

y1500  b0  b1 * area1500  b2 * idade1500  ...  b30 * salao1500
O problema de forma matricial
y1  b0  b1 * area1  b2 * idade1  ...  b30 * salao1
y2  b0  b1 * area2  b2 * idade2  ...  b30 * salao2

y1500  b0  b1 * area1500  b2 * idade1500  ...  b30 * salao1500
Coloque estes valores
como um vetor de
dimensão 1500
 area1 
 idade1 
 salao1 
1
area 
idade 
 salao 
1
2
2
2




b0   b1     b2     ...  b30   







area
idade
salao
1
4
4
4




 area5 
idade5 
 salao5 
1
Forma vetorial
 y1 
 area1 
 idade1 
 salao1 
1
y 
area 
idade 
 salao 
1
2
2
2
 2




Y      b0   b1     b2     ...  b30   
 







 y4 
area4 
idade4 
 salao4 
1
 y5 
 area5 
idade5 
 salao5 
1
Y e’ um vetor de dimensão 1500 escrito como combinação linear de
31 vetores, cada um deles de dimensão 1500.
Problema: encontrar os coeficientes b0, b1, ..., b30 que tornem a
aproximação acima a melhor possível.
A solução do problema
Veremos com detalhes mais tarde no
curso como resolver este problema.
 Neste momento, basta dizer que
nosso problema fica reduzido a um
sistema de equações lineares
 Ou ainda, a um problema de inverter
uma certa matriz quadrada.

A matriz de desenho X
Seja X a matriz 1500 x 31 abaixo (note que ela tem uma coluna
composta apenas de 1’s):
1
1

X  

1
1
renda1
area1
renda2

area2

renda1499
area1499
renda1500
area1500
salao1 
 salao2 




 salao1499 
 salao1500 

Solução: uma sistema linear
A solução b=(b0, b1, ..., b30)t
 de nosso problema e’ dada pelo vetor
 30 x 1 que e’ a solução desta equação
 matricial:
 XtX . b = Xt . Y
 Ou ainda, b = (XtX)-1 Xt . Y
 A matriz XtX ‘e de dimensão 31 x 31
 Como vamos inverte-la?

A geometria dos mínimos quadrados

Explicar ...
Download

Introdução a regressão