Aire dans intervalle pour une fonction de densité

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Fabien Malo
Messages : 51
Enregistré le : 08 Sep 2008, 09:42

Aire dans intervalle pour une fonction de densité

Messagepar Fabien Malo » 09 Jan 2009, 09:40

Bonjour,
J'ai calculé une fonction de densité de probabilité par une méthode non paramétrique par noyau. Après avoir fait cette étape, je voudrais pouvoir calculer l'aire sous la courbe pour un intervalle donné.
Par exemple si ma fonction de densité est définie sur [0;5], je voudrais calculer l'aire (ou probabilité) sous la courbe pour l'intervalle [1;2].
Je ne vois pas trop comment le faire sous R, pourriez-vous m'aider.
Merci d'avance.

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Messagepar Logez Maxime » 09 Jan 2009, 09:57

Bonjour,

avec une estimation par la méthode des trapèzes :

Code : Tout sélectionner

x <- rnorm(1000,60,7)+rnorm(1000,50,7)
dx <- density(x)

area <- function(dens,from,to) {
   # dens un data.frame ou une liste avec des éléments x et y
   y <- dens$y[dens$x>=from & dens$x<=to]
   x <- dens$x[dens$x>=from & dens$x<=to]
   area <- sum((y[-1]+y[-length(y)])/2*diff(x))
   area
}

area(dx,90,100)
[1] 0.1286400

diff(pnorm(c(90,100),110,sqrt(98)))
[1] 0.1345352


Maxime

Fabien Malo
Messages : 51
Enregistré le : 08 Sep 2008, 09:42

Messagepar Fabien Malo » 09 Jan 2009, 14:46

Bonjour et merci de ta réponse!
J'ai une autre question, très proche de la première (mais cette fois c'est l'inverse) je voudrais, toujours dans mon cas non paramétrique, savoir si je peux trouver la borne (inférieure ou supérieure) me donnant par exemple une aire de 0.025.
Par exemple je cherche x tel que Aire([x;+oo[)=0.025.
Est-ce possible dans le cas non paramétrique?
Merci

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Messagepar Logez Maxime » 09 Jan 2009, 15:02

re,

peut-être avec ceci :

Code : Tout sélectionner

qarea <- function(dx,p){

  f <- function(dx,from,x,p) {
    area(dx,from,x)-p
    }

  res <- uniroot(f,c(min(dx$x)-10,max(dx$x)+10),tol=1e-5,dx=dx,from=min(dx$x)-10,p=p)[c(1,4)]
  res <- unlist(res)
  names(res) <- c("x","precision")
  res
}

qarea(dx,p=0.025)
           x    precision
8.979701e+01 7.678807e-06

qarea(dx,p=0.975)
           x    precision
1.296401e+02 7.946018e-06

qnorm(c(0.025,0.975),110,sqrt(98))
[1]  90.59735 129.40265


Tu peux remplacer la fonction uniroot par d'autres algos comme nlm ou optim et bien d'autres.

Maxime

Fabien Malo
Messages : 51
Enregistré le : 08 Sep 2008, 09:42

Messagepar Fabien Malo » 09 Jan 2009, 15:34

Merci bien Maxime c'est exactement ce que je cherchais.

Vu que tu as l'air de vraiment bien maitriser cette thématique je vais en profiter pour te reposer une/deux questions :

Pour la deuxième approche : pourrais-tu me donner le nom "francisé" de cette méthodes (uniroot) ou de ces méthodes (c'est de la recherche de zéro??) et un peu de biblio traitant de ces approches (intéressante selon toi).
Pour la première : pourrais-tu aussi m'indiquer d'autres méthodes de calcul d'intégrales couramment utilisées (je ne suis pas un spécialiste de ce champs).

Merci d'avance pour ton aide

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Messagepar Logez Maxime » 09 Jan 2009, 15:59

Je ne peux pas vraiment t'aider, la fonction uniroot cherche la racine (le zéro) mais a part ça je ne peux pas t'en dire plus peut-être que dans l'aide tu trouveras des référénces.

Pour ce qui est des estimateurs par noyeaux j'ai déjà vu des livres la dessus mais je ne me souviens pas des références, peut-être que tu trouveras des choses dans :
The Elements of Statistical Learning. Data Mining, Inference and Prediction de Friedman, Hastie & Tibshirani.


Maxime

Roland Chiavassa
Messages : 24
Enregistré le : 29 Juin 2008, 09:13

Messagepar Roland Chiavassa » 09 Jan 2009, 22:07

Fabien Malo a écrit :
Pour la première : pourrais-tu aussi m'indiquer d'autres méthodes de calcul d'intégrales couramment utilisées (je ne suis pas un spécialiste de ce champs).


On trouve de très nombreuses références et méthodes en tapant "intégration numérique" dans Google.
Un ouvrage (parmi d'autres) que j'ai beaucoup apprécié et utilisé :
Analyse numérique Michèle Schatzman - Dunod - Collection Sciences sup

Roland Chiavassa

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Messagepar Logez Maxime » 14 Jan 2009, 07:53


Fabien Malo
Messages : 51
Enregistré le : 08 Sep 2008, 09:42

Messagepar Fabien Malo » 14 Jan 2009, 13:13

@ Roland : Merci pour cette référence
@ Maxime : Merci aussi pour ces références (que je possède d'ailleurs déjà et qui sont effectivement très bonnes) mais je cherchais plutôt des références sur l'estimation d'intégrale et sur la recherche de zéro dans le cas décrit dans mon exemple.


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité