Wie visualisieren Sie eine nicht-lineare Beziehung in einem scatter-plot
Möchte ich visuell erkunden die Beziehung zwischen zwei Variablen. Die funktionale form der Beziehung ist nicht sichtbar im dichten scatter-plots wie diesen:
Wie kann ich eine lowess smooth der scatter-plot in Python?
Oder haben Sie irgendwelche anderen Vorschläge visuell erkunden die nicht-lineare Beziehungen?
Ich habe Folgendes versucht, aber es funktionierte nicht richtig (die Zeichnung an einem Beispiel aus Michiel de Hoon):
import numpy as np
from statsmodels.nonparametric.smoothers_lowess import lowess
x = np.arange(0,10,0.01)
ytrue = np.exp(-x/5.0) + 2*np.sin(x/3.0)
# add random errors with a normal distribution
y = ytrue + np.random.normal(size=len(x))
plt.scatter(x,y,color='cyan')
# calculate a smooth curve through the scatter plot
ys = lowess(x, y)
_ = plt.plot(x,ys,'red',linewidth=1)
# draw the true values for comparison
plt.plot(x,ytrue,'green',linewidth=3)
Den lowess smoother (rote Linien) ist seltsam.
EDIT:
Die folgende matrix enthält auch lowess smoothers (entnommen aus diese Frage CV):
Hat jemand den code für ein Diagramm?
- Sie scheinen zu haben, editiert diese Frage um eine neue Frage. Fragen Sie bitte eine separate Frage statt, so dass die Leute es finden können.
- Ja, sorry, die neue Frage ist here.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus der
lowess
Dokumentation:Es akzeptiert die Argumente der anderen Reihenfolge. Es ist auch nicht nur zurück
y
:Aber wenn Sie rufen Sie
sollten Sie etwas sehen, wie
Könnten Sie auch seaborn: