Olá João, tudo bem?
Os resíduos que você está tentando plotar são calculados com base nos dados de treino, mas você está tentando plotá-los contra as previsões feitas com a base de teste. O que pode levar a um gráfico em branco porque os resíduos não correspondem às previsões do teste.
Para corrigir isso, você pode calcular os resíduos para a base de teste e então plotar o gráfico:
# Calcular as previsões para a base de teste
y_previsto_teste =modelo_3.predict(X_test[explicativas_3])
# Calcular os resíduos para a base de teste
residuos_teste = y_test - y_previsto_teste
# Plotar o gráfico com as previsões do teste e os resíduos do teste
sns.scatterplot(x=y_previsto_teste, y=residuos_teste, s=150)
plt.title('Resíduos X Previsão (Teste)')
plt.xlabel('Preço da Casa - Previsão (Teste)')
plt.ylabel('Resíduos (Teste)')
plt.show()
Espero ter ajudado.
Qualquer dúvida, não hesite em compartilhar no fórum.
Abraços!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado