Boucles imbriquées et régression linéaire multiple
Répondre à la discussion
Affichage des résultats 1 à 25 sur 25

Boucles imbriquées et régression linéaire multiple



  1. #1
    beral54

    Boucles imbriquées et régression linéaire multiple


    ------

    Bonjour à tous,

    Je suis en train de réaliser un modèle prédictif entre plusieurs dizaines de paramètres éventuels (des variables explicatives) et une variable expliquée, avec un programme en VBA qui, sur la base d'un tableau de corrélations entre ces paramètres, minimise la somme des corrélations entre eux et maximise la somme des corrélations avec la variable expliquée (ratio max/min) . Pour ce faire, j'ai utilisé des boucles imbriquées (une par paramètre), incrémentant un seul d'entre eux à la fois, dont le résultat, le ratio max/min, est comparé à chaque fois au précédent, afin de ne conserver que le ratio le plus élevé.

    Évidemment, arrivé à 7 boucles imbriquées, ça commence à coincer au niveau de la durée de calcul (j'ai lu qu'elle est exponentielle au nombre de boucles). J'ai fait quelques recherches pour savoir si un algorithme ou un modèle pouvait remplacer cette imbrication, et je n'ai rien trouvé d'autres que des pistes comme l'analyse combinatoire et le problème du cheminement (plus court chemin). Et, puisque je ne suis statisticien, ni informaticien, le moins que l'on puisse dire c'est que tout ça me laisse perplexe...

    Je vous remercie par avance pour votre aide.

    Beral

    -----

  2. #2
    cherbe

    Re : Boucles imbriquées et régression linéaire multiple

    Bonjour
    2 remarques :
    1/
    Excel traite correctement la régression linéaire mais c'est assez lourd à utiliser. R doit bien posséder un outil qui correspond à l'utilisation que tu en fais.
    En tous les cas, ça existait dans SAS-STAT mais qui utilise encore ce progiciel hors de prix ?

    2/
    J'ai fait cela il y a plus de 20 ans donc ma mémoire n'est pas très sûre mais il ne me semble pas indispensable d'imbriquer des boucles.
    Il me semble que l'on faisait un modèle avec la variable la plus corrélée, que l'on recalculait le tableau de corrélation sans cette variable et ainsi de suite.

  3. #3
    minushabens

    Re : Boucles imbriquées et régression linéaire multiple

    Citation Envoyé par beral54 Voir le message
    Je suis en train de réaliser un modèle prédictif entre plusieurs dizaines de paramètres éventuels (des variables explicatives) et une variable expliquée, avec un programme en VBA qui, sur la base d'un tableau de corrélations entre ces paramètres, minimise la somme des corrélations entre eux et maximise la somme des corrélations avec la variable expliquée (ratio max/min) .
    on ne peut pas optimiser deux critères simultanément. C'est un non-sens mathématique. Ce qu'on peut faire c'est optimiser une fonction des deux critères.

  4. #4
    beral54

    Re : Boucles imbriquées et régression linéaire multiple

    En effet, avec Excel, c'est assez simple de calculer une régression linéaire simple, et plus particulièrement un coefficient de corrélation, puisqu'il existe une fonction toute faite qui s'en charge. C'est pour le traitement des corrélations avec la variable expliquée et celles avec les variables explicatives (ratio max/min), que c'est bien plus difficile. Pour essayer d'accélérer le calcul, j'ai copié ces valeurs dans un tableau statique traité ensuite en C++, mais ça change quasiment rien aux durées de traitement : la conception du programme me mène dans une impasse, pas le langage.

    Cherbe, si je te suis bien, j'intègre à chaque cycle la variable explicative la plus corrélée à la variable expliquée à mon modèle prédictif, pour la supprimer au tour suivant ? Mais comment réaliser cette intégration.

    Minushabens : c'est le principe du calcul du ratio max/min que tu estimes comme un non-sens mathématique ?

  5. A voir en vidéo sur Futura
  6. #5
    minushabens

    Re : Boucles imbriquées et régression linéaire multiple

    Le ratio ok, mais ça ne maximise pas les corrélations avec la réponse ni ne minimise les corrélations entre régresseurs.

  7. #6
    beral54

    Re : Boucles imbriquées et régression linéaire multiple

    Dans le programme, pour chaque nouvelle combinaison de paramètres (j'en suis maintenant à sept paramètres combinés), je fais un ratio entre la somme des corrélations individuelles avec la réponse, et la somme des corrélations intrinsèques, pour ne garder que le ratio le plus élevé. Selon toi ce calcul ne maximise pas les corrélations avec la réponse, ni ne minimise les corrélations entre paramètres ?

  8. #7
    minushabens

    Re : Boucles imbriquées et régression linéaire multiple

    Maximiser le rapport entre deux variables ne dit rien sur les variables: par exemple la personne qui a le plus petit BMI (body mass index) a certainement tendance à être grande et mince mais il n'y a aucune raison pour qu'elle soit la plus grande et la plus mince (qui sont probablement des personnes différentes).

    Mais cela dit, puisque tu cherches à maximiser ce rapport, sache que les méthodes traditionnelles de sélection de variables en régression ne cherchent pas à évaluer toutes les combinaisons de variables. Elles utilisent des algorithmes dit "stepwise" qui procèdent par améliorations progressives à partir d'un point de départ qui peut être aléatoire, mais qui est souvent l'ensemble de toutes les variables (cherche "stepwise regression" pour une description précise).

  9. #8
    cherbe

    Re : Boucles imbriquées et régression linéaire multiple

    Citation Envoyé par beral54 Voir le message
    ... et plus particulièrement un coefficient de corrélation, puisqu'il existe une fonction toute faite qui s'en charge.
    Attention toutefois de l'utiliser dans les limites prévues car au delà, c'est n'importe quoi. Avec Excel, je peux faire la démonstration d'un R² négatif !!!!!!
    Sinon, le tableau statistique obtenu avec la fonction DROITEREG est très intéressant.
    Citation Envoyé par beral54 Voir le message
    Cherbe, si je te suis bien, j'intègre à chaque cycle la variable explicative la plus corrélée à la variable expliquée à mon modèle prédictif, pour la supprimer au tour suivant ? Mais comment réaliser cette intégration
    Je ne comprends pas la question ?
    Tu as 7 variables explicatives. Notons les X1 pour la plus fortement corrélée à X7 pour la plus faible.
    Tu commence par calculer Y prédit par X1 ;
    tu refais le tableau de corrélation avec X2...X7 (donc X1 exclue) ;
    Tu calcule Y fonction de X la plus corrélée dans le tableau à 6 X. (ce n'est pas obligatoirement X2 du tableau initial)
    Tu refais un tableau de corrélation avec 5 variables X
    Et ainsi de suite.

    Tu vas sans doute constater que dans les nouveaux tableaux de corrélation, l'ordre de grandeur des corrélations peut changer. Tu vas peut-être même exclure certaines variables pour cause de trop faible corrélation.

  10. #9
    cherbe

    Re : Boucles imbriquées et régression linéaire multiple

    Citation Envoyé par minushabens Voir le message
    (cherche "stepwise regression" pour une description précise).
    Le nom m'avait échappé, c'est ce que j'utilisais dans SAS-STAT.
    Il est probable que ça existe dans R.

  11. #10
    beral54

    Re : Boucles imbriquées et régression linéaire multiple

    Cherbe, tu veux dire que j'attaque directement la régression linéaire multiple, avec Y = f(X1, X2,... X7) ou je calcule à chaque fois la corrélation entre un paramètre seul et la réponse ? Dans le second cas, j'ai pu établir le coefficient de corrélation entre chacune d'entre elles et la réponse, mais c'est la "collaboration" entre ces différents paramètres que je cherche à optimiser.

    Pour réduire le risque d'erreurs dû aux données initiales, je les ai filtré à 3 sigmas (elles suivent toutes une distribution normale), pour quasiment réduire de moitié le nombre de lignes, car chaque ligne comportant plusieurs dizaines de variables, il y a déjà là une inter-influence dans la dispersion des valeurs extrêmes. Et puis je me base ensuite sur un R² ajusté qui n'est pas influencé par le nombre de paramètres (cf. ce site, qui m'a bien servi).

    Concernant la régression pas à pas, elle s'avère intéressante, mais elle ne résout pas le problème de deux paramètres étroitement liés et qui contribuent fortement à la réponse (cf. ce site). Voilà pourquoi je m'engageais dans la voie des boucles imbriquées, sans me rendre compte de la lenteur du calcul.

    Minushabens, on est d'accord sur la question des paramètres corrélés, et c'est justement pour minimiser cette corrélation, voire causalité, que je souhaite minimiser ces coefficients intrinsèques autant que possible, afin de ne pas pondérer trop fortement le modèle, et donc le tirer vers des prédictions trop éloignées de la réponse.

  12. #11
    cherbe

    Re : Boucles imbriquées et régression linéaire multiple

    Citation Envoyé par beral54 Voir le message
    c'est la "collaboration" entre ces différents paramètres que je cherche à optimiser.
    Dans ce cas, il n'existe pas d'outil "tout fait" dans Excel. Reste à explorer les logiciels de stats ou trouver le bon algo pour programmer ça ce qui nous renvoie à la question initiale !
    Si cela avait été indiqué dès le début, on aurait évité cette digression !

  13. #12
    beral54

    Re : Boucles imbriquées et régression linéaire multiple

    C'est ce que j'ai essayé d'expliquer dès le début, mais n'était pas du métier, ce n'est pas simple d'expliquer. Bref, oui, on en revient à la question initiale, et j'ai l'impression que mis à part une imbrication de 38 boucles ou un tableau dynamique à 38^38 lignes (38 variables explicatives, 1e60 possibilités), il ne semble pas y avoir d'autres solutions... Je suis bon pour aller louer un supercalculateur à Google

  14. #13
    cherbe

    Re : Boucles imbriquées et régression linéaire multiple

    Citation Envoyé par beral54 Voir le message
    C'est ce que j'ai essayé d'expliquer dès le début, mais n'était pas du métier, ce n'est pas simple d'expliquer. ... Je suis bon pour aller louer un supercalculateur à Google
    J'espère que tu as de bonnes raisons pour procéder ainsi car en général, on fait l'inverse. On cherche le meilleur résultat avec le modèle le plus simple possible.
    En stats, il ne suffit pas de justifier un choix parce qu'on a la meilleure corrélation ou la meilleure prédiction. On dois pourvoir donner un sens à chaque paramètre du modèle et dans ton cas, ce n'est pas gagné !
    Pour moi qui ne suis pas un matheux, c'est la limite de la régression linéaire.. Et je ne parle pas des modèles non linéaires !

  15. #14
    minushabens

    Re : Boucles imbriquées et régression linéaire multiple

    Citation Envoyé par beral54 Voir le message
    C'est ce que j'ai essayé d'expliquer dès le début, mais n'était pas du métier, ce n'est pas simple d'expliquer. Bref, oui, on en revient à la question initiale, et j'ai l'impression que mis à part une imbrication de 38 boucles ou un tableau dynamique à 38^38 lignes (38 variables explicatives, 1e60 possibilités), il ne semble pas y avoir d'autres solutions... Je suis bon pour aller louer un supercalculateur à Google
    et si il y a des solutions. C'est ce qu'on te dit: utilise un programme de régression pas à pas (stepwise). Il en existe plusieurs, par exemple dans le logiciel R, et je ne vois pas pourquoi tu veux réinventer la roue. Si tu veux un programme à toi tu peux récupérer le code R qui est open source.

  16. #15
    beral54

    Re : Boucles imbriquées et régression linéaire multiple

    Je ne cherche pas à réinventer la roue, ni à faire un programme perso, juste à me repérer dans les infos que vous me donnez et à résoudre mon problème. Dans ce cas, je vais suivre ton idée avec la régression pas à pas et espérer qu'il y ait des solutions. Merci pour votre aide !

  17. #16
    beral54

    Re : Boucles imbriquées et régression linéaire multiple

    D'après mes recherches, la régression pas à pas est inutile s'il s'agit de maximiser R² : il faut simplement accumuler les variables aléatoires. J'ai ainsi pu obtenir un R² ajusté quasi égal à 1, donc c'est nickel.

  18. #17
    cherbe

    Re : Boucles imbriquées et régression linéaire multiple

    Citation Envoyé par beral54 Voir le message
    D'après mes recherches, la régression pas à pas est inutile s'il s'agit de maximiser R² : il faut simplement accumuler les variables aléatoires. J'ai ainsi pu obtenir un R² ajusté quasi égal à 1, donc c'est nickel.
    Maximiser un R² n'est pas une fin en soi et ce n'était pas indiqué dans la question initiale.
    Prédire une variable Y en fonction "de dizaines de variables" X est irréaliste, sauf cas très très particulier où ces variables sont très facilement mesurables alors que la variable Y ne l'est pas du tout ; mais "dans la vraie vie", ça correspond à quoi ?
    Tu cherches à faire quoi ?

  19. #18
    cherbe

    Re : Boucles imbriquées et régression linéaire multiple

    Citation Envoyé par cherbe Voir le message
    Prédire une variable Y en fonction "de dizaines de variables" X est irréaliste...
    Par régression linéaire.
    En revanche, c'est très utilisé en modélisation.

  20. #19
    beral54

    Re : Boucles imbriquées et régression linéaire multiple

    Citation Envoyé par cherbe Voir le message
    Maximiser un R² n'est pas une fin en soi et ce n'était pas indiqué dans la question initiale.
    Comme je le disais, je ne suis pas du tout du métier, et j'avance à tâtons. Ce que je cherche à faire, c'est obtenir un modèle prédictif concernant des stats de baseball. En maximisant R², j'ai pu obtenir une prédiction de quasi 1 sur la victoire (au lancer et à la batte), et de plus de 75% au score. Malheureusement, ce modèle ne fonctionne qu'avec les stats d'une saison complète, et non pour un match en particulier : c'est un peu le même problème que pour le jeu du pile ou face, t'as beau savoir que tu vas finir à du 50/50 au bout d'un grand nombre d'itérations, une série de piles ou de faces peuvent tomber et te fausser ta prédiction "instantanée".

  21. #20
    beral54

    Re : Boucles imbriquées et régression linéaire multiple

    Rectification : j'ai fait une erreur de calcul pour la régression linéaire multiple liée aux victoires, je passe de 100% à 40%, mais je conserve bien 75% pour le score. Mais le problème reste le même dans les deux cas, puisque mon modèle prédictif n'est applicable qu'en fin de saison. Et pourtant, vu le nombre de stats produites pour chaque joueur, chaque match, et ce depuis plusieurs dizaines d'années, il doit bien y avoir une méthode de régression applicable pour prédire le score d'un match. Quant à savoir lequel...

  22. #21
    cherbe

    Re : Boucles imbriquées et régression linéaire multiple

    Quelques remarques :
    Je ne comprends pas que tu sois satisfait de tels pourcentages qui ne sont pas statistiquement significatifs.
    Pour qu'un tel modèle ait une chance de fonctionner, il faudrait que le facteur humain soit réduit car ses décisions, bonnes ou mauvaises, sont le plus souvent arbitraires et ça, c'est imprévisible !

    Pour changer d'exemple, sur la base d'éléments mesurables ou quantifiables, Napoléon aurait dû perdre la bataille d'Austerlitz ; l'histoire est remplie d'exemples de ce type.

  23. #22
    minushabens

    Re : Boucles imbriquées et régression linéaire multiple

    Citation Envoyé par beral54 Voir le message
    D'après mes recherches, la régression pas à pas est inutile s'il s'agit de maximiser R² : il faut simplement accumuler les variables aléatoires. J'ai ainsi pu obtenir un R² ajusté quasi égal à 1, donc c'est nickel.
    si tu ajoutes un nouveau prédicteur à une régression, le R^2 augmente, quelle que soit la pertinence de la nouvelle variable dans la prédiction. En général on prend comme critère à optimiser une vraisemblance pénalisée, comme dans le critère d'Akaike.

  24. #23
    beral54

    Re : Boucles imbriquées et régression linéaire multiple

    Citation Envoyé par cherbe Voir le message
    Je ne comprends pas que tu sois satisfait de tels pourcentages qui ne sont pas statistiquement significatifs.
    A partir de quel pourcentage un paramètre te semble significatif ?

    Citation Envoyé par cherbe Voir le message
    Pour qu'un tel modèle ait une chance de fonctionner, il faudrait que le facteur humain soit réduit car ses décisions, bonnes ou mauvaises, sont le plus souvent arbitraires et ça, c'est imprévisible !
    Je ne compte pas supprimer le facteur humain de mes prédictions, simplement l'augmenter de l'outil statistique pour effectuer un premier filtre sur les matchs à venir. Même les grandes équipes de baseball gardent des recruteurs à l'ancienne, conjointement aux statisticiens, pour la recherche de nouveaux joueurs, donc j'ai bien conscience de l'aléatoire et du libre-arbitre des réactions humaines.

    Citation Envoyé par minushabens Voir le message
    si tu ajoutes un nouveau prédicteur à une régression, le R^2 augmente, quelle que soit la pertinence de la nouvelle variable dans la prédiction. En général on prend comme critère à optimiser une vraisemblance pénalisée, comme dans le critère d'Akaike.
    D'où l'utilisation d'un R² ajusté. Je connais pas le critère d'Akaike, je vais me renseigner.

  25. #24
    beral54

    Re : Boucles imbriquées et régression linéaire multiple

    Citation Envoyé par cherbe Voir le message
    Je ne comprends pas que tu sois satisfait de tels pourcentages qui ne sont pas statistiquement significatifs.
    Bien sûr, avec un taux de prédiction de 40%, j'ai supprimé les équations reliant les paramètres pitching et batting (lancer et équipe en attaque) à la victoire, pour ne garder que celles les reliant au score (75% de prédiction).

  26. #25
    beral54

    Re : Boucles imbriquées et régression linéaire multiple

    J'ai refait mes calculs pour la partie batting, j'obtiens un R² ajusté maximal de 0,996 avec une variance et un Cp de Mallows minimaux pour 45 paramètres (vu que Cp = 44,9 est très proche du nombre de paramètres, cela semble idéal, et la variance s'établit à 36 pour une moyenne de 718,8, d'où une courbe très resserrée). Je me suis renseigné sur le critère d'Akaike, il ne semble être applicable que pour un nombre de paramètres inférieur à 20.

    Maintenant, je voudrais savoir si je pourrais réduire le nombre de paramètres, afin d'obtenir un modèle plus stable. J'ai lu qu'il y avait la question du maximum de vraisemblance, mais je n'ai pas compris comment le mettre en œuvre, seulement des théorèmes et des tutos dans R, que je ne connais pas. Sauriez-vous m'apporter quelques explications et me dire si mon modèle semble correct ? Merci par avance.

Discussions similaires

  1. Régression linéaire multiple
    Par nicopat dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 27/01/2016, 15h14
  2. Réponses: 2
    Dernier message: 24/05/2014, 13h07
  3. Régression linéaire multiple
    Par Dostoiev dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 23/04/2014, 22h16
  4. Regression linéaire multiple pas à pas
    Par Thibault57 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 20/05/2008, 23h44
  5. Régression linéaire multiple
    Par invite3569df15 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 13/01/2007, 21h56