550 likes | 620 Views
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.
E N D
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
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.
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
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.
Ah…o que um logaritmo faz… Relação parece linear, não?
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 O incremento é o MESMO VALOR 1 QUALQUER QUE SEJA o x de onde se parte. 0 x x+1
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ão-fumantes. • E também outro para fumantes. • Podemos rodar um modelo separado para cada conjunto de dados.
Modelo único com covariáveis • Modelo único com duas covariáveis: sexo e idade. • 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
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 30 caracteristicas de 1500 imoveis Matriz X de dimensao 1500 x 30 Precos de 1500 imoveis Vetor de dimensao 1500
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, 100)) 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) • 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
O problema de forma matricial Coloque estes valores como um vetor de dimensão 1500