La siguiente funcion toma un objeto calculado con la función density() y
devuelve el cuantil correspondiente a un
p-valor dado. Quizas esto les sirva. No se si alguno en el grupo de
discusión conoce alguna alternativa mas
precisa que esta funcón.

*#*

*# return the variate(s) for specified cumulative*

*# probability(ies) for a density(...) object*

*#*

*# Rajiv Prasad (rajiv.prasad at pnl.gov) 05/14/2001*

*#*

RPDensityLookup <- *function*(density.obj, p=0.5, interp="l")

{

  *if*(*missing*(density.obj))

  {

    *cat*("\nUsage: RPDensityLookup(density.obj, p=0.5, interp=\"l\")")

    *cat*("\n  density.obj: an object returned from the density(...)
function")

    *cat*("\n            p: cumulative probability value(s) for which
variate")

    *cat*("\n               values are needed")

    *cat*("\n       interp: \"l\" for linear interpolation between data
points")

    *cat*("\n               \"s\" for spline fit using data points\n\n")

  }



  n <- *length*(density.obj$x)

  dx <- density.obj$x[2:n] - density.obj$x[1:(n-1)]

  x <- *rep*(*NA*, *length*(p))



  *# midpoints*

  cumx <- (density.obj$x[2:n] + density.obj$x[1:(n-1)]) / 2

  *# numerical integration*

  cumy <- *cumsum*((density.obj$y[2:n] + density.obj$y[1:(n-1)]) / 2 * dx)



  *if*(interp == "l")

  {

    Fx <- *approxfun*(cumy, cumx)  *# linear interpolation function*

    x <- Fx(p)                   *# the variates corresponding to p's*

  }

  *else* *if*(interp == "s")

  {

    Fx <- *splinefun*(cumy, cumx)  *# spline fit*

    x <- Fx(p)                   *# the variates corresponding to p's*

  }

  *else*

  {

    *cat*(*paste*("\nError: unrecognized interp method (\"", interp,
"\").\n\n",

*sep*=""))

  }



  x

}



*#EJEMPLO*

x=*rnorm*(100,0,1)

midensidad=*density*(x)

RPDensityLookup(midensidad,0.25,"s")












Prof. Julio Di Rienzo
Estadística y Biometría
FCA- U.N. Córdoba
IBS-RARG President
http://sites.google.com/site/juliodirienzo
"Biometry, the active pursuit of biological
knowledge by quantitative methods."
(R.A. Fisher, 1948)



2011/10/22 J. Miguel Marin <jmmarin@est-econ.uc3m.es>

> Hola,
> otra opción es usar "Ryacas" que permite calcular integrales analíticas vía
> yacas dentro de R:
> http://cran.es.r-project.org/**web/packages/Ryacas/index.html<http://cran.es.r-project.org/web/packages/Ryacas/index.html>
>
> Un saludo
>
>
>  Hola,
>>
>> Tienes la función integrate() dentro del paquete stats.
>>
>> Y si tienes la expresión analítica y buscas su integral igualmente
>> analítica, hay recursos en la red para su cálculo. Especialmente en todo
>> el
>> mundo de Wolfram Research (Mathematica, Wolfram Alpha):
>> http://www.wolframalpha.com/
>>
>>
>> Saludos,
>> Carlos Ortega
>> www.qualityexcellence.es
>>
>> El 22 de octubre de 2011 14:40, Silvia Pierotti <
>> silviapierotti504@gmail.com
>>
>>> escribió:
>>>
>>
>>  Hola,
>>>
>>> Estime una función de densidad de probabilidad (usando la función
>>> densiti)
>>> y
>>> quiero integrarla para encontrar percentiles 5 y 95....
>>>
>>> Alguien sabe como hacer esta integral en R????....
>>>
>>> Gracias!!!..
>>>
>>>       [[alternative HTML version deleted]]
>>>
>>>
>>> ______________________________**_________________
>>> R-help-es mailing list
>>> R-help-es@r-project.org
>>> https://stat.ethz.ch/mailman/**listinfo/r-help-es<https://stat.ethz.ch/mailman/listinfo/r-help-es>
>>>
>>>
>>>
>>        [[alternative HTML version deleted]]
>>
>>
>>
>
>
>
> jm~
>
> ______________________________**_
>
>       J. Miguel Marin
>
> http://www.est.uc3m.es/jmmarin
>
>   Dep. of Statistics
> University Carlos III of Madrid
>       Spain (E.U.)
>
>
> ______________________________**_________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/**listinfo/r-help-es<https://stat.ethz.ch/mailman/listinfo/r-help-es>
>

	[[alternative HTML version deleted]]

