Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug dans calcul RSA #1283

Closed
claireleroy opened this issue Mar 6, 2019 · 7 comments · Fixed by #1268
Closed

Bug dans calcul RSA #1283

claireleroy opened this issue Mar 6, 2019 · 7 comments · Fixed by #1268

Comments

@claireleroy
Copy link
Contributor

claireleroy commented Mar 6, 2019

Bonjour à tous,

Le calcul du RSA semble dépendant de l'ordre de calcul lorsque l'on fait une Simulation.. Ce qui est assez embêtant.

Voici un code ci-dessous qui montre que si l'on souhaite calculer le revenu_disponible et le rsa, le résultat change selon la variable calculée en premier....

Est-ce que l'un d'entre vous aurait une intuition sur l'origine de ce problème et la façon de le résoudre ?

Merci beaucoup :)

from openfisca_france.scenarios import init_single_entity
from openfisca_france import FranceTaxBenefitSystem
from openfisca_france.model.base import *


tax_benefit_system = FranceTaxBenefitSystem() 
options = dict(
    period = 2018,
    parent1 = dict(age = 30),
    menage = dict(statut_occupation_logement = TypesStatutOccupationLogement.locataire_vide.name)
    )
### CAS 1

scenario = tax_benefit_system.new_scenario()
scenario = init_single_entity(
    scenario = scenario,
    **options,
    )
simulation = scenario.new_simulation()
revenu_disponible = simulation.calculate_add('revenu_disponible', '2018')
rsa = simulation.calculate('rsa', '2018-01')
print("RSA : {}".format(rsa))

RSA : 0

#### CAS 2

scenario = tax_benefit_system.new_scenario()
scenario = init_single_entity(
    scenario = scenario,
    **options,
    )
simulation = scenario.new_simulation()
rsa = simulation.calculate('rsa', '2018-01')
revenu_disponible = simulation.calculate_add('revenu_disponible', '2018')
print("RSA : {}".format(rsa))

RSA : 536

NB : Le problème du RSA nul ne semble concerner que les trois premiers mois de l'année...

@claireleroy
Copy link
Contributor Author

Avec @benjello, on a commencé à investiguer ce problème.

On pense avoir trouvé et résolu une première source du problème : le calcul de la variable aide_logement_neutralisation_rsa incluait un calcul du RSA avec un nombre de cycles maximal de 0, ce qui pourrait impliquer le renvoi de valeurs par défaut pour le RSA... ?

@claireleroy
Copy link
Contributor Author

cc @guillett @Morendil

@claireleroy
Copy link
Contributor Author

cc @bfabre01

@Morendil
Copy link
Contributor

Morendil commented Mar 7, 2019

Oui c'est un défaut identifié sur Core depuis un moment: openfisca/openfisca-core#749

On a une PR qui traite le sujet: openfisca/openfisca-core#817

Tu pourrais éventuellement faire tourner le cas ci-dessus contre cette branche ?

On pensait expérimenter d'abord cette branche sur Mes Aides, on voulait vérifier qu'elle n'engendrait pas de régression ni sur les calculs ni sur les performances, si vous pouvez tester ce dernier aspect dans le contexte CASD ça serait top et ça nous permettrait d'avancer en confiance.

@claireleroy
Copy link
Contributor Author

@Morendil Je viens de tester avec votre branche simplify-cycle-detection-redux en local et effectivement ça marche, le RSA n'est plus nul ! Donc parfait!

Tu penses que la PR va aboutir rapidement ou bien vous avez encore beaucoup de choses à voir là-dessus ?

Concernant le CASD, c'est exactement le même code que je lançais qui buggait donc je pense qu'un test en local suffit non ?

@Morendil
Copy link
Contributor

Morendil commented Mar 7, 2019

@claireleroy Pour être sûrs qu'il n'y a pas d'impacts sur les perfs il vaut mieux reproduire les conditions au plus proche, comme je disais à @benjello quand il nous a rendu visite; c'est quelque chose qu'on ne sait pas encore bien faire en test… On peut mettre des valeurs random dans les variables et faire des vecteurs de la même taille par exemple, mais on ne sait pas quelles variables sont renseignées ou non, quelles sont les entités ou quelle est la taille des vecteurs dans le cadre d'une exécution typique au CASD.

En tout cas de notre côté on est favorable à merger rapidement :)

@bfabre01
Copy link

bfabre01 commented Mar 7, 2019

@Morendil : merci pour ce retour. Le problème venait d'OpenFisca. Donc, CASD ou pas, c'est exactement la même chose. Donc, si c'est bon pour vous, on peut merger !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants