0
votes

Trouver la somme des résidus

Je fais des mains sur l'exercice de la régression des poissons de statistiques avec Python en Fresco Play. La déclaration du problème est comme: Chargez l'assurance DataSet R du paquet de masse. Capturez les données en tant que Pandas Dataframe. Construire un modèle de régression de poisson avec un journal d'une variable indépendante Détenteurs et revendications variables dépendantes. Adapter le modèle avec des données et trouver la somme des résidus.

Je suis coincé avec la dernière ligne, c'est-à-dire la somme des résidus p>

i utilisé np.sum (model.reesid) code>. Mais la réponse n'est pas acceptée p>

Voici mon code P>

import statsmodels.api as sm
import statsmodels.formula.api as smf
import numpy as np

INS_data = sm.datasets.get_rdataset('Insurance','MASS').data
model = smf.poisson('Claims ~ np.log(Holders)', INS_data).fit()
print(np.sum(model.resid))


5 commentaires

Avez-vous eu une erreur lorsque vous avez utilisé np.sum? Ou n'a-t-il pas donné la bonne réponse?


@cenh j'ai répondu. Pas d'erreur. Mais la réponse n'est pas acceptée.


Avez-vous besoin d'une somme ou d'une somme cumulative par hasard?


@Dalen selon les questions, il devrait s'agir de la somme.


Quelle forme est-ce que mod modèle.Resid prend-il? Quel type de conteneur de données et ses types de valeurs et ses gammes? Avez-vous juvelé un coup d'oeil? Essayez np.cumsum () au lieu de np.sum (), juste au cas où.


3 Réponses :


0
votes

J'exécutais le code de Python2 qui a donné une mauvaise réponse, mais l'exécution à Python3 a donné la bonne réponse. Je ne connais pas la raison mais le code fonctionne parfaitement dans Python3


1 commentaires

@ Ça ne fonctionne pas pour moi. J'ai essayé à Python 3 env. Je reçois en dessous de la sortie, est-ce correct? Optimisation terminée avec succès. Valeur de la fonction actuelle: 3.468160 Itérations 7 6.679101716144942E-13



0
votes

Pour résiduel, vous pouvez utiliser le concept de base de résiduel, c'est-à-dire réel - prédit strong>.

Voici le code de code. P>

import statsmodels.api as sm
import numpy as np
import statsmodels.formula.api as smf
Insurance = sm.datasets.get_rdataset('Insurance','MASS')
data = Insurance.data
data['Holders_'] = np.log(data['Holders'])
model = smf.poisson('Claims ~ Holders_',data).fit()
y_predicted = p.predict(data['Holders_'])
residual = (data['Claims']-y_predicted)
print(sum(residual))


0 commentaires

-1
votes

Après beaucoup de sérards, je suis venu savoir que cela s'attend à une somme cumulative alors utilisez np.cumsum (modèle.Resid) Il passera dans FrescoLay


1 commentaires

Veuillez mettre à jour la grammaire de votre réponse, il est très difficile de comprendre