Comment tracer les statsmodels de régression linéaire (moindres carrés ordinaires) proprement
Énoncé Du Problème:
J'ai quelques belles des données dans une pandas dataframe. Je voudrais régression linéaire simple sur elle:
À l'aide de statsmodels, j'ai effectuer mon régression. Maintenant, comment puis-je obtenir mon terrain? J'ai essayé statsmodels' plot_fit
méthode, mais l'intrigue est un peu funky:
J'espérais obtenir une ligne horizontale qui représente le résultat de la régression.
Statsmodels a un variété de méthodes pour le traçage de régression ( un peu plus de détails à leur sujet ici ), mais aucun d'entre eux semblent être super simple tracé de la ligne de régression sur le dessus de vos données" -- plot_fit
semble être la chose la plus proche.
Questions:
- La première photo ci-dessus est de pandas tracé de la fonction, qui renvoie un
matplotlib.axes._subplots.AxesSubplot
. Puis-je superposition d'une ligne de régression facilement sur cette parcelle? - Est-il une fonction dans statsmodels j'ai négligé?
- Est-il une meilleure façon de mettre ensemble ce chiffre?
Deux questions connexes:
- Traçage des Pandas LO résultats de la régression linéaire
- L'obtention de la ligne de régression de la parcelle à partir d'une régression Pandas
Ni semble avoir une bonne réponse.
Des données de l'échantillon
Comme demandé par @IgorRaush
motifScore expression
6870 1.401123 0.55
10456 1.188554 -1.58
12455 1.476361 -1.75
18052 1.805736 0.13
19725 1.110953 2.30
30401 1.744645 -0.49
30716 1.098253 -1.59
30771 1.098253 -2.04
abline_plot
J'avais essayé cela, mais il ne semble pas fonctionner... je ne sais pas pourquoi:
- Merci de poster un échantillon de données (ressemble à la vôtre est petit de toute façon, de sorte que vous pouvez poster l'ensemble de la chose). En général, je recommande
seaborn.regplot
qui va accomplir ce que vous avez besoin, si vous êtes d'accord avec le fait d'avoir cette dépendance. - voir ci-dessus
Vous devez vous connecter pour publier un commentaire.
Comme je l'ai mentionné dans les commentaires,
seaborn
est un excellent choix pour les statistiques de la visualisation des données.Alternativement, vous pouvez utiliser
statsmodels.regression.linear_model.OLS
manuellement et de tracer une droite de régression.Encore une autre solution est
statsmodels.graphics.regressionplots.abline_plot
qui prend la standard à partir de l'approche ci-dessus.abline_plot
dansstatsmodels
. Veuillez voir le modifier.ax=ax
dansabline_plot
). Il semble queabline_plot
ne fixe pas les limites de l'axe correctement. Toutefois, si vous passer les axes retourné parmotif.plot(...)
, ces axes ont déjà corriger les limites définies.