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

Dashboard prédiction de la demande #37

Open
martindaniel4 opened this issue Jun 13, 2015 · 10 comments
Open

Dashboard prédiction de la demande #37

martindaniel4 opened this issue Jun 13, 2015 · 10 comments

Comments

@martindaniel4
Copy link
Contributor

Ola @dataforgoodfr/datagooders,

On aimerait travailler sur un premier produit qui va servir :

  • Aux équipes opérationnelles de CRF
  • Aux associations spécialisées dans la gestion du dernier kilomètre
  • Aux grandes surfaces

L'idée est de faire un dashboard qui prédit la demande en nombre de bénéficiaires et en type de produits pour un mois ou une semaine donnée.

Voilà un premier schéma :

dashboard

On va évidemment tout faire en Open Source sur ce repo.

Qu'en pensez vous ? Avez vous des préférences de techno (j'aimerais bien que ce soit en Python mais je reste ouvert ;) )

Thanks !

@RomainWarlop
Copy link
Contributor

@martindaniel4 ok I'm back ! J'ai pas suivi pendant quelques semaines, je suis un peu perdu dans les tables. C'est laquelle la table avec les demandes ? Je suis chaud pour tenter de faire un modèle de prédiction des demandes. Faudra créer une table dans BQ avec les différentes variables qu'on se liste ici, comme ça tout le monde pourra taper dans cette table et chacun pour donner les perfs de son modèles.

Pour l'interface, tu veux pas faire en d3.js ? ;)

@martindaniel4
Copy link
Contributor Author

@RomainWarlop mortel ! No pb pour la partie viz. Il me faut quelqu'un pour le back-end en revanche. @dataforgoodfr/datagooders quelqu'un est chaud ça ?

Pour la partie data, tout est déjà dans SINVOICE2 sur BQ. @slymore a cleané et fait un merge des tables dans le fichier SINVOICE_M (merci beaucoup!). Le tout est disponible en csv sur GS ici - http://storage.googleapis.com/stojou/SINVOICE_M.csv

@martindaniel4
Copy link
Contributor Author

A première vue, les variables qui peuvent avoir du poids :

  • Nombre de repas distribués en moyenne les précédentes semaines
  • Nombre de repas distribués l'année dernière
  • Population de la commune
  • Volume de stocks entrés

@RomainWarlop
Copy link
Contributor

@dataforgoodfr/datagooders On peut se lister ici toutes les variables qu'on pense nécessaire pour notre dataset pour prédire le nombre de bénéficiaire. Je crée un tableau de la forme suivante :

  • Nom de la variable
  • Descriptif de la variable
  • Est-ce que cette donnée est dispo ou faut-il aller la chercher ailleurs ?
  • Est-ce que la requête permettant de calculer cette variable est créée ?
  • Est-ce que cette vérifier est pertinente (corrélation, mesure statistique) ?

Hésitez pas à rajouter des lignes dès que vous avez une idée !

name desc dispo request relevant
id_centre code du centre oui oui oui
dt année-semaine oui oui oui
pop population de la commune ? non ?
nBen_x Nombre de bénéficiaires x semaine avant oui oui oui
inStock Volume de stocks entrés ? oui ?

@RomainWarlop
Copy link
Contributor

Voilà mon début de requête. Je n'ai pas trouvé plus simple pour récupérer la semaine ... La fonction part de CREDAT et renvoie la date du premier jour de la semaine (0=dimanche) correspondant.

SELECT
    id_centre,
    week,
    nBen,
    LAG(nBen,1) OVER (PARTITION BY id_centre ORDER BY week ASC) nBen_1,
    LAG(nBen,2) OVER (PARTITION BY id_centre ORDER BY week ASC) nBen_2,
    LAG(nBen,3) OVER (PARTITION BY id_centre ORDER BY week ASC) nBen_3,
    LAG(nBen,4) OVER (PARTITION BY id_centre ORDER BY week ASC) nBen_4,
    LAG(nBen,5) OVER (PARTITION BY id_centre ORDER BY week ASC) nBen_5
FROM
    (
    SELECT
        id_centre,
        week,
        SUM(sizeFoyer) nBen
    FROM
        (
        SELECT
            FCY id_centre,
            DATE(UTC_USEC_TO_WEEK(PARSE_UTC_USEC(
                    concat("20",substr(CREDAT,7,2),'-',substr(CREDAT,4,2),'-',substr(CREDAT,0,2))),0)/1000000) week,
            BPR benef,
            INTEGER(YNBR) sizeFoyer,

        FROM
            [stojou.SINVOICE_M]
        GROUP BY 1,2,3,4
        )
    GROUP BY 1,2
    )

@RomainWarlop
Copy link
Contributor

@martindaniel4 Il me semble que t'avais un excel avec le descriptif de chaque colonne des tables SINVOICE, right ? Je le retrouve plus, tu peux le renvoyer stp ? merci

@selimrbd
Copy link
Contributor

@RomainWarlop j'ai mis sur le wiki une description des colonnes de SINVOICE_M.

Aussi SINVOICE_M ne fait "que" 500MB donc tu peux tenter de la loader en memoire et manipuler avec pandas, ce sera peut etre plus pratique qu'avec du sql

@martindaniel4
Copy link
Contributor Author

@slymore cool merci pour la doc SINVOICE_M, ça sera bien utile.

@RomainWarlop pour la population de la commune, le recensement pour les communes < 10 000 habitants, se fait tous les 5 ans.

On peut commencer avec les chiffres exhaustifs de 2011, disponibles ici - http://www.insee.fr/fr/bases-de-donnees/default.asp?page=statistiques-locales/evol_struc_pop.htm

@martindaniel4
Copy link
Contributor Author

@lefko2000 si t'as un moment pour aider @RomainWarlop ça serait top !

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

No branches or pull requests

3 participants