Aplicando a regressão linear com R

Aplicando a regressão linear com R

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:

-----------------------------------------
| 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
-----------------------------------------

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:


plot(valores_iptu, valores_imoveis)

[]

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?

Imersão dev Back-end: mergulhe em programação hoje, com a Alura e o Google Gemini. Domine o desenvolvimento back-end e crie o seu primeiro projeto com Node.js na prática. O evento é 100% gratuito e com certificado de participação. O período de inscrição vai de 18 de novembro de 2024 a 22 de novembro de 2024. Inscreva-se já!

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)

[]

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, 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. 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. Aqui, vemos como utilizar o R para analisar os dados da nossa empresa, criando gráficos e modelos para isso.

Yuri Matheus
Yuri Matheus

Yuri é desenvolvedor e instrutor. É estudante de Sistemas de Informação na FIAP e formado como Técnico em Informática no Senac SP. O seu foco é nas plataformas Java e Python e em outras áreas como Arquitetura de Software e Machine Learning. Yuri também atua como editor de conteúdo no blog da Alura, onde escreve, principalmente, sobre Redes, Docker, Linux, Java e Python.

Veja outros artigos sobre Data Science