Artigos de Tecnologia e Negócios > Data Science

Aplicando a regressão linear com R

yuri.oliveira
yuri.oliveira

Estou fazendo um projeto que calcula o preço de um imóvel dado o valor de seu IPTU. Para isso, juntei informações sobre vários imóveis:

[table colwidth="50|50"] Valor do IPTU (R$),Preço do Imóvel (R$) 1.000\,00,500.000\,00 250\,00,125.000\,00 30\,00,80.000\,00 .,. .,. 2.596\,00,1.236.598\,00 [/table]

A ideia é conseguir saber o preço do imóvel a partir de seu valor de IPTU. Mas como podemos fazer isso?

Visualizando os dados

Já temos os dados dos IPTUs e o valor dos imóveis. E se utilizarmos esses dados para descobrirmos os valores dos imóveis no futuro? Isto é, com um valor de IPTU, descobrirmos o valor do imóvel.

Estou utilizando a linguagem R para fazer a análise dos dados. Para facilitar o trabalho, podemos criar um gráfico para ver como os dados estão dispostos. Para isso, vamos criar duas variáveis, uma com os valores dos IPTUs e outra com os valores dos imóveis.


valores_iptu <- c(1000, 250, 30, 2596, 2000, 1500, 1796, 450, 45, 100, 125, 264, 239, 493, 989, 1589, 1746, 3058, 176, 200)

valores_imoveis <- c(500000, 125000, 80000, 1236598, 1025976, 612000, 769320, 225369, 90569, 123056, 121349, 159397, 169863, 326986, 758965, 1120369, 1236025, 2369158, 120000, 150326)

E pedir para o R plotar (plot) o gráfico:

```text 

plot(valores_iptu, valores_imoveis)

[![](https://www.alura.com.br/artigos/assets/uploads/2018/08/image_0.png)](https://www.alura.com.br/artigos/assets/uploads/2018/08/image_0.png)

Bacana! Conseguimos ver nossos dados. Pelo gráfico, conseguimos ver que eles tendem a um padrão, que é, quanto maior o valor do IPTU, mais caro é o imóvel.

Agora que já vemos os dados e já sabemos como eles estão dispostos, como podemos predizer o valor de um imóvel pelo seu IPTU?

## Conhecendo a regressão linear

Podemos ver pelo gráfico que nossos dados tem uma progressão. Isto é, seguem uma certa linearidade. Podemos achar uma função que melhor "se encaixa" na nossa amostra.

Como estamos utilizando o `R` para fazer a análise, podemos utilizar sua função `lm()` para descobrir nossa função. Para isso, basta passar a variável `valores_imoveis` pelos (`~`) `valores_iptu`:

> lm(valores_imoveis ~ valores_iptu)
Call:

lm(formula = valores_imoveis ~ valores_iptu)

Coefficients:
 (Intercept)  valores_iptu  

    5369.2      601.4

Esse comando nos retornou algumas informações. Uma delas é a fórmula que passamos para o comando. Outras duas informações são: o valor **Intercept**, que é 5369.2, e o `valores_iptu`, que vale 601.4. Mas o que eles significam?

O comando `lm()` retorna para a gente uma **função afim**, ou uma função do primeiro grau, isto é, uma função que tem a forma: `f(x) = ax + b`. Os valores que o comando `lm` retorna são justamente os valores de `a` e `b`. No caso, nossa função ficaria:

`valor_imóvel = 601.4x + 5369.2`

Esse procedimento que utilizamos para descobrir a função é chamada de **regressão linear**. A regressão linear é muito utilizado em estatística, análise de dados e machine learning.

Podemos ver a reta da equação atribuindo o valor do retorno da função `lm()` a uma variável e passá-la na função `abline()`:

regressao_linear <- lm(valores_imoveis ~ valores_iptu)

abline(regressao_linear)



[![](https://www.alura.com.br/artigos/assets/uploads/2018/08/image_1.png)](https://www.alura.com.br/artigos/assets/uploads/2018/08/image_1.png)

Vemos a linha no gráfico gerada pela nossa função. Apesar de não passar por todos os valores, ela tem uma boa aproximação com os valores da amostra.

## Para saber mais

A regressão linear é muito utilizada na estatística, análise de dados e em machine learning. Existem várias aplicações que podemos utilizá-la. Neste caso, utilizamos a regressão com apenas uma variável, o IPTU, mas podemos ter outras variáveis. Em casos assim, falamos que temos uma regressão linear múltipla.

Aqui na Alura, temos vários cursos que mostram casos de uso com a regressão linear. Um deles, é o [curso de estatística com R](https://www.alura.com.br/curso-online-introducao-a-estatistica-2), nele você verá os conceitos estatísticos e como aplicá-los com o R.

Também temos o curso de [aprendizado supervisionado de máquinas](https://www.alura.com.br/curso-online-machine-learning-aprendizado-supervisionado). Nele mostramos os conceitos e algoritmos sobre aprendizado supervisionado, tudo isso utilizando Python.

Além desses, temos o [curso de análise de dados com R](https://www.alura.com.br/curso-online-business-analytics-com-r). Aqui, vemos como utilizar o R para analisar os dados da nossa empresa, criando gráficos e modelos para isso.
Artigos de Tecnologia e Negócios > Data Science