Forum de Statistiques
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-45%
Le deal à ne pas rater :
WHIRLPOOL OWFC3C26X – Lave-vaisselle pose libre 14 couverts – ...
339 € 622 €
Voir le deal

calcul de probabilites pour la loi normale bivariee

4 participants

Aller en bas

calcul de probabilites pour la loi normale bivariee Empty calcul de probabilites pour la loi normale bivariee

Message par vblover Ven 15 Avr 2011 - 15:52

Quelqu'un peut-il m'indiquer comment calculer la probabilite suivante
P(a <= X <= b, c <= Y <=d) sachant que X et Y suivent la loi normale bivariee avec m et sigma.
m etant le vecteur des moyennes et sigma la matrice des variances-covariances. m et sigma sont connus.
Merci.

vblover

Nombre de messages : 6
Date d'inscription : 15/04/2011

Revenir en haut Aller en bas

calcul de probabilites pour la loi normale bivariee Empty Re: calcul de probabilites pour la loi normale bivariee

Message par popotam Mar 19 Avr 2011 - 8:05

Mathématiquement c'est l'intégrale double de la densité de cette loi normale sur le rectangle [a,b]x[c,d].
Si c'est pour l'évaluer numériquement, tu peux utiliser le logiciel R.

popotam

Nombre de messages : 371
Date d'inscription : 27/09/2006

Revenir en haut Aller en bas

calcul de probabilites pour la loi normale bivariee Empty Re: calcul de probabilites pour la loi normale bivariee

Message par vblover Jeu 21 Avr 2011 - 22:22

Merci pour le coup de main. Votre reponse n'est pas assez precise car elle ne prend pas en compte le coefficient de correlation. En tout cas ce que je cherchais c'etait plutot un algorithme pour le programmer et l'integrer dans un programme en vb. C'est chose faite, j'ai trouve une fonction en vba que j'ai due modifier. Merci quand meme

vblover

Nombre de messages : 6
Date d'inscription : 15/04/2011

Revenir en haut Aller en bas

calcul de probabilites pour la loi normale bivariee Empty Re: calcul de probabilites pour la loi normale bivariee

Message par A.D. Ven 22 Avr 2011 - 8:08

Bonjour,

vblover a écrit:C'est chose faite, j'ai trouve une fonction en vba que j'ai due modifier.
Ca serait cool d'indiquer quelle est cette fonction et éventuellement le code que vous avez utilisé, peut-être que cela pourrait servir à d'autres qui sait Wink


Cordialement,

A.D.

A.D.

Nombre de messages : 305
Age : 35
Localisation : Nantes
Date d'inscription : 02/12/2009

http://www.dacta.fr

Revenir en haut Aller en bas

calcul de probabilites pour la loi normale bivariee Empty Re: calcul de probabilites pour la loi normale bivariee

Message par vblover Sam 23 Avr 2011 - 11:58

Pas de probleme. Vous aurez tout ce soir. Salut.

vblover

Nombre de messages : 6
Date d'inscription : 15/04/2011

Revenir en haut Aller en bas

calcul de probabilites pour la loi normale bivariee Empty Re: calcul de probabilites pour la loi normale bivariee

Message par vblover Sam 23 Avr 2011 - 19:09

Chose promise, chose due.
La routine main est de moi. Elle fait appel a la fonction bivar. Cette derniere est une transcription en Basic de l'algorithme de Dresner. Cette fonction fait appel a la fonction cumnor qui calcule la probabilite cumulative d'une variable normale d'esperance 0 et de variance 1 (centree et reduite)
' Ici commence le programme VB6
' Chaque ligne qui commence par ' est un commentaire et donc pas prise en compte par vb
Option Explicit
' Programme principal qui appelle la fonction bivar
Sub main()
Dim P11 As Double, P12 As Double, P21 As Double, P22 As Double
Dim X1 As Double, X2 As Double, Y1 As Double, Y2 As Double
Dim prob As Double, Coeff_Corr As Double
'exemple de calcul de la prob (X1 <= X <= X2 et Y1 <= Y <= Y2)
' les valeurs de X1, X2, Y1 et Y2 suivent ci-dessous
X1 = 0.5
X2 = 2#
Y1 = 1
Y2 = 3

Coeff_Corr = 0.5 ' Coefficient de correlation entre X et Y
' bien sur -1 <= coeff_corr <= 1
' Si le coeff = 0 alors X et Y sont Independants
' pour le calcul de la prob (X1 <= X <= X2 et Y1 <= Y <= Y2)
' je calcule P11=Prob(X <=X1 et y <= Y1) et P12= Prob(X <=X1 et y <= Y2)
' P21=Prob(X <=X2 et y <= Y1) et P22=Prob(X <=X2 et y <= Y2)
' Car la methode de Dresner calcule une probabilite du type prob=Prob(X <=x et y <= y) alors nous avons besoin
' de la probabilite Prob(X! <=X <=X2 etY1<=Y <= Y2). Faites un petit dessin vous comprendrez vite pourquoi
' Prob(X! <=X <=X2 etY1<=Y <= Y2)=P22 - P12 - P21 + P11
P11 = BIVAR(X1, Y1, Coeff_Corr)
P12 = BIVAR(X1, Y2, Coeff_Corr)
P21 = BIVAR(X2, Y1, Coeff_Corr)
P22 = BIVAR(X2, Y2, Coeff_Corr)
prob = P22 - P12 - P21 + P11
Debug.Print prob


End Sub
Function BIVAR(X1 As Double, X2 As Double, rho As Double)
Dim sgn1 As Double, sgn2 As Double, delta As Double
Dim rho1 As Double, rho2 As Double, q1 As Double, q2 As Double
9020 If X1 * X2 * rho > 0 Then GoTo 9100
9030 If X1 <= 0 And X2 <= 0 And rho <= 0 Then BIVAR = altbivar(X1, X2, rho): GoTo 9500
9040 If X1 <= 0 And X2 >= 0 And rho >= 0 Then BIVAR = cumnorm(X1) - altbivar(X1, -X2, -rho): GoTo 9500
9050 If X1 >= 0 And X2 <= 0 And rho >= 0 Then BIVAR = cumnorm(X2) - altbivar(-X1, X2, -rho): GoTo 9500
9060 If X1 >= 0 And X2 >= 0 And rho <= 0 Then BIVAR = cumnorm(X1) + cumnorm(X2) - 1 + altbivar(-X1, -X2, rho): GoTo 9500
9100 If X1 < 0 Then sgn1 = -1 Else sgn1 = 1
9110 If X2 < 0 Then sgn2 = -1 Else sgn2 = 1
9120 rho1 = (rho * X1 - X2) * sgn1 / (Sqr(X1 * X1 - 2 * rho * X1 * X2 + X2 * X2))
9130 rho2 = (rho * X2 - X1) * sgn2 / (Sqr(X1 * X1 - 2 * rho * X1 * X2 + X2 * X2))
9140 delta = (1 - sgn1 * sgn2) / 4
9150 If X1 > 0 And rho1 >= 0 Then q1 = 0.5 - altbivar(-X1, 0, -rho1): GoTo 9300
9160 If X1 > 0 And rho1 < 0 Then q1 = cumnorm(X1) - 0.5 + altbivar(-X1, 0, rho1): GoTo 9300
9170 If X1 < 0 And rho1 >= 0 Then q1 = cumnorm(X1) - altbivar(X1, 0, -rho1): GoTo 9300
9180 q1 = altbivar(X1, 0, rho1)
9300 If X2 > 0 And rho2 >= 0 Then q2 = 0.5 - altbivar(-X2, 0, -rho2): GoTo 9400
9310 If X2 > 0 And rho2 < 0 Then q2 = cumnorm(X2) - 0.5 + altbivar(-X2, 0, rho2): GoTo 9400
9320 If X2 < 0 And rho2 >= 0 Then q2 = cumnorm(X2) - altbivar(X2, 0, -rho2): GoTo 9400
9330 q2 = altbivar(X2, 0, rho2)
9400 BIVAR = q1 + q2 - delta
9500 End Function


