OVH Cloud OVH Cloud

fonctions statistiques de excel dans access

22 réponses
Avatar
Ma Dalton
Bonjour,

quelqu'un saurait-il comment utiliser la fonction loi.poisson de excel dans
access. Dans l'historique du groupe, un seul message sans réponse datant de
l'an 2000 figure.

rappel de la fonction loi.poisson: Cette fonction sert à obtenir le
coéficient de poisson afin comparer une donnée à la moyenne d'un ensemble de
données

par exemple: il survient au cours des 4 dernières années 10, 15, 12, et 14
évènements quelquonques soit 12,75 en moyenne. Cette année, 16 évènements
surviennent. Est-ce significatif? avec poisson=0.21 ça l'est !

De plus, puisque la table des données est une liste cummulative des cas,
j'ai à produire des tableaux croisés avant de calculer la valeur poisson.
Certains tableaux croisé seront donc ventillés en fonction des autres
variable de ma table (age, sexe, ...)

Finalement pour ceux qui conaissent, le logiciel gratuit EPI-INFO offert par
le CDC d'Atlanta aux USA proposent une série de DLL qu'il me semble possible
de récupérer en VBA. Qu'en pensez-vous

merci

10 réponses

1 2 3
Avatar
Ma Dalton
La question m'était venu d'un collègue et je l'ai posté sans trop réfléchir.
Bref, l''aide en ligne donne déjà un bon départ ...

Mais contrairement à ce qu'on m'avait dit, loi.poisson existe en access,
sauf qu'il faut le faire en VBA puisque la fonction n'est pas accessible via
le générateur (comme c'est le cas en excel).

merci à tous
ou n'hésitez pas si vous avez un point de vue à me donner

"Ma Dalton" a écrit dans le message news:

Bonjour,

quelqu'un saurait-il comment utiliser la fonction loi.poisson de excel
dans

access. Dans l'historique du groupe, un seul message sans réponse datant
de

l'an 2000 figure.

rappel de la fonction loi.poisson: Cette fonction sert à obtenir le
coéficient de poisson afin comparer une donnée à la moyenne d'un ensemble
de

données

par exemple: il survient au cours des 4 dernières années 10, 15, 12, et
14

évènements quelquonques soit 12,75 en moyenne. Cette année, 16 évènements
surviennent. Est-ce significatif? avec poisson=0.21 ça l'est !

De plus, puisque la table des données est une liste cummulative des cas,
j'ai à produire des tableaux croisés avant de calculer la valeur poisson.
Certains tableaux croisé seront donc ventillés en fonction des autres
variable de ma table (age, sexe, ...)

Finalement pour ceux qui conaissent, le logiciel gratuit EPI-INFO offert
par

le CDC d'Atlanta aux USA proposent une série de DLL qu'il me semble
possible

de récupérer en VBA. Qu'en pensez-vous

merci






Avatar
Jinroh
Voilà une question intéressante... (j'interviens seulement
pour recevoir les réponses aussi)

Je sais pas si quelqu'un répondra mais je sens qu'il va
falloir la programmer la loi de Poisson... (joli petit
exercice)

-----Message d'origine-----
Bonjour,

quelqu'un saurait-il comment utiliser la fonction
loi.poisson de excel dans

access. Dans l'historique du groupe, un seul message
sans réponse datant de

l'an 2000 figure.

rappel de la fonction loi.poisson: Cette fonction sert à
obtenir le

coéficient de poisson afin comparer une donnée à la
moyenne d'un ensemble de

données

par exemple: il survient au cours des 4 dernières années
10, 15, 12, et 14

évènements quelquonques soit 12,75 en moyenne. Cette
année, 16 évènements

surviennent. Est-ce significatif? avec poisson=0.21 ça
l'est !


De plus, puisque la table des données est une liste
cummulative des cas,

j'ai à produire des tableaux croisés avant de calculer la
valeur poisson.

Certains tableaux croisé seront donc ventillés en
fonction des autres

variable de ma table (age, sexe, ...)

Finalement pour ceux qui conaissent, le logiciel gratuit
EPI-INFO offert par

le CDC d'Atlanta aux USA proposent une série de DLL qu'il
me semble possible

de récupérer en VBA. Qu'en pensez-vous

merci




.



Avatar
Ma Dalton
Bonjour pourriez vous SVP m'aider à démarrer correctement. Je ne comprend
plus rien ...
Je test dans une fenêtre d'exécution VB la commande suivante :
? 1-loi.poisson(60-1, 40, vrai)
et je recois l'erreur 424 (???). j'imagine que je devrait plutôt créer une
fonction du genre

function Poisson(x as long, y as long) as long
'<<< qu'est-ce qui doit être mis ici ?>>>
poisson = 1 - loi.poisson(x - 1, y, vrai)
end function

Avec ces valeurs poisson doit être de 0,0018 donc significativement au
dessus de la moyenne

merci
Avatar
Raymond [mvp]
Bonsoir Ma dalton.

Ne penses-tu pas qu'il serait plus judicieux de passer les valeurs dans une
feuille vierge excel par automation, de faire calculer par excel et de
récupérer la valeur, le tout en quelques lignes ?

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Ma Dalton" a écrit dans le message de
news:%
Bonjour pourriez vous SVP m'aider à démarrer correctement. Je ne comprend
plus rien ...
Je test dans une fenêtre d'exécution VB la commande suivante :
? 1-loi.poisson(60-1, 40, vrai)
et je recois l'erreur 424 (???). j'imagine que je devrait plutôt créer
une

fonction du genre

function Poisson(x as long, y as long) as long
'<<< qu'est-ce qui doit être mis ici ?>>>
poisson = 1 - loi.poisson(x - 1, y, vrai)
end function

Avec ces valeurs poisson doit être de 0,0018 donc significativement au
dessus de la moyenne

merci




Avatar
Raymond [mvp]
.../...

Pour le fun, lis ces pages et tu sauras quoi mettre dans ta fonction:
http://groups.google.com/groups?hl=fr&lr=&ie=UTF-8&q=loi.poisson+&btnG=Rechercher&meta

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
Avatar
Eric
Bonjour Ma Dalton,

Comme le dit Raymond, c'est fraiment fun fun !

Bon, je connais pas ton coefficient de poisson mais la loi oui.
La fonction Loi.Poisson d'excel, quand tu mets en 3eme argument VRAI,
c'est pour avoir Pr(X<=k) je suppose. Si c'est le cas, il t'appartiendra
de modifier la fonction que je te passe.

Je suis parti du fait que tu dois donner en 1er argument l'espérance
(Lambda) et en 2eme, la valeur de k.

Je calcule seulement Pr{X=k}.

Le calcul de factoriel k (k!) est fait de manière recursive.

Je suis pas sur de devoir typer LaValeur comme Long , Integer me parait
suffisant mais ...

Function LoiPoisson(Lambda As Double, LaValeur As Long) As Double
LoiPoisson = Exp(-Lambda) * Lambda ^ LaValeur / FactRecursif
(LaValeur)
End Function

FactRecursif doit être typé as Double vu les valeurs retournées.

Function FactRecursif(UneValeur As Long) As Double
Dim UneValeur2 As Long
If UneValeur = 0 Then
FactRecursif = 1
Else
UneValeur2 = UneValeur - 1
FactRecursif = UneValeur * FactRecursif(UneValeur2)
End If
End Function

Espérant t'avoir mis sur le chemin ...

A+

Eric

"Ma Dalton" écrivait
news:#:

Bonjour pourriez vous SVP m'aider à démarrer correctement. Je ne
comprend plus rien ...
Je test dans une fenêtre d'exécution VB la commande suivante :
? 1-loi.poisson(60-1, 40, vrai)
et je recois l'erreur 424 (???). j'imagine que je devrait plutôt
créer une fonction du genre

function Poisson(x as long, y as long) as long
'<<< qu'est-ce qui doit être mis ici ?>>>
poisson = 1 - loi.poisson(x - 1, y, vrai)
end function

Avec ces valeurs poisson doit être de 0,0018 donc significativement au
dessus de la moyenne

merci




Avatar
Arnaud [lwa]
Bonjour Jinroh,

Dans sa missive, Jinroh a atermoyé :
| Voilà une question intéressante... (j'interviens seulement
| pour recevoir les réponses aussi)
|
| Je sais pas si quelqu'un répondra mais je sens qu'il va
| falloir la programmer la loi de Poisson... (joli petit
| exercice)
|


J'ai trouvé ceci à comprendre et adapter peut-être :

function X=poiss(p)
% On genere 1 realisation
% de la loi de Poisson de parametre p
a=exp(-p);
n=0;
u=rand;
while (u>a),
u=u*rand;
n=n+1;
end;
X=n;
source : http://www-lmc.imag.fr/lmc-sms/Anestis.Antoniadis/magistere/TP1.html

Sinon, dans le code source de la page
http://www.sciences-en-ligne.com/momo/chronomath/chrono1/Poisson.html#lp
on trouve :

<SCRIPT language=JavaScript>
function go()
{

var m="",k="";
m=eval(prompt("Entrez le paramètre:",m))
ok=1;
while (ok=1)
{
k=eval(prompt("X = k, entrez k:",k))

p=Math.exp(-m)*Math.pow(m,k)/fac(k)
alert("Prob(X = "+k+") = "+p)
if(!confirm("Autre valeur de k ?")) return
}
}


Voilà, espérant avoir donné une nouvelle piste....
a+
--
Arnaud
-----------------------------------
http://users.skynet.be/mpfa/
-----------------------------------
Avatar
Ma Dalton
Peut-être, je ne sais pas trop ce qu'implique automation, je vais me
renseigner sur le sujet. Mais comme on dit, la réponse nous pend souvent au
bout du nez et il faut un peu de recul pour mieux la voir.

j'imagine que les exemples de ce que tu me proposes sont assez fréquents

merci

"Raymond [mvp]" a écrit dans le message news:

Bonsoir Ma dalton.

Ne penses-tu pas qu'il serait plus judicieux de passer les valeurs dans
une

feuille vierge excel par automation, de faire calculer par excel et de
récupérer la valeur, le tout en quelques lignes ?

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Ma Dalton" a écrit dans le message de
news:%
Bonjour pourriez vous SVP m'aider à démarrer correctement. Je ne
comprend


plus rien ...
Je test dans une fenêtre d'exécution VB la commande suivante :
? 1-loi.poisson(60-1, 40, vrai)
et je recois l'erreur 424 (???). j'imagine que je devrait plutôt créer
une

fonction du genre

function Poisson(x as long, y as long) as long
'<<< qu'est-ce qui doit être mis ici ?>>>
poisson = 1 - loi.poisson(x - 1, y, vrai)
end function

Avec ces valeurs poisson doit être de 0,0018 donc significativement au
dessus de la moyenne

merci








Avatar
Eric
Bonjour Jinroh,

Mais non c'est tout simple à faire. La loi Normale aurait été un petit
peu plus compliquée à développer.
Et je te dis pas si l'auteur du post voulait approximer une Binomiale par
une Poisson puis, en fonction, par une Normale.
On refait le monde quoi !!!

;-))

A+
Eric

PS:Jettes un oeil à mon reply sur la demande de Ma Dalton. T'auras la loi
de Poisson.

"Jinroh" écrivait news:010f01c47a49
$58b51440$:

Voilà une question intéressante... (j'interviens seulement
pour recevoir les réponses aussi)

Je sais pas si quelqu'un répondra mais je sens qu'il va
falloir la programmer la loi de Poisson... (joli petit
exercice)

-----Message d'origine-----
Bonjour,

quelqu'un saurait-il comment utiliser la fonction
loi.poisson de excel dans

access. Dans l'historique du groupe, un seul message
sans réponse datant de

l'an 2000 figure.

rappel de la fonction loi.poisson: Cette fonction sert à
obtenir le

coéficient de poisson afin comparer une donnée à la
moyenne d'un ensemble de

données

par exemple: il survient au cours des 4 dernières années
10, 15, 12, et 14

évènements quelquonques soit 12,75 en moyenne. Cette
année, 16 évènements

surviennent. Est-ce significatif? avec poisson=0.21 ça
l'est !


De plus, puisque la table des données est une liste
cummulative des cas,

j'ai à produire des tableaux croisés avant de calculer la
valeur poisson.

Certains tableaux croisé seront donc ventillés en
fonction des autres

variable de ma table (age, sexe, ...)

Finalement pour ceux qui conaissent, le logiciel gratuit
EPI-INFO offert par

le CDC d'Atlanta aux USA proposent une série de DLL qu'il
me semble possible

de récupérer en VBA. Qu'en pensez-vous

merci




.






Avatar
Ma Dalton
WOW! je suis loin d'être un spécialiste des lois statistiques mais je pense
comprendre certains éléments. Je poursuis en intercalant mes questions.

Bon, je connais pas ton coefficient de poisson mais la loi oui.


Il est vrai que je n'ai pas expliqué dans les bons termes. Ce que j'ai
appelé le coéficient est en réalité la probabilité que ma données de la 5eme
année soit égale à la moyenne des 4 années précédente (selon mon exemple
initial du nombre de cas annuel d'un évènement quelconque : 10, 15, 12, 14
et 16 cas).

La fonction Loi.Poisson d'excel, quand tu mets en 3eme argument VRAI,
c'est pour avoir Pr(X<=k) je suppose. Si c'est le cas, il t'appartiendra
de modifier la fonction que je te passe.


Effectivement, je souhaite savoir Pr(12.75<)

Je suis parti du fait que tu dois donner en 1er argument l'espérance
(Lambda) et en 2eme, la valeur de k.

Je calcule seulement Pr{X=k}.

Le calcul de factoriel k (k!) est fait de manière recursive.

Je suis pas sur de devoir typer LaValeur comme Long , Integer me parait
suffisant mais ...

Function LoiPoisson(Lambda As Double, LaValeur As Long) As Double
LoiPoisson = Exp(-Lambda) * Lambda ^ LaValeur / FactRecursif
(LaValeur)
End Function

FactRecursif doit être typé as Double vu les valeurs retournées.

Function FactRecursif(UneValeur As Long) As Double
Dim UneValeur2 As Long
If UneValeur = 0 Then
FactRecursif = 1
Else
UneValeur2 = UneValeur - 1
FactRecursif = UneValeur * FactRecursif(UneValeur2)
End If
End Function

Espérant t'avoir mis sur le chemin ...



Je tente le tout d'ici à demain mais je ne trouve pas dans tes explications,
la démarche qu'a utilisé mon collègue dans sa feuille excel.
Pr(12.75<)
=1-LOI.POISSON(12.75-1;16;VRAI)
=0.21

merci

1 2 3