Fonction Alea avec un seule borne (0) et répondant à la loi normale

locsta29

XLDnaute Nouveau
Je souhaite généré un nombre aléatoire ne pouvant etre inférieur a 0, multiple de 0,25 et vérifiant une moyenne et d'un ecar type.

J'ai utiliser la fonction que ma gentillement proposé Dranreb pour générer un nombre aléatoire répondant à la loi normale, fonction qui marche très bien mais qui ne me permet pas de définir une borne à 0.

Code:
Function DistrQsN(ByVal Rnd0à1 As Double, ByVal Moyenne As Double, ByVal ÉcartType As Double) As Double
Rem. Distribution quasi normale à part que le nombre engendré ne fuira la moyenne de plus de 4 fois l'écart type
DistrQsN = (Rnd0à1 ^ 0.18148 - (1 - Rnd0à1) ^ 0.18148) * 4 * ÉcartType + Moyenne
End Function


Comment rajouter cette borne tout en respectant la loi normale? (puisque évidemment la loi normale est respecté grâce à ces valeurs négatives, nous ne pouvons donc pas simplement les ignorer.
 

Pièces jointes

  • Nombre Aleatoire avec borne .xlsm
    14.3 KB · Affichages: 39

Dranreb

XLDnaute Barbatruc
Bonsoir.
Je vous conseille en fait d'étudier la fonction LOI.GAMMA
Je le ferai peut être aussi de mon coté, car je ne la connais encore pas.
Pour moi une grandeur aléatoire bornée ne peut tout simplement définitivement pas obéir à une loi normale.
Mais elle peut quand même avoir une moyenne et quelques caractéristiques, calculables à partir d'échantillons, qui remplacent l'écart type.
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Cela dit, si on peut considérer qu'il existe une valeur typique ayant une probabilité maximale d'apparaitre, et que la probabilité, plus faible, d'apparition de son double est la même que celle de sa moitié, très faibles le décuple et le dixième etc., je vous conseille de calculer la moyenne et l'écart type des logarithmes des valeurs de l'échantillon (qui ne doit contenir aucune valeur nulle). DistrQsN paramétré avec ceux ci vous produira des nombres dont il ne restera qu'à calculer l'exponentielle.
 

locsta29

XLDnaute Nouveau
Bonsoir Dranreb,
Il semble que la LOI.WEIBULL (très similaire à la LOI.GAMMA) soit mieux adapter à mon problème.
Je commence donc par établir un histogramme de mes données en définissant des classes.
Ensuite je cherche à trouver le Alpha et Beta correspondant le mieux possible à mes histogrammes (Alpha et Beta différents pour chacun de mes histogrammes)
Le problème est justement de définir ces facteurs à partir de mes données...

J'ai trouvé quelqu'un qui propose une solution (en anglais) mais je suis pas sur de savoir comment manipuler cela.
Mon but ultime étant toujours le même, effectuer des simulations qui vérifies mes histogrammes

http://stats.stackexchange.com/questions/8960/how-can-i-determine-weibull-parameters-from-data

Code:
library(fitdistrplus)

#Generate fake data
shape <- 1.9
x <- rweibull(n=1000, shape=shape, scale=1)

#Fit x data with fitdist
fit.w <- fitdist(x, "weibull")
summary(fit.w)
plot(fit.w)


Fitting of the distribution ' weibull ' by maximum likelihood
Parameters :
       estimate Std. Error
shape 1.8720133 0.04596699
scale 0.9976703 0.01776794
Loglikelihood:  -636.1181   AIC:  1276.236   BIC:  1286.052
Correlation matrix:
          shape     scale
shape 1.0000000 0.3166085
scale 0.3166085 1.0000000
 

Pièces jointes

  • Creation de classes.xlsx
    24.1 KB · Affichages: 34

Dranreb

XLDnaute Barbatruc
Bonjour
Mais je l'ai étudiée, et je pense avoir bien avancé.
La solution consistant à considérer comme une probabilité cumulée le nombre de valeurs expérimentales inférieures ou égales à chacune d'elle divisé par leur nombre total augmenté de 1 est très prometteur.
Pourquoi avez vous ouvert une 3ième discussion sur le même sujet ?
Si ça vous intéresse toujours j'aurai bientôt un classeur à vous joindre (sans VBA, ce qui est très rare de ma part) qui montrera les calculs à faire.
Il montrera aussi sur un graphique une série de points aléatoires en distribution de Weibull selon alpha bêta imposés. Leurs valeurs seront positionnées sur l'axe X, et en Y le rang divisé par leur nombre+1. Il y aura aussi les courbes Weilbull cumulée et non selon alpha et bêta recalculés selon ces points. Les écarts de plus de 20% entre les imposés et calculés sont plutôt rares.
À +
 
Dernière édition:

Statistiques des forums

Discussions
312 305
Messages
2 087 083
Membres
103 458
dernier inscrit
Vulgaris workshop