emilienschultz / pyshs-bib

MIT License
9 stars 4 forks source link

autoriser les espaces (et caractères spéciaux) dans les noms de variables pour la régression logistique #41

Closed jeanbaptisteb closed 1 year ago

jeanbaptisteb commented 1 year ago

A priori le ticket est d'une importance secondaire car la régression logistique est marquée comme étant en beta, mais l'intérêt serait ici d'enlever une contrainte sur les utilisateurs et probablement de simplifier un peu le code à moyen/long terme.

Pyshs n'autorise pas les utilisateurs à utiliser des noms de variables avec des espaces dedans (cf. cette ligne). Mais Statsmodels autorise les espaces et caractères spéciaux dans les noms de variables, pour cela il faut utiliser une syntaxe particulière, en mettant le nom de la variable dans une fonction Q(). Exemple en reprenant les données de la doc:

data["interet science"] = data["interetscience"] #on crée une variable avec un espace dedans
modele = smf.glm(
    formula="apportsciencepositif ~ genre + age + Q('interet science')", 
    data=data, family=sm.families.Binomial()
).fit()

J'ai tenté d'adapter le code pour utiliser cette fonction Q(), mais cela a des répercussions inattendues dans d'autres fonctions du code de pyshs. Donc a priori c'est moins trivial à implémenter que ce que je pensais, et je n'ai pas le temps de me pencher dessus pour l'instant, donc j'en fais simplement un ticket pour ne pas oublier.

emilienschultz commented 1 year ago

Merci beaucoup pour ce point. Même secondaire, j'ai commencé par lui (je prends les tickets au fur et à mesure). J'ai modifié la production de la formule puis la fonction qui parse le tableau de statsmodels pour en faire quelque chose d'un peu plus joli. Les espaces sont maintenant possibles.