Regressão linear simples

Italo José
Ensina.AI
Published in
7 min readOct 1, 2018

O que é uma regressão para que ela serve?

O que é uma regressão para que ela serve?

Em estatística ou econometria, regressão linear é uma equação para se estimar a condicional (valor esperado) de uma variável y, dados os valores de algumas outras variáveis x. (Wikipédia)

De forma resumida, uma regressão serve para você estimar o valor de algo baseado em uma serie de outros dados históricos, exemplo: Você tem uma base de dados da valorização da sua casa a cada mês dos últimos 18 anos (2000–2018) e você vai usar essa base histórica para prever quanto sua casa vai valer daqui a 2 anos, ou seja, quanto a sua casa vai custar quando chegar em 2020? Eu não sei! Mas eu sei quem pode nos dizer isso:

O Modelo da nossa regressão

Modelo de regressão linear nos permite estudar as relações entre duas variáveis numéricas contínuas(algo que cresce ou decresce constantemente).

  • Uma variável de entrada (x) também chamada de variável preditor / explicativa / independente. Esse é o valor que você vai usar para podemos descobrir quanto cuta sua casa em 2020.
  • Uma variável de saída (y) também chamada de variável dependente resposta / resultado / dependente. Esse é o valor que você quer descobrir, no caso do exemplo acima, esse é o valor da sua casa em 2020.

A equação para nosso modelo de regressão linear simples pode ser escrita como:

y = b+a*x

onde:

y = Sua predição. No caso do exemplo da casa, seria o valor que sua casa vai custar no ano de 2020, **21, **22, …, 2050

b = (bias) Constante. No caso do exemplo da casa, seria o quanto sua casa valoriza mensalmente obrigatoriamente, exemplo, TODO mês, sua casa valoriza pelo menos R$100,00.

a = O quão sua casa cresce conforme o tempo passa, matematicamente falando, isso seria a inclinação da reta.

x = o valor que você quer predizer

Exemplo de problema:

Para construir o modelo de regressão linear simples, vamos usar um conjunto de dados de cereais.

Faça o download desse dataset de cereais no seguinte link: http://dataminingconsultant.com/DMPA_data_sets.zip

Figura 1

Objetivo: Estamos interessados em estimar a classificação nutricional de um cereal com base em seu nível de açúcar.

A figura abaixo representa o gráfico de dispersão dos dados para classificações vs nível de açúcar.

Figura 2

O que esse gráfico está nos dizendo?

Eu sei que você não sabe, mas vamos lá, para cada aumento de 1 grama no teor de açúcar do cereal, a classificação nutricional estabelecida diminui em 2,4614 pontos de avaliação.

Suponha que estamos interessados em estimar a classificação nutricional para um novo cereal que contém x = 1 grama de açúcar. Usando a equação, descobrimos que

Previsão/Classificação (y) = 59,853–2,6614 (1) = 57,3916.

Na equação a cima estamos fazendo a predição em cima de 1 grama de açúcar para descobrir a classificação nutricional dos cereais.

Mas note que o valor de 1 grama de açúcar já “foi descoberto” e já está plotado no gráfico, com o valor previsto para y de 50,765 e com base em nossa linha de previsão para 1 grama de açúcar a avaliação é de 57,3916. Essa distância vertical(essa diferença) de 6,6266 é conhecida como erro de previsão.

Função de custo

A função de custo é responsável por diminuir a vertical entre o valor previsto e o valor de fato(no nosso caso, arrumar o 50,765 para 57,3916)

Existe N formas de calcular o erro e saber o quanto você precisa ajustar seus valores de a e b para que você tenha uma melhor predição dos seus dados.

Esses cálculos eu explico mais nesse artigo, na sessão de Regressão e função de custo.

Onde eu encontro os valores de A e B para minha regressão?

Já vimos aqui que para nossa predição, nós usamos algumas constantes que são a e b, e também usamos uma variável x que são os dados ao qual queremos ter nossa predição. Sabemos como obter nossos dados de predição (x), mas como obtemos os valores de a e b?

Basicamente tu vai usar uma fórmula, ela PARECE difícil, mas nem é, só jogar os valores da fórmula e tcharaaaaaammm, você tem seu coeficiente de A e B.

A fórmula é o seguinte:

Figura 3

Meu Deus, que fórmula maluca, calma, ela é mais simples do que parece.

Vamos começar pelo problema:

Figura 4

Temos uma base histórica com dados sobre o tempo de serviço que um funcionário prestou em uma determinada loja e o bônus mensal que esse funcionário recebe. Pois bem, note que não temos todas as quantidades de meses ali, nem os meses futuros (mais que 72 meses) e nem alguns meses ali no meio (como 57, 43, 71 e etc), para saber o bônus mensal que alguém vai receber pro tempo de serviço que nós não temos na nossa base, nós podemos usar a regressão para “achar” esse valor.

Como vimos anteriormente, temos a seguinte fórmula: ax+b, on “x” é o valor que queremos predizer e “a” e “b” são constantes que refletem o padrão dos nossos dados, beleza , nós não sabemos o valor de a e nem de b, mas sabemos o valor de X! vamos supor que queremos descobrir o Bônus mensal para quem prestou 80 meses de serviço, logo nosso X=80, oowwwww, fácil né? se nós quiséssemos saber o tempo de serviço através do bônus mensal, nós colocaríamos o valor do bônus mensal no lugar do X, ou seja, para descobrir quantos meses eu vou precisas pra ganhar um bônus de 200 euros eu vou usar a fórmula a*200+b (a*x+b)

Para descobrir os valores de A e B nós vamos usar as fórmula que já foram citadas a cima na “figura 3”, mas eu vou colocar novamente aqui .

Figura 5

Na fórmula que descobre o valor de “b”, nós temos:

Σ= Se você não ta acostumado com os símbolos, é o seguinte, esse Σ é uma letra grega que na matemática simboliza soma, e você vai somar o que? os valores que estão do lado desse Σ!

Xi*Yi: Aqui você vai pegar CADA valor dentro do seu X(tempo de serviço) e vai multiplicar pelo seu Y(bônus mensal). Depois é só somar tudo como o Σ diz.

n: É a quantidade de linhas que você tem no seu dataset (sua tabela com dados histórico)

X barra: Esse é o símbolo do X com uma barra em cima, qualquer valor com essa barra em cima significa a média de alguma coisa, nesse caso, a média de X(tempo de serviço)

Y barra: Esse é o símbolo do Y com uma barra em cima, qualquer valor com essa barra em cima significa a média de alguma coisa, nesse caso, a média de Y(bônus mensal).

Σx²: É a somatória de X(tempo de serviço) elevado ao quadrado, então pega cada valor do tempo de serviço, eleva ao quadrado e depois soma tudo.

n * x barra ²: É o numero de linhas que você esta usando, multiplicado pela média de X elevado ao quadrado

Na fórmula que descobre o valor de “a”, nós temos:

Média de Y: Esse valor se refere à média dos dados que você quer descobrir, então se você quer descobrir o bônus mensal através dos meses de serviço, então tira a media dos valores dos bônus e pronto, você tem o valor dessa variável ai.

Média de b*X: É quase a mesma coisa que a média de Y, você junta os valores de X que são os dados que você vai usar pra fazer suas predições, tira a média e multiplica pelo valor de B(que você já descobriu)

No fim, quando terminarmos de calcular todos esse valores, é só jogar eles na fórmula:

Agora que temos os valores de “a” e “b”, nós podemos pegar a fórmula da nossa regressão, substituir os valores e começar e descobrir nossos valores

Para descobrir o bônus mensal para quem passa 80 meses na empresa, é só fazer:

a + bx = 80.77 + 1.13 * 80

o resultado disso é 171, e isso significa que para quem fica 80 meses na empresa, a tendencia é que ela ganhe 171 euros de bônus mensal.

[IMPORTANTE] Note que aqui eu não usei ax+b, bem, isso por que a ordem e o nome das variáveis não importa, se eu fizesse, batata+pudim*parede ia dar na mesmo, pois eu estou pegando um numero e somando com um multiplicação, isso é o que importa, uma soma e uma multiplicação.

Aqui vamos a um exemplo prático, algo simples, sem muitos detalhes.

Aqui temos um dataset sobre pessoas diabéticas:

E nós vamos então montar um modelo de regressão linear para que nós possamos predizer novas pessoas com diabetes usando o skitlearn.

E aqui está a saída da nossa regressão

--

--