Seaborn - Relações Lineares

Na maioria das vezes, usamos conjuntos de dados que contêm várias variáveis ​​quantitativas, e o objetivo de uma análise é relacionar essas variáveis ​​entre si. Isso pode ser feito por meio das linhas de regressão.

Ao construir os modelos de regressão, costumamos verificar multicollinearity,onde tivemos que ver a correlação entre todas as combinações de variáveis ​​contínuas e tomaremos as medidas necessárias para remover a multicolinearidade, se houver. Nesses casos, as técnicas a seguir ajudam.

Funções para desenhar modelos de regressão linear

Existem duas funções principais no Seaborn para visualizar uma relação linear determinada por meio de regressão. Essas funções sãoregplot() e lmplot().

regplot vs lmplot

regplot lmplot
aceita as variáveis ​​xey em uma variedade de formatos, incluindo matrizes numpy simples, objetos da série pandas ou como referências a variáveis ​​em um DataFrame do pandas tem dados como um parâmetro obrigatório e as variáveis ​​x e y devem ser especificadas como strings. Este formato de dados é chamado de dados de "formato longo"

Vamos agora desenhar os gráficos.

Exemplo

Plotagem do regplot e, em seguida, lmplot com os mesmos dados neste exemplo

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.regplot(x = "total_bill", y = "tip", data = df)
sb.lmplot(x = "total_bill", y = "tip", data = df)
plt.show()

Resultado

Você pode ver a diferença de tamanho entre duas parcelas.

Também podemos ajustar uma regressão linear quando uma das variáveis ​​assume valores discretos

Exemplo

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.lmplot(x = "size", y = "tip", data = df)
plt.show()

Resultado

Adaptando-se a diferentes tipos de modelos

O modelo de regressão linear simples usado acima é muito simples de ajustar, mas na maioria dos casos, os dados são não lineares e os métodos acima não podem generalizar a linha de regressão.

Vamos usar o conjunto de dados de Anscombe com os gráficos de regressão -

Exemplo

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('anscombe')
sb.lmplot(x="x", y="y", data=df.query("dataset == 'I'"))
plt.show()

Nesse caso, os dados são adequados para o modelo de regressão linear com menos variância.

Vejamos outro exemplo em que os dados apresentam alto desvio, o que mostra que a linha de melhor ajuste não é boa.

Exemplo

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('anscombe')
sb.lmplot(x = "x", y = "y", data = df.query("dataset == 'II'"))
plt.show()

Resultado

O gráfico mostra o alto desvio dos pontos de dados da linha de regressão. Essa ordem não linear superior pode ser visualizada usando olmplot() e regplot().Estes podem ajustar um modelo de regressão polinomial para explorar tipos simples de tendências não lineares no conjunto de dados -

Exemplo

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('anscombe')
sb.lmplot(x = "x", y = "y", data = df.query("dataset == 'II'"),order = 2)
plt.show()

Resultado