Je veux adapter mes données et extraire leurs pentes. J'utilise la régression linéaire. Mes données sont un ensemble de valeurs de décalage d'horloge contenant des valeurs négatives. Ceci est mon code: alors comment résoudre cette erreur s'il vous plaît? La régression linéaire est-elle le meilleur moyen d'extraire des paramètres d'ajustement avec de telles données? p> p>
Cependant, cela me donne cette erreur: p>
4 Réponses :
On dirait que votre y est une liste de chaînes. Vous avez besoin de votre Y pour être de type entier ou de flotter pour faire une régression. P>
Le code fonctionne. Cela me donne la première fois que le problème est de calculer les paramètres de régression.
Changer y sur une liste de nombres: de cette façon fonctionne p> y = [7, 0, 0, 0, -2, ...] code>
from scipy import stats
import scipy
import matplotlib.pyplot as plt
plt.style.use('ggplot')
x= [1549808191, 1549808192, 1549808196, 1549808201, 1549808202, 1549808206, 1549808207, 1549808214, 1549808215, 1549808221, 1549808226, 1549808267, 1549808272, 1549808290, 1549808304, 1549808315, 1549808324, 1549808332, 1549808355, 1549808395, 1549808396]
y= [1549808191, 1549808192, 1549808196, 1549808201, 1549808202, 1549808206, 1549808207, 1549808214, 1549808215, 1549808221, 1549808226, 1549808267, 1549808272, 1549808290, 1549808304, 1549808315, 1549808324, 1549808332, 1549808355, 1549808395, 1549808396]
print(y)
plt.plot(x,y,'o-')
plt.show()
slope, intercept, r_value, p_value, std_err = scipy.stats.linregress(x, y)
print(slope)
Le code fonctionne. Cela me donne la première fois que le problème est de calculer les paramètres de régression.
Non, cela ne fonctionne pas, cela vous donne des erreurs. Et c'est parce que vous faites une régression sur des personnages au lieu de chiffres.
Je lance simplement votre code avec y = [1549808191, 1549808192, 1549808196, 1549808201, 1549808202, 1549808206, 1549808207, 1549808214, 1549808215, 1549808221, 1549808226, 1549808267, 1549808272, 1549808290, 1549808304, 1549808315, 1549808324, 1549808332, 1549808355, 1549808395, 1549808396] code> et maintenant ça marche
problème et solution forte> Comme dans d'autres réponses, le problème est que les valeurs Y sont des chaînes. Cela fonctionne pour vous en partie, car MATPLOTLIB FORT> modifie automatiquement vos chaînes Y en chiffres. Cependant,
from scipy import stats
import scipy
import matplotlib.pyplot as plt
plt.style.use('ggplot')
x= [1549808191, 1549808192, 1549808196, 1549808201, 1549808202, 1549808206, 1549808207, 1549808214, 1549808215, 1549808221, 1549808226, 1549808267, 1549808272, 1549808290, 1549808304, 1549808315, 1549808324, 1549808332, 1549808355, 1549808395, 1549808396]
y= ['7', '0', '0', '0', '-2', '4', '-3', '2', '0', '-1', '0', '-2', '-1', '-1','2', '-2', '1', '0', '0', '-1', '-2']
y = [float(i) for i in y]
print(x)
print(y)
plt.plot(x,y,'o-')
plt.show()
slope, intercept, r_value, p_value, std_err = scipy.stats.linregress(x, y)
print(slope)
Est
y code> supposé être une liste de cordes i>?
@Forcebru non, mon code fonctionne, je peux tracer la première figure.