Tag

regressão simples Archives - Análise Macro

Implementando regressões simples no R

By | Hackeando o R

Regredir um variável x contra uma variável y é um poderoso recurso estatístico. De modo a explicar o método, suponha que estamos interessados em estimar os parâmetros populacionais \beta_0 e \beta_1 de um modelo de regressão simples

(1)   \begin{align*} y = \beta_0 + \beta_1 x + u  \end{align*}

a partir de uma amostra aleatória de y e x. Os estimadores de Mínimos Quadrados Ordinários (MQO) serão

(2)   \begin{align*} \hat{\beta}_0 &= \hat{y} - \hat{\beta_1} \bar{x} \\ \hat{\beta_1} &= \frac{Cov(x,y)}{Var{x}}. \end{align*}

Baseado nos parâmetros estimados, a reta de regressão será

(3)   \begin{align*} \hat{y} = \hat{\beta}_0 + \hat{\beta}_1 x. \end{align*}

Para uma dada amostra, nós precisaremos calcular as quatro estatísticas \bar{y}, \bar{x}, Cov(x,y) e Var(x) e colocá-las nessas equações. Para ilustrar, vamos considerar o exemplo 2.3 de Wooldridge (2013) sobre Salários de CEOs e Retornos sobre o patrimônio. Para isso, considere o seguinte modelo

(4)   \begin{align*} salary = \beta_0 + \beta_1 roe + u \end{align*}

onde salary é o salário anual de CEO em milhares de dólares e roe é o retorno médio sobre o patrimônio em percentual. O parâmetro \beta_1 irá medir a variação no salário anual quando o retorno médio sobre o patrimônio aumentar em um ponto percentual. Para estimar esse modelo, podemos utilizar o conjunto de dados ceosal1. Podemos dar uma olhada nas variáveis do conjunto de dados cesal1 a partir do pacote wooldridge como abaixo.


data(ceosal1, package='wooldridge')
attach(ceosal1)

Uma vez que tenhamos carregado o conjunto de dados, podemos calcular manualmente os parâmetros \beta_0 e \beta_1, como abaixo.


# Cálculo manual dos parâmetros
b1hat = cov(roe,salary)/var(roe)
b0hat = mean(salary) - b1hat*mean(roe)

Isto é, a reta de regressão será dada por

(5)   \begin{align*} \hat{salary} = 963,191 + 18,501 * roe \end{align*}

o que pode ser facilmente obtido com o código abaixo:


lm(salary ~ roe)

Implicando que para um roe = 0, teremos um salário previsto de 963,19 ou US$ 963.191, que é o intercepto. Ademais, se \Delta roe = 1, então \Delta salary = 18,5 ou US$ 18.501. Podemos, por fim, desenhar a reta de regressão com o código abaixo.


CEOregress = lm(salary ~ roe)
plot(roe, salary, ylim=c(0,4000))
abline(CEOregress, col='red')

Vamos continuar nossa revisão de modelos de regressão simples com o conjunto de dados wage1. Estamos interessados agora em estudar a relação entre educação e salários, de modo que o nosso modelo de regressão será

(6)   \begin{align*} wage = \beta_0 + \beta_1 education + u. \end{align*}

O que pode ser obtido com o código abaixo.


modelo = lm(wage ~ educ, data=wage1)
modelo

Isto é, teremos a seguinte reta de regressão

(7)   \begin{align*} \hat{wage} = -0,9 + 0,54 * education \end{align*}

de modo que um ano adicional de estudo implica em mais 54 centavos à hora de trabalho. O objeto obtido com a função lm contém todas as informações relevantes de uma regressão. Abaixo, acessamos os elementos do objeto CEOregress:


names(CEOregress)
CEOregress$coefficients

Podemos obter os valores ajustados:


plot(CEOregress$fitted.values)

E os resíduos:


plot(CEOregress$residuals)

Por fim, podemos ainda obter um sumário de todas as estatísticas relevantes da regressão com a função abaixo.


summary(CEOregress)

O que podemos gerar como tabela com o pacote stargazer como abaixo.

Dependent variable:
salary
roe 18.501*
(11.123)
Constant 963.191***
(213.240)
Observations 209
R2 0.013
Adjusted R2 0.008
Residual Std. Error 1,366.555 (df = 207)
F Statistic 2.767* (df = 1; 207)
Note: *p<0.1; **p<0.05; ***p<0.01

Gostou? Isso e muito mais você aprende em nosso Curso de Introdução à Econometria usando o R.

__________________

(*) Wooldridge, J. M. Introductory Econometrics: A Modern Approach. Editora Cengage, 2013.

Estimando regressões múltiplas com o R

By | Cursos da Análise Macro

A turma de setembro do nosso Curso de Introdução à Econometria usando o R terá uma grande novidade. A apostila e as listas de exercício foram revisadas e atualizadas com exercícios do livro clássico de Jeffrey Marc Wooldridge. Todos feitos no R, de modo a mostrar para o aluno como a teoria pode ser complementada com a prática. Com isso, trazemos ainda mais aplicações para o curso, o que garante total absorção do conteúdo. Para ilustrar, vamos considerar nesse post o modelo de regressão múltipla. Primeiro, um pouco de teoria e depois um exemplo do Wooldridge feito no R.

Em post anterior nesse blog, vimos o modelo de regressão simples, onde y pode ser explicado por uma única variável x. O problema básico desse tipo de análise é que ela faz uma suposição bastante forte, qual seja, que x não está correlacionado com o erro, dificultando a aplicação da condição ceteris paribus. A análise de regressão múltipla, por outro lado, é mais receptiva a esse tipo de condição, uma vez que ela permite que controlemos outros fatores que afetam y, adicionando os mesmos na equação. Assim, por suposto, se queremos explicar y, podemos utilizar k variáveis, como abaixo:

(1)   \begin{align*} y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \beta_3 x_3 + ... + \beta_k x_k + u,  \end{align*}

onde \beta_0 é o intercepto, \beta_k é o parâmetro associado a x_k. De modo a obter uma estimativa para 1, devemos observar que

(2)   \begin{align*} E(u|x_1, x_2, ..., x_k) = 0. \end{align*}

Isto é, que todos os fatores no termo de erro não observado u sejam não correlacionados com as variáveis explicativas. De modo a obter estimativas para os \beta_k parâmetros, é possível recorrer ao método de mínimos quadrados ordinários. Isto é, dado

(3)   \begin{align*} \hat{y} = \hat{\beta_0} + \hat{\beta_1} x_1 + \hat{\beta_2} x_2 + ... + \hat{\beta_k} x_k, \end{align*}

onde \hat{\beta_k} é a estimativa de \beta_k, o método de MQO escolhe as estimativas \hat{\beta_k} que minimizam a soma dos quadrados dos resíduos:

(4)   \begin{align*} \sum_{i=1}^{n} (y_i - \hat{\beta_0} - \hat{\beta_1} x_{i1} - ... - \hat{\beta_k} x_{ik})^2. \end{align*}

O problema acima pode ser resolvido por meio de cálculo multivariado, de onde obtemos as condições de primeira ordem

(5)   \begin{align*} \sum_{i=1}^{n} (y_i - \hat{\beta_0} - \hat{\beta_1} x_{i1} - ... - \hat{\beta_k} x_{ik}) = 0 \nonumber \\ \sum_{i=1}^{n} x_{i1} (y_i - \hat{\beta_0} - \hat{\beta_1} x_{i1} - ... - \hat{\beta_k} x_{ik}) = 0 \nonumber \\ \sum_{i=1}^{n} x_{i2}(y_i - \hat{\beta_0} - \hat{\beta_1} x_{i1} - ... - \hat{\beta_k} x_{ik}) = 0 \nonumber \\ \sum_{i=1}^{n} x_{ik}(y_i - \hat{\beta_0} - \hat{\beta_1} x_{i1} - ... - \hat{\beta_k} x_{ik}) = 0, \nonumber \end{align*}

ou simplesmente, E(u) = 0 e E(x_j u) = 0.

Interpretação da equação de regressão de MQO

Suponha, agora, que tenhamos

(6)   \begin{align*} \hat{y} = \hat{\beta_0} + \hat{\beta_1} x_1 + \hat{\beta_2} x_2. \end{align*}

O intercepto \beta_0 será então o valor previsto de y quando x_1 = x_2 = 0. Já as estimativas \hat{\beta_1} e \hat{\beta_2} devem ser interpretadas como efeito parcial ou simplesmente ceteris paribus. Isto é,

(7)   \begin{align*} \Delta \hat{y} = \hat{\beta_1} \Delta x_1 + \hat{\beta_2} \Delta x_2, \nonumber \end{align*}

de modo que obtemos a variação prevista em y dadas as variações em x_1 e x_2. Em particular, quando x_2 é mantido fixo, de modo que \Delta x_2 = 0, teremos

(8)   \begin{align*} \Delta \hat{y} = \hat{\beta_1} \Delta x_1. \nonumber \end{align*}

Ou, simplesmente,

(9)   \begin{align*} \frac{\partial \hat{y}}{\partial \hat{x_1}} = \hat{\beta_1}, \nonumber \end{align*}

onde \hat{\beta_1} irá medir o efeito da variação de x_1 em y, mantido x_2 constante.

Exemplo: equação do salário-hora

De modo a ilustrar, vamos considerar o exemplo 3.2 do livro do Wooldridge, em que o mesmo utiliza o conjunto de dados wage1, disponível no pacote wooldridge. Ele pode ser acessado como abaixo.


data(wage1, package='wooldridge')

De posse desse conjunto de dados, você pode estimar o modelo abaixo:


lm(log(wage) ~ educ+exper+tenure, data=wage1)

De modo a obter a seguinte reta de regressão para o log do salário-hora

(10)   \begin{align*} \hat{log(wage)} = 0.284 + 0.092 educ + 0.0041 exper + 0.022 tenure. \end{align*}

De onde se conclui, por exemplo, que o aumento de um ano na educação formal equivale a um aumento de 9.2\% no salário-hora, mantidos exper e tenure fixos.

Estimando os parâmetros de uma regressão simples com o R

By | Cursos da Análise Macro

A turma de setembro do nosso Curso de Introdução à Econometria usando o R terá uma grande novidade. A apostila e as listas de exercício foram revisadas e atualizadas com exercícios do livro clássico de Jeffrey Marc Wooldridge. Todos feitos no R, de modo a mostrar para o aluno como a teoria pode ser complementada com a prática. Com isso, trazemos ainda mais aplicações para o curso, o que garante total absorção do conteúdo. Para ilustrar, vamos considerar nesse post o modelo de regressão simples. Primeiro, um pouco de teoria e depois um exemplo do Wooldridge feito no R.

Estamos interessados em estimar os parâmetros populacionais \beta_0 e \beta_1 de um modelo de regressão simples

(1)   \begin{align*} y = \beta_0 + \beta_1 x + u  \end{align*}

a partir de uma amostra aleatória de y e x. De acordo com Wooldridge, os estimadores de Mínimos Quadrados Ordinários (MQO) serão

(2)   \begin{align*} \hat{\beta}_0 &= \hat{y} - \hat{\beta_1} \bar{x} \\ \hat{\beta_1} &= \frac{Cov(x,y)}{Var{x}}. \end{align*}

Baseado nos parâmetros estimados, a reta de regressão será

(3)   \begin{align*} \hat{y} = \hat{\beta}_0 + \hat{\beta}_1 x. \end{align*}

Para uma dada amostra, nós precisaremos calcular as quatro estatísticas \bar{y}, \bar{x}, Cov(x,y) e Var(x) e colocá-las nessas equações. Para ilustrar, vamos considerar o exemplo 2.3 do Wooldridge sobre Salários de CEOs e Retornos sobre o patrimônio. Para isso, considere o seguinte modelo

(4)   \begin{align*} salary = \beta_0 + \beta_1 roe + u \end{align*}

onde salary é o salário anual de CEO em milhares de dólares e roe é o retorno médio sobre o patrimônio em percentual. O parâmetro \beta_1 irá medir a variação no salário anual quando o retorno médio sobre o patrimônio aumentar em um ponto percentual. Para estimar esse modelo, podemos utilizar o conjunto de dados ceosal1.


data(ceosal1, package='wooldridge')

attach(ceosal1)

Uma vez que tenhamos carregado o conjunto de dados, podemos calcular manualmente os parâmetros \beta_0 e \beta_1, como abaixo.


# Cálculo manual dos parâmetros
b1hat = cov(roe,salary)/var(roe)
b1hat
b0hat = mean(salary) - b1hat*mean(roe)
b0hat

Isto é, a reta de regressão será dada por

(5)   \begin{align*} \hat{salary} = 963.19 + 18.50 * roe. \end{align*}

 Implicando que para um roe = 0, teremos um salário previsto de US$ 963.19, que é o intercepto. Ademais, se \Delta roe = 1, então \Delta salary = US$ 18.50. Podemos, por fim, desenhar a reta de regressão com o código abaixo.


CEOregress = lm(salary ~ roe)
plot(roe, salary, ylim=c(0,4000))
abline(CEOregress, col='red')

E o resultado...

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais
e conteúdos exclusivos sobre Análise de Dados!

Assinar Gratuitamente