Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 12/03/2010, 14h27   #1
Invité régulier
 
Inscription : août 2009
Messages : 140
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 140
Points : 9
Points : 9
Par défaut Modélisation à partir de distributions fréquentielles

Bonjour

Je m'intéresse depuis quelque temps à la modélisation à partir de mesures réalisées sur un process à priori aléatoire.

Pour cela, je me suis servi comme "terrain d'entraînement" un jeu en ligne dont je connait bien le fonctionnement (sauf bien sûr le modèle recherché).
Pourquoi? parce que ce jeu utilise un système aléatoire pour gérer les dommages infligés par votre personnage aux monstres, qui est donc facilement répétable et testable.

Connaissant à peu près les variables d'influence, ainsi qu'un modèle qui avait déjà été établi par des japonais il y a quelques années (mais dont on a perdu toutes les données qui ont servi à l'établir), moi et quelques autres personnes avons décidé de "revérifier" l'ancien modèle. Pourquoi? parce qu'on s'est aperçu que les valeurs théoriques produites par ce modèle présentent des écarts plus que significatifs... en particulier sur les valeurs moyennes et extrêmes min/max.

Ce modèle s'écrit encore actuellement sous la forme :

D = pDIF * BD
avec :
D: dommage infligé au monstre, affiché en integer sur l'écran
BD: Base Damage=(WeaponDamage + f(Player_Strength - Monster_Vitality))
pDIF: coefficient aléatoire fonction de l'attaque de votre personnage versus la défense du monstre (voire aussi peut être d'autres paramètres comme WeaponDamage,...)

Ce qui m'intéresse en particulier est la modélisation de pDIF, donc on supposera la variable BD (partie non-aléatoire de l'équation) comme correcte et définie. La variable pDIF est, je pense, là où les japonais ont fait une approximation trop importante sur ses coefs, d'où les écarts constatés au final (sur les moyennes et extremums min/max).

Nous avons donc réalisé un certain nombre de "parses" sur un même type de monstre, en ne faisant varier que notre valeur d'attaque, et en gardant tous les autres paramètres constants. Les résultats de ces parses ont été compilés dans un fichier excel disponibles à l'adresse :
http://ffxidmgformula.googlecode.com...ns%20study.xls

On y trouvera donc plusieurs distributions fréquentielles de damage réalisées à des valeurs de Ratio différentes, sur la 1ère feuille; ainsi que leurs représentations graphiques en 2eme feuille. Ratio = Player_Attack / Monster_Defense.
Chacune de ces distributions est composée de 2 sous-distributions, une pour les dommages "normaux", et l'autre pour les coups "critiques" (fréquences de la 2ème bien moindres que celles de la 1ère).
On y trouvera aussi 2 types de distributions, celles réalisées avec des armes de type 1H "à 1 main" (comme dague ou épée) et celles pour les armes 2H "à 2 mains" (comme Lance ou Grande Hache). Cette différenciation a été faite car on pense A PRIORI que le pDIF correspondant à chacun de ces types d'armes serait différent...
Enfin, parmi les graphiques fréquentiels en 2eme feuille, il y a un graphe en "vue de dessus" càd pDIF=f(Ratio). On y voit assez clairement qu'il s'agit d'un problème aléatoire à peu près linéaire. Cela prouve A PRIORI la validité du format de l'équation testée. Ce graphe présente aussi des régressions linéaires, mais ayant un R² différent de 1 (ou alors pas assez proches de 1 pour guarantir très peu d'ecarts sur les valeurs de dommages au final)

Reste donc la question finale:
Comment déduire de ces distributions un modèle acceptable pour PDIF ? acceptable dans le sens produisant 0 écart de dommage (à la limite 1-2 damage) et simple (certaines personnes avec qui j'étudie le phénomène sont déjà parti sur des pistes super compliquées avec plein plein de coefficients intermédiaires etc...).

Comme aucun de nous ne sait vraiment comment exploiter les paramètres mediane, ecart-type, moyenne mobile etc... pour déterminer les coefs linéaires de pDIF, on est donc coincés à ce stade...

On notera aussi que sur certaines distributions, il semble apparaître des "artefacts" assez visibles qui me laisse penser qu'il y aurait peut être non pas 1 mais plusieurs générateurs pseudo-aléatoires, et que sur certains intervalles de Ratio.

Donc je m'adresse au forum developper.net pour voir si quelqu'un aurait une idée comment aborder la question finale énoncée plus haut, des conseils ou liens, etc... Ce sujet pourrait également intéresser les personnes qui comme moi pense pouvoir adapter la méthode à un process aléatoire réel.

Si besoin de plus de précisions, n'hésitez pas à demander.

Raphaël

P.S.: je ne suis même pas sûr d'avoir posté dans le bon forum, merci de me rediriger si nécessaire.

Dernière modification par Masamunai ; 12/03/2010 à 18h15.
Masamunai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2010, 10h55   #2
Membre du Club
 
Emeric SAvoy
Inscription : janvier 2010
Messages : 49
Détails du profil
Informations personnelles :
Nom : Emeric SAvoy

Informations forums :
Inscription : janvier 2010
Messages : 49
Points : 58
Points : 58
Bonjour,

Sujet au combien passionnant pour les foules que le théorycrafting .. :p

Je te souhaite bon courage dans la recherche de la vérité. Ce n'est pas forcément le forum adéquat mais bon...

Bon courage en tout cas
Tartiflette38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2010, 11h44   #3
Membre habitué
 
Inscription : novembre 2009
Messages : 134
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 134
Points : 106
Points : 106
A la question : "Comment déduire de ces distributions un modèle acceptable pour PDIF ?" Il existe en théorie des tests statistiques un test d'adéquation de Kolmogorov-Smirnov qui permet de tester l'adéquation entre une fonction de répartition empirique (issue de fréquences donc) et une loi de probabilité théorique. Ce test se base notamment sur la norme L infini afin de valider/refuter une hypothèse statistique de seuil Alpha.

Mais avant tout il faudrait tester si ton modèle peut être statistiquement considéré comme aléatoire. Il se peut que dans tes observation tu ais de l'autocorrélation par exemple...
HAL-9000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2010, 21h51   #4
Invité régulier
 
Inscription : août 2009
Messages : 140
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 140
Points : 9
Points : 9
Citation:
Envoyé par Tartiflette38 Voir le message
Bonjour,

Sujet au combien passionnant pour les foules que le théorycrafting .. :p

Je te souhaite bon courage dans la recherche de la vérité. Ce n'est pas forcément le forum adéquat mais bon...

Bon courage en tout cas
Merci beaucoup pour ces encouragements... en effet les foules sont très loin d'être friandes de ça...
Quant au forum, ben j'avoue j'ai choisi un peu au pif :s

Citation:
Envoyé par HAL-9000 Voir le message
A la question : "Comment déduire de ces distributions un modèle acceptable pour PDIF ?" Il existe en théorie des tests statistiques un test d'adéquation de Kolmogorov-Smirnov qui permet de tester l'adéquation entre une fonction de répartition empirique (issue de fréquences donc) et une loi de probabilité théorique. Ce test se base notamment sur la norme L infini afin de valider/refuter une hypothèse statistique de seuil Alpha.

Mais avant tout il faudrait tester si ton modèle peut être statistiquement considéré comme aléatoire. Il se peut que dans tes observation tu ais de l'autocorrélation par exemple...
Là par contre, c'est déjà plus intéressant.
En effet, j'ai déjà "compulsé" plusieurs tests statistiques, mais quasiment tous marchent sur le principe:
- prends une ou des distributions fréquentielles, et sort en les parametres nécessaires, genre mediane sigma etc...
- prends un modèle que tu pense être le bon (c'est l'hypothèse à tester)
- applique le test entre les 2

Le gros "hic" c'est que je pourrait passer ma vie à tester 1000 modèles théoriques différents un par un...

En revanche, ta dernière phrase me laisse perplexe, pourrait tu développer un peu stp ?
Masamunai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2010, 23h33   #5
Membre habitué
 
Inscription : novembre 2009
Messages : 134
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 134
Points : 106
Points : 106
Selon moi une idée sur une bonne méthodologie :

1/. Estimer les paramètres de ton modèle régressif.
2/. Tester si tes paramètres estimés sont statistiquement valables (test de significativité de Student). Si ce n'est pas le cas, c'est que tes variables explicatives n'en sont pas.
3/. Si tes paramètres sont statistiquement valables, étudier alors les caractéristiques du bruit blanc de ton modèle (partie aléatoire). Verifier si ce sont notamment bien des bruit blancs. Si ce sont bien des bruits blancs, alors ceux-ci peuvent être modélisés via un échantillon de variables aléatoires. Si ce n'est pas le cas, se tourner vers les processus à moyenne mobile, processus ARCH/GARCH/M-GARCH/GJR-GARCH/EGARCH/…
4/. Si bien des bruits blancs, trouver la loi de probabilité qui puissent au mieux rendre compte de la distribution du bruit. Tests d'adéquation à une loi (Kolmogorov/Jarque Bera/etc.).
5/. Enfin si plusieurs modèles sont statistiquement valables au final, sélectionner le modèle le plus adéquate via des critères de maximisation de la vraisemblance, critère d'information d'Akaike, de Schwartz, de Hannan-Quinn, etc.
HAL-9000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2010, 08h45   #6
Invité régulier
 
Inscription : août 2009
Messages : 140
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 140
Points : 9
Points : 9
Merci de me corriger HAL.

Cependant, pourrais-tu me dire si je me trompe en prenant le raisonnement inverse (beaucoup plus pratique) :

Question1
"Sagissant d'un jeu vidéo (donc un programme informatique), toute partie aléatoire provient forcément d'une routine génératrice de type pseudo-aléatoire ?"

Question2
"Un processus dont les mesures semblent absolument aléatoires (entre 2 bornes) peut-il être qualifié de carrément NON aléatoire après tests pus poussés ?" c'est ce que tu sous-entend par 3/ non? Si oui exemple svp.

Question3
Définition de modèle régressif ? Je ne suis pas sûr de bien comprendre. Ici il n'y a que :
- des distributions fréquentielles apparemment aléatoires,
- un (ou des) modèle(s) théorique(s) à tester comme tu l'a expliqué par 4/ et 5/.
il est où le modèle "régressif" ?

Question4
La phase 2/ est intéressante si on n'a aucun a priori vrai ou faux ?
Or ici il s'agit d'un jeu vieux de plus de 5 ans, dont tous les joueurs savent que l'attaque, la puissance de ton arme, et la force influent sur les dommages.
Donc est-il intéressant de tester ces paramètres là ? honnetement je ne pense pas... serait vraiment absolument absurde qu'ils ne soient pas des variables explicatives, d'ailleurs les distributions montrent bien une variation claire juste en faisant varier l'attaque.
En revanche, un modèle valable peut très bien avoir la même variable "répétée" plusieurs fois. C'est le cas du modèle pour FF12 par exemple.
Aussi, je peux très bien avoir "oublié" un paramètre parmi ceux déjà établi depuis des années ou que personne n'a remarqué. Par exemple, le modèle pour FF12 (donc du même éditeur), le petit génie qui l'a trouvé utilise aussi un paramètre relatif à ta vitesse de frappe. En toute logique, ca parait absurde mais ca donne des résultats tout à fait corrects en termes de dommages min/max et moyenne.

Pour finir ce post, HAL explique en termes scientifiques la même chose que j'ai posté plus haut je crois, càd passer sa vie sur l'étape 5/ à tester 36 modèles... Je me trompe ou y aurait-il moyen de réfléchir intelligemment pour éviter cela ?
Masamunai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2010, 10h32   #7
Membre habitué
 
Inscription : novembre 2009
Messages : 134
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 134
Points : 106
Points : 106
Citation:
Sagissant d'un jeu vidéo (donc un programme informatique), toute partie aléatoire provient forcément d'une routine génératrice de type pseudo-aléatoire ?
Heu… oui de l’aléatoire est par définition aléatoire. Par contre la génération d’un aléa peut être aisément complexifiée. Tu peux très bien simuler un échantillon de variables aléatoires gaussiennes de moyenne M et de variance V, M et V étant fixes. Mais tu peux également simuler un échantillon de variables aléatoires gaussiennes de moyenne M fixe et de variance V dynamique. Par exemple on pourrait très bien exprimer la variance V de ton aléa sous la forme :

V = cste + coefficent * PuissanceArme^2 + aléa.



Citation:
Un processus dont les mesures semblent absolument aléatoires (entre 2 bornes) peut-il être qualifié de carrément NON aléatoire après tests pus poussés ?
L’idée est d’arriver à identifier au mieux la partie déterministe d’un modèle de la partie aléatoire. Ce que je sous-entends dans la partie 3/. du post précédent c’est qu’il faut s’assurer que tu ais bien identifié la totalité de la partie déterministe de ton modèle, le reste étant forcément la partie aléatoire. Quant à la notion d’aléa, c’est plus « complexe » que cela… Il existe des aléas dit IID (indépendants et identiquement distribués) et des aléas corrélés (identiquement distribués).

Citation:
Définition de modèle régressif ? Je ne suis pas sûr de bien comprendre. Ici il n'y a que :
- des distributions fréquentielles apparemment aléatoires,
- un (ou des) modèle(s) théorique(s) à tester comme tu l'a expliqué par 4/ et 5/.
il est où le modèle régressif?
Régressif dans le sens de régression (linéaire, quadratique, etc.).
Par exemple :

D = cste + coefficient * ForceDeFrappe + pDIF * BD

Citation:
La phase 2/ est intéressante si on n'a aucun a priori vrai ou faux ?
Or ici il s'agit d'un jeu vieux de plus de 5 ans, dont tous les joueurs savent que l'attaque, la puissance de ton arme, et la force influent sur les dommages.
Donc est-il intéressant de tester ces paramètres là ? honnetement je ne pense pas... serait vraiment absolument absurde qu'ils ne soient pas des variables explicatives, d'ailleurs les distributions montrent bien une variation claire juste en faisant varier l'attaque.
En revanche, un modèle valable peut très bien avoir la même variable "répétée" plusieurs fois. C'est le cas du modèle pour FF12 par exemple.
Aussi, je peux très bien avoir "oublié" un paramètre parmi ceux déjà établi depuis des années ou que personne n'a remarqué. Par exemple, le modèle pour FF12 (donc du même éditeur), le petit génie qui l'a trouvé utilise aussi un paramètre relatif à ta vitesse de frappe. En toute logique, ca parait absurde mais ca donne des résultats tout à fait corrects en termes de dommages min/max et moyenne.
Encore faut-il savoir si l'attaque, la puissance de ton arme, et la force suffisent à expliquer valablement ton observation. Si tel est le cas, il est alors intéressant de savoir dans quelle mesure. Plutôt :

D = 0.2*Attaque + 3*Puissance + 0.0002*Force + aléa

Ou alors :

D = 10*Attaque + 3*Puissance + 15*Force + aléa

Dans le premier cas, en testant la significativité du coefficient Force tu t’apercevras que la Force peut être statistiquement négligeable (0.0002 c’est trop peu face aux coefficients 0.2 et 3 et même trop proche de zéro, tu peux donc considérer un coefficient égal à zéro, c'est-à-dire que tu peux statistiquement négliger le terme Force).
Tu as raison en affirmant qu’un modèle valable peut très bien avoir la même variable "répétée" plusieurs fois. Par exemple :

D = coefficient1 * Force + coefficent2 * Force^2.

Concernant le modèle pour FF12 de ton petit génie, il ne l’a surement pas trouvé par hasard. C’est parce que ce paramètre apparaît comme statistiquement significatif dans son modèle qu’il a du le prendre en compte. A l’inverse, si changer la valeur de ce paramètre influe sur l’observation de façon significative, c’est bien que ce paramètre est statistiquement valable dans le modèle.

Citation:
passer sa vie sur l'étape 5/ à tester 36 modèles... Je me trompe ou y aurait-il moyen de réfléchir intelligemment pour éviter cela ?
On peut aborder le problème de façon réfléchie. Soit tu veux connaître le modèle exacte implémenté par le dev et à ce moment la tu ne perds pas ton temps à chercher mais essaie de joindre le mec et lui demande. Soit tu ne cherches pas à « deviner » le modèle du dev mais plutôt essaies d’obtenir un modèle assez correcte. Dans ce cas, dès que t’en trouves un (le premier ) qui est acceptable, tu t’arrêtes. Après on peut toujours chercher à améliorer ses modèles…
HAL-9000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2010, 14h22   #8
Invité régulier
 
Inscription : août 2009
Messages : 140
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 140
Points : 9
Points : 9
Bonjour,

Merci pour tes explications HAL.

Citation:
Envoyé par HAL-9000 Voir le message
On peut aborder le problème de façon réfléchie. Soit tu veux connaître le modèle exacte implémenté par le dev et à ce moment la tu ne perds pas ton temps à chercher mais essaie de joindre le mec et lui demande. Soit tu ne cherches pas à « deviner » le modèle du dev mais plutôt essaies d’obtenir un modèle assez correcte. Dans ce cas, dès que t’en trouves un (le premier ) qui est acceptable, tu t’arrêtes. Après on peut toujours chercher à améliorer ses modèles…
Plusieurs personnes ont déjà fait des demandes plus ou moins implicites aux Devs de l'éditeur du jeu lors des différents rendez-vous annuels ces dernières années: ils leur ont rigolé à la figure (fallait s'y attendre lol). Donc oui je pense que les petits génies à l'époque ont dû y aller "by the hard way".

N'ayant trouvé aucune trace de leur réflexions sur le sujet pour arriver au modèle précédemment exposé, j'ai dû supposer leur réflexion de la manière suivante :
1. Quels paramètres sont "explicatifs" ?
Au vu de tests assez visibles sur un monstre donné, faire varier STR(strength= force), Attack et changer d'arme modifie significativement les dommages min/max et la moyenne.
De même, un monstre de niveau plus elevé fera afficher des dommages min/max et moyenne plus faibles. Ce qui se traduit par sa vitalité (VIT) et sa défense, par opposition à STR et Attack du joueur.
Par contre, il a été établi par de nombreux tests qu'aucune variation significative de dommage n'a été observée après variation d'autres paramètres tels la vitesse de frappe(Delay), ou stats du joueur DEX, AGI, VIT, etc... mais là je n'ai pas testé personnellement :s

2. Définition des paramètres de base d'un modèle:
Du coup, pour traduire les constats précédents, les japs ont défini 2 variables:
- Ratio = Player_Attack / Monster_Defense
- fSTR = Player_STR - Monster_VIT
Logiquement, c'est vrai qu'on ne peut définir Ratio = Attack - Defense, car si Attack = Defense, on aurait des dommages = 0 ou autre aberration, ce qui n'est pas observé.
En revanche, je me suis moi même servi de fSTR pour déterminer la VIT de plusieurs types de monstres différents avec la méthode du fSTR=-1 et une arme de baseDamage=1. J'augmente ma STR en commençant le + bas possible (je tape donc à 0 dommage sur le monstre) jusqu'à la valeur de STR qui me donne des dommages non nuls => STR-1 = VIT, cela marchant quelque soit l'attack, du moment que l'arme ait un basedamage=1.
Donc jusque là cela semble cohérent avec les observations.

3. Reste à modèliser ces paramètres explicatifs ensemble: Ratio, fSTR et WeaponDamage(WD), avec un générateur aléatoire de type ALEA.ENTRE.BORNES(a,b) dont on connaît la moyenne.
Comme tu l'a expliqué, la partie déterministe de l'équation est donc devenue (WD+fSTR), mais reste encore le lien entre Ratio, le pRNG(pseudo-random generator).

4. C'est là que je pense que les japs ont alors commencé à définir la notion de pDIF=a*Ratio+b, vu que quand on juxtapose plusieurs distributions fréquentielles en ne faisant varier que l'attaque sur un même monstre, avec la même arme et même STR, les dommages min/max et moyennes semblent suivre un schéma linéaire.
Le "hic" est de déterminer précisément ces 2 coefs a et b, de façon à obtenir les mêmes dommages min/max et approximativement même moyenne que celles observées. Je pense là que les japs ont, peut être par souci de simplification, déterminé que tous les a et b des différents pDIFs comme =1,2, càd:
pDIFmin=1,2*Ratio+0.5 (dommages min pour coups normaux)
pDIFmax=1,2*Ratio+1.5 (dommages max pour coups normaux)
pDIFmin/max crit=pDIFmin/max +1 (dommages min/max pour coups critiques)
(j'ai mis des coefs b au pif jne m'en souviens plus exactement)

5. Mais de nos jours, au vu des tests que j'ai fait récemment, les dommages min/max observés ne correspondent pas du tout à ceux donnés par ce modèle. Donc en supposant (WD+fSTR) correcte, j'en ai déduit que les différences observées provenaient de ces 2 coefs a et b. Lorsque j'ai tracé les droites de régression linéaires sur les distributions de mes tests, effectivement leurs pentes est loin d'être égale à 1,2...et différent pour chaque type de pDIFmin/max norm/crit (pareil pour les coefs b).

Voilà je pense l'historique du pourquoi du comment on en est arrivé là. Heureusement la plupart de ces paramètres sont plus ou moins testables et répétables dans la limite de nos équipements, ce qui est un avantage s'il s'agissait d'un process réel :S
Mais là personnellement, j'ai beau bidouiller ces 2 coefs a et b dans tous les sens, je n'arrive pas à retomber pile poil sur les mêmes valeurs observées pour les dommages min et max (je ne parle même pas de la moyenne ni des critiques)... d'où mon post ici en espérant y obtenir des idées, conseils etc...

Cela dit, si je reprends les choses à la base, en suivant les dernières explications de HAL :

Citation:
Envoyé par HAL-9000
3/. Si tes paramètres sont statistiquement valables, étudier alors les caractéristiques du bruit blanc de ton modèle (partie aléatoire). Verifier si ce sont notamment bien des bruit blancs. Si ce sont bien des bruits blancs, alors ceux-ci peuvent être modélisés via un échantillon de variables aléatoires. Si ce n'est pas le cas, se tourner vers les processus à moyenne mobile, processus ARCH/GARCH/M-GARCH/GJR-GARCH/EGARCH/…
4/. Si bien des bruits blancs, trouver la loi de probabilité qui puissent au mieux rendre compte de la distribution du bruit. Tests d'adéquation à une loi (Kolmogorov/Jarque Bera/etc.).
5/. Enfin si plusieurs modèles sont statistiquement valables au final, sélectionner le modèle le plus adéquate via des critères de maximisation de la vraisemblance, critère d'information d'Akaike, de Schwartz, de Hannan-Quinn, etc.
Comment faire pour tester l'étape 3/ (pour commencer) ?
et aussi dans la foulée :
Comment déterminer que la partie aléatoire est effectivement dépendante de Ratio ? (sinon il faudrait que je l'insére dans BD=WD+fSTR)
Masamunai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2010, 14h44   #9
Membre habitué
 
Inscription : novembre 2009
Messages : 134
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 134
Points : 106
Points : 106
Ton générateur aléatoire de type ALEA.ENTRE.BORNES(a,b) est peut être inexact. Qu'appelles-tu ALEA.ENTRE.BORNES ?

Vois-tu il existe plusieurs façons de simuler des aléas, et c'est peut être là d'où provient l'erreur entre les observations et ton modèle. On peut tirer des aléas selon une loi uniforme, une loi "en cloche" (gaussienne) une loi de Student, de Cauchy, de Student asymétrique (qui génère donc de l'asymétrie dans ton tirage), une loi exponentielle, Inverse gaussienne, normale inverse gaussienne, Gamma, du Chi-Deux, inverse Gamma, de Meixner... D'ou l'intêret d'identifier la loi de probabilité de tes aléas, à travers l'étude des fréquences empiriques et d'une loi de probabilité théorique via test de Kolmogorov-Smirnov (on boucle la boucle on dirait bien ). Mais avant tout, vérifie si tes aléas empiriques observés sont bien assimilables à des variables IID. Etudie notamment la fonction d'autocorrélation de tes aléas .

P.S : tu peux télécharger le logiciel libre R de statistiques ou tu trouveras des packages de regressions lineaires, tests statistiques, fonctions d'autocorrelation, etc. etc.
http://cran.r-project.org/



Je rentrerai bien un peu plus dans les détails en t'aidant dans ton modèle mais mon but n'est pas de faire le job à ta place, et je suppose que tu ne veux pas non plus que le fasse pour toi Je peux juste te donner des pistes, après à toi de trouver le modèle par tes propres moyens et d'en tirer toute la gloire
HAL-9000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2010, 15h09   #10
Membre habitué
 
Inscription : novembre 2009
Messages : 134
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 134
Points : 106
Points : 106
Citation:
Comment déterminer que la partie aléatoire est effectivement dépendante de Ratio ? (sinon il faudrait que je l'insére dans BD=WD+fSTR)
Tu estimes les deux modèles, à savoir modèle sans dépendance de ratio et modèle avec dépendance. Tu tests si les paramètres de tes deux modèles sont tous significatifs. Si dans un des modèles ce n'est pas le cas, tu peux l'éliminer d'office et donc retenir l'autre. Si maintenant les deux modèles ont des paramètres statistiquement significatifs, alors test dans chacun de ces modèles si ta partie aléatoire l'est bien (test d'autocorrélation, d'indépendance, etc.). Si un des deux modèles ne vérifie pas la propriété de "bruit blanc" pour sa partie aléatoire, alors il est éliminé... Si tes deux modèles sont toujours valables, alors au final tu vas sélectionner le meilleur des deux modèles (les deux sont bons, valables, seulement un est meilleur que l'autre) via des critères d'information (Akaike, Schwartz, etc.)
HAL-9000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2010, 15h10   #11
Membre Expert
 
Avatar de Daranc
 
Inscription : janvier 2007
Messages : 1 015
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 1 015
Points : 1 060
Points : 1 060
Euh !!
juste pour information
les nombres aléatoires étaient (à la préhistoire informatique ) générer par une table( donc pas si aléatoire )
J'ignore si c'est toujours le cas .Mais l'astuce de l'époque était de ne pas employer l'instruction Randomize qui lisait simplement la table et prenait les valeurs les unes après les autres, mais randomizetime qui lisait la table à la fréquence de l'instruction (rien d'affolant je parle d'une machine 8bit à 4 Mhz)et prenait la valeur lu lors de l'appui sur une touche .le joueur en fonction de sa vitesse d'exécution faisait le tirage de la valeur.
__________________
Cordialement
Daranc
Daranc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2010, 17h53   #12
Invité régulier
 
Inscription : août 2009
Messages : 140
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 140
Points : 9
Points : 9
Citation:
Envoyé par HAL-9000 Voir le message
Ton générateur aléatoire de type ALEA.ENTRE.BORNES(a,b) est peut être inexact. Qu'appelles-tu ALEA.ENTRE.BORNES ?
c'est le randomizer intégré d'Excel. Je n'en sait rien s'il est inexact ou ok, du moment qu'il me donne un moyenne proche de celles observées (après multiplication par la partie déterminste bien sûr).

Citation:
Vois-tu il existe plusieurs façons de simuler des aléas, et c'est peut être là d'où provient l'erreur entre les observations et ton modèle. On peut tirer des aléas selon une loi uniforme, une loi "en cloche" (gaussienne) une loi de Student, de Cauchy, de Student asymétrique (qui génère donc de l'asymétrie dans ton tirage), une loi exponentielle, Inverse gaussienne, normale inverse gaussienne, Gamma, du Chi-Deux, inverse Gamma, de Meixner... D'ou l'intêret d'identifier la loi de probabilité de tes aléas, à travers l'étude des fréquences empiriques et d'une loi de probabilité théorique via test de Kolmogorov-Smirnov (on boucle la boucle on dirait bien ).
Ben ... à vue d'oeil toutes les distributions ont l'air d'être "grosso modo" uniformes, mais :
1. pour certaines d'entre elles, des artefacts très visibles apparaissent presque brutalement. En particulier pour les distributions coups normaux dont le Ratio < 1.5, on voit vraiment bien un pic de fréquences qui sort d'on ne sait où, et statique : en descendant le Ratio on s'aperçoit que ce pic "reste" au même endroit, à pDIF=1. De même pour les coups critiques, les distributions de fréquences pour Ratio > 1.8 (pDIF>3) semblent voir leurs fréquences "boostées" (mais moins visible).
Ces observations me font penser non pas à un unique pRNG, mais à une combination de plusieurs peut être ? Peut être je me trompe, mais cela me semble difficilement réalisable avec un seul unique pRNG vrai ?
2. Les "queues" de ces distributions sont en pente, pas brutales comme une distrib uniforme...

Citation:
Mais avant tout, vérifie si tes aléas empiriques observés sont bien assimilables à des variables IID. Etudie notamment la fonction d'autocorrélation de tes aléas .
Quels aléas ? ceux de mes distributions fréquentielles, ou du modèle ?

Citation:
P.S : tu peux télécharger le logiciel libre R de statistiques ou tu trouveras des packages de regressions lineaires, tests statistiques, fonctions d'autocorrelation, etc. etc.
http://cran.r-project.org/
Ok c'est fait je l'installe et je tente de voir ce que je peux utiliser de ce logiciel sur mes distribs...

Citation:
Je rentrerai bien un peu plus dans les détails en t'aidant dans ton modèle mais mon but n'est pas de faire le job à ta place, et je suppose que tu ne veux pas non plus que le fasse pour toi Je peux juste te donner des pistes, après à toi de trouver le modèle par tes propres moyens et d'en tirer toute la gloire
T'as tout compris :p (mais je suis pas vache je mets toujours mes sources et personnes qui m'ont aidé)

@ ++
Masa
Masamunai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2010, 18h07   #13
Membre habitué
 
Inscription : novembre 2009
Messages : 134
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 134
Points : 106
Points : 106
Soyons clairs, quand je parle d'identifier la distribution de ta partie "aléatoire" c'est clairement de pouvoir assimiler tes données empiriques de ces dits aléas à une loi de probabilité théorique. Par exemple, tu traces un histogramme de tes observations empiriques, puis tu essaies de voir quelle loi probabiliste théorique coïncide :



Une fois que tu as bien identifié la loi de probabilité théorique qui coïncide au mieux (après avoir effectuer des test d'adéquations par exemple) tu es en mesure de passer à l'étape de simulation. Comme tu connaîs la loi de probabilité théorique ainsi que ses paramètres (la moyenne est une estimation de l'espérance mathématique, variance, etc.), tu vas utiliser un générateur de nombre issu de cette loi. Si par exemple la loi identifiée est gaussienne, alors pour effectuer des simulations tu vas utiliser la fonction LOI.NORMALE.INVERSE(ALEA();m;sigma) sous excel (faut qu'on parle un peu d'excel quand même ) qui utilise les paramètres Moyenne et Variance que tu auras estimé.

Concernant le soft R si tu as des questions n'hésite pas

D'la doc : http://www-rocq.inria.fr/axis/modula...ns-grenier.pdf
HAL-9000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2010, 23h41   #14
Invité régulier
 
Inscription : août 2009
Messages : 140
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 140
Points : 9
Points : 9
oui ca je pense que j'avais compris le principe, mais ce qui me gène c'est:
1. ai-je vraiment besoin d'une telle puissance telle que R ? me semble qu'Excel propose déjà une suite certes moins complète mais peut être suffisante ?
2. ... et surtout bien plus commode à utiliser que le language "a la Matlab" de R non ? risque de me prendre 1 mois rien que pour comprendre les bases du language de R ?
3. je n'ai jamais vraiment bien saisi pourquoi tous les staticiens utilisent des histogrammes pour des données discrètes, perso je les avais fait en nuage de points :s

Enfin, en termes d'assimilation de mes distributions fréquentielles (les données empiriques) à une distribution connue (Unif, Gauss, etc...), j'avais déjà fait quelque essais "visuels" mais d'une part je ne sait pas comment "tester" si ca "colle", et d'autre part, j'ai pu essayer visuellement par exemple 2 gaussiennes convolutées, lesquelles donnent effectivement une partie centrale "a peu près" uniforme et des "queues" en pente. D'où ma conclusion "m'enfin je pourrait passer ma vie à essayer plein de combinaisons de modèles thériques sans jamais être sûr ...".

Dernière modification par Masamunai ; 27/11/2010 à 17h30.
Masamunai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2010, 09h15   #15
Membre habitué
 
Inscription : novembre 2009
Messages : 134
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 134
Points : 106
Points : 106
Au vu de ton graphe je pencherai sérieusement pour une mixture de deux lois gaussiennes : exmple mixture de 2 loi gaussiennes.

Pour tester si une loi probabiliste est bien en adéquation avec tes données empiriques, utilise donc le test d'adéquation de Kolmogorov-Smirnov ! Voila une définition du fonctionnement de ce test, avec un exemple concret sous R : http://fr.wikipedia.org/wiki/Test_de_Kolmogorov-Smirnov



P.S. : R et Matlab sont deux logiciels différents, (le premier open source alors que le second payant). Matlab est notamment un logiciel de calcul matriciel alors que R n'en est pas un... Enfin l'histogramme est pratique dans le sens ou tu peux juxtaposer une densité de probabilité par dessus et eliminer d'office visuellement quelle loi probabiliste ne convient pas.


Sinon on peux faire un Deal, mets en pièce jointe tes données empriques, je regarde de mon côté, et en fonction de mes résultats je pourrais t'orienter sérieusement vers une piste statistiquement viable, histoire de ne pas te disperser dans l'immensité de la théorie probabiliste

Dernière modification par HAL-9000 ; 17/03/2010 à 09h27.
HAL-9000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2010, 12h50   #16
Invité régulier
 
Inscription : août 2009
Messages : 140
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 140
Points : 9
Points : 9
Je post vite fait avant de retourner au boulot pour te dire que mes données empiriques sont déjà postées en lien dans le post principal en haut.

Ton graphe prouve bien que je ne m'étais pas trompé dans mon "feeling" que ça pourrait être une combinaison de plusieurs "aléas" Merci HAL ^^

Merci aussi pour ton test de kolmo, exactement ce dont j'ai besoin.

Sinon oui tu as tout compris: le gros risque que je crains est en effet de me disperser ...

Je regarderai plus en détail tes infos ce soir, merci encore.^^

@++
Masa
Masamunai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2010, 14h41   #17
Membre habitué
 
Inscription : novembre 2009
Messages : 134
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 134
Points : 106
Points : 106
Voila la modélisation pour la première colonne de tes observations.
J'ai également effectué une simulation à partir du modèle que j'ai calibré...
Fichiers attachés
Type de fichier : xls Modelisation.xls (38,5 Ko, 11 affichages)
HAL-9000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2010, 19h16   #18
Invité régulier
 
Inscription : août 2009
Messages : 140
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 140
Points : 9
Points : 9
Bonsoir

Euh là.... c'est bien joli mais (et oui désolé) c'est un poil trop rapide là...

<Yoda Style>Pas tout comprendre Moi Je crois.</Yoda Style>

Déjà d'où ils sortent tes "aléas" ? (de la simulation sur R?)

Ensuite, si j'ai bien compris ceci n'est valable que pour modèliser la 1ére distribution et uniquement celle ci ? parce que tu as dû voir qu'il y en avait bien une vingtaine x2 (coups normaux + coups critiques juste en dessous), donc je me demande comment reproduire (en supposant que j'ai compris) tes résultats de modèlisation de façon à ce que ce modèle "colle " à TOUTES les distribs ?

Quelques explications en plus des commentaires de ton fichier seraient les bienvenues stp

De mon côté j'ai essayé de suivre un de tes conseils préconisant d'être sûr que toutes les variables explicatives soient en dehors du ou des aléas à étudier, et j'ai presque réussi à centrer toutes mes distribs sur 1, par le raisonnement suivant :
Si le "format" Dmesurés = AléaAétudier * Ratio*(WD+fSTR) est correct (Note j'ai "sorti" la variable explicative Ratio du précédent modèle des japs), alors AléaAétudier = Dmesurés / Ratio*(WS+fSTR) devrait être centré et de largeur constante ?
Je bidouille mes distribs et effectivement j'obtiens toutes mes distribs centrées sur 1 malheureusement, leurs largeurs ne sont pas constante...
Dois-je interpréter cela :
- Soit ma partie déterministe n'est pas correcte ?
- Soit il y a encore une variable explicative "planquée" dans l'AléaAétudier ?
- les 2 ?

@ ++
Masamunai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2010, 19h48   #19
Membre habitué
 
Inscription : novembre 2009
Messages : 134
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 134
Points : 106
Points : 106


Mes aléas du modèle ont été estimés en même temps que les coefficients du modèle (constante et coefficient) par la méthode du maximum de vraisemblance. Tu peux trouver beaucoup de littérature sur l'estimation du maximum de vraisemblance sur le web, c'est la technique d'estimation la plus couramment utilisée car assez précise...

Voila comment j'ai procédé pour obtenir ce résultat :
premièrement j'ai étudié l'autocorrélation entre tes données et j'ai remarqué que celles-ci étaient corrélées au premier ordre alors qu'elles n'étaient pas partiellement autocorrélées. J'en ai alors conclu un modèle à moyenne mobile du premier ordre. J'ai alors estimé les coefficients de ce modèle via maximum de vraisemblance (sous Matlab en utilisant des fonction de maximisation de la log-vraisemblance notamment), puis testé la significativité de mes coefficients (ils étaient statistiquement significatifs selon le test de Student). J'ai alors étudié les résidus du modèle (les aléas) et regardé si ceux-ci étaient bien indépendants et identiquement distribués à travers un test de persistance d'autocorrélation. C'était le cas, donc j'ai alors essayé d'identifier la nature de la distribution de ces aléas, via un test de Kolmogorov-Smirnov à la loi de Gauss, et le test s'est avéré concluant.
Donc au final j'ai obtenu pour i = 1...55 (taille de ton échantillon de données) :

Obs(i) = cste + coefficient x aléa(i-1) + aléa(i)

où aléa est distribué selon une loi gaussienne de moyenne M et variance V.

Maintenant la partie simulation :
j'ai effectué le chemin décrit ci-dessus à l'envers en commençant par simuler un échantillon de variables indépendantes et identiquement distribuées selon la loi normale de moyenne M et écart-type RACINE(V) à l'aide du générateur de variables gaussienne d'excel. Puis j'ai appliqué la formule :

Obs(i) = cste + coefficient x aléa(i-1) + aléa(i)

P.S. : si je refais une estimation sur mes Obs simulées j'obtient de nouveau le même modèle qu'au départ
HAL-9000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2010, 19h52   #20
Membre habitué
 
Inscription : novembre 2009
Messages : 134
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 134
Points : 106
Points : 106
Attention, comme dans ton classeur y'a plein de colonnes ici et la, j'ai pas effectué de régression de telle colonne sur telle colonne (car je ne sais pas quel échantillon est la variable exogène, quel échantillon la variable endogène...) Si ça se trouve un modèle de régression peut "coller"
HAL-9000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 00h25.


 
 
 
 
Partenaires

Hébergement Web