Function altbivar(X1 As Double, X2 As Double, rho As Double)
Dim a(4) As Double, b(4) As Double, aa As Double, bb As Double
Dim cum As Double, I As Integer, J As Integer
Dim F As Double
If rho > 0.999999 Then rho = 0.999999
If rho < -0.999999 Then rho = -0.999999
9600 a(1) = 0.325303: a(2) = 0.4211071: a(3) = 0.1334425: a(4) = 0.006374323
9610 b(1) = 0.1337764: b(2) = 0.6243247: b(3) = 1.3425378: b(4) = 2.2626645
9620 aa = X1 / (Sqr(2 * (1 - rho * rho))): bb = X2 / (Sqr(2 * (1 - rho * rho)))
9630 cum = 0
9640 For I = 1 To 4
9650 For J = 1 To 4
9660 F = Exp(aa * (2 * b(I) - aa) + bb * (2 * b(J) - bb) + 2 * rho * (b(I) - aa) * (b(J) - bb))
9670 cum = cum + a(I) * a(J) * F
9680 Next J
9690 Next I
9700 altbivar = cum * Sqr(1 - rho * rho) / 3.1415927
End Function
Public Function cumnorm(x As Double) As Double
Dim q As Double, primex As Double, y As Double
Dim alpha As Double, a1 As Double, a2 As Double
Dim a3 As Double, a4 As Double, a5 As Double, dum As Double
' This calculates the cumulative normal function.
alpha = 0.2316419
a1 = 0.31938153
a2 = -0.356563782
a3 = 1.781477937
a4 = -1.821255978
a5 = 1.330274429
q = 1 / (1 + alpha * Abs(x))
primex = 0.3989423 * Exp(-x * x * 0.5)
dum = (a3 + q * (a4 + a5 * q))
primex = primex * (q * (a1 + q * (a2 + q * dum)))
If x < 0 Then
y = primex
Else
y = 1 - primex
End If
cumnorm = y
End Function


Dernière édition par vblover le Dim 24 Avr 2011 - 13:59, édité 1 fois

vblover

Nombre de messages : 6
Date d'inscription : 15/04/2011

Revenir en haut Aller en bas

calcul de probabilites pour la loi normale bivariee Empty Re: calcul de probabilites pour la loi normale bivariee

Message par A.D. Sam 23 Avr 2011 - 21:02

Merci vblover, c'est très gentil à vous Smile
[Si vous pouviez simplement éditer votre message afin d'y ajouter le code entre les balises "codes", cela serait parfait Wink ]

Bonne soirée.


Cordialement,

A.D.

A.D.

Nombre de messages : 305
Age : 35
Localisation : Nantes
Date d'inscription : 02/12/2009

http://www.dacta.fr

Revenir en haut Aller en bas

calcul de probabilites pour la loi normale bivariee Empty Re: calcul de probabilites pour la loi normale bivariee

Message par vblover Dim 24 Avr 2011 - 13:45

Pardon, je ne crois pas avoir saisi le sens de votre question. Je peux vous expliquer tout point qui vous intéresse mais pour l'instant je n'ai pas compris votre question. Au juste que voulez vous? Et qu'entendez vous par balises. Si vous consentez a afficher votre e mail, je pourrais vous envoyer une explication plus détaillée.

vblover

Nombre de messages : 6
Date d'inscription : 15/04/2011

Revenir en haut Aller en bas

calcul de probabilites pour la loi normale bivariee Empty Re: calcul de probabilites pour la loi normale bivariee

Message par gg Dim 24 Avr 2011 - 14:59

Vblover,

en cliquant sur le nom de l'auteur d'un message, on peut généralement lui envoyer un message privé. Pas besoin d'afficher son adresse.

Cordialement.

gg

Nombre de messages : 2174
Date d'inscription : 10/01/2011

Revenir en haut Aller en bas

calcul de probabilites pour la loi normale bivariee Empty Re: calcul de probabilites pour la loi normale bivariee

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum