Hola a todos Alguien sabe cómo puedo determinar maximos globalespara la derivada 2da de un "sm.spline" y un intervalo de confianza para ese maximo? Muchas gracias -- Lic. Nahuel E. Farias Laboratorio de Invertebrados Departamento de Biología Facultad de Ciencias Exactas y Naturales, Universidad Nacional de Mar Del Plata, CC 1245, CP 7600 Mar del Plata, Argentina Tel. + 54 - 0223 - 4752426 (Int. 466)
Buenas tardes Nahuel,
Una manera de calcularlo es via bootstrap. Solo necesitas una función que
estime el máximo global de la 2a derivada y luego, utilizando la libreria
boot, reproducir los resultados usando muestras aleatorias de tus datos
originales.
Este es un ejemplo:
# Librerias
require(pspline)
require(boot)
# Datos
data(cars)
attach(cars)
# Función para calcular el máximo de la 2a derivada
# Los argumentos son d (los datos)
#                               index (para el boostrap SOLAMENTE)
#                               k (el orden de la derivada) -- por defecto k
= 2
foo <- function(d, index, k = 2){
          ds <- d[index,]
          fit <- sm.spline(ds$speed, ds$dist)  # debes cambiar esta linea
con tus datos
          deriva <- predict(fit, deriv = k)
          max(deriva$y)
          }
# Bootstrap
res <- boot(cars, foo, R = 1000)  # esto toma un poco de tiempo
plot(res)
quantile(res$t, probs = c(0.025, 0.975))
#  2.5%     97.5%
#  64.71799 103.82926
Para mayor información puedes leer la ayuda en ?boot una vez cargas la
libreria boot.
Espero sea de utilidad,
Jorge Ivan Velez
2009/7/10 Nahuel farias <>
> Hola a todos
>
> Alguien sabe cómo puedo determinar maximos globalespara la derivada
> 2da de un "sm.spline" y un intervalo de confianza para ese
maximo?
>
> Muchas gracias
>
> --
> Lic. Nahuel E. Farias
> Laboratorio de Invertebrados
> Departamento de Biología
> Facultad de Ciencias Exactas y Naturales,
> Universidad Nacional de Mar Del Plata, CC 1245, CP 7600 Mar del Plata,
> Argentina
> Tel. + 54 - 0223 - 4752426 (Int. 466)
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
	[[alternative HTML version deleted]]
PabloEmilio.Verde en uni-duesseldorf.de
2009-Jul-17  21:46 UTC
[R-es] maximo global e intervalo de confianza
Hola Nahuel,
Como esta mi querida Mar del Plata?
Bueno, la pregunta que hiciste es muy complicada y Jorge te ha
dado una buena respuesta.
Sin embargo, el uso de metodos bootstrap con problemas de maximos
u otros estadisticos que estan en el borde del espacio parametrico
es problematica. Uno de los contra-ejemplos clasicos del uso del
bootstrap es justamente construir intervalos de confianza del maximo.
No te mando la respuesta a tu pregunta, pero te mando un par de
ejemplos simples para ilustrarte el problema que podes tener:
# comienzo ...
set.seed(12345)
x1 <- runif(100)*5 # uniform con maximo = 5
x2 <- rnorm(100)   # normal con maximo = Inf
theta.star <- function(dat, Ind)
{
 max(dat[Ind])
}
max(x1)
boot1 <- boot(x1, theta.star, R = 1999)
plot(boot1, jack = T)
boot.ci(boot1)
max(x2)
boot2 <- boot(x2, theta.star, R = 1999)
plot(boot2, jack = T)
boot.ci(boot2)
# fin ...
Saludos,
Pablo
> Buenas tardes Nahuel,
> Una manera de calcularlo es via bootstrap. Solo necesitas una función que
> estime el máximo global de la 2a derivada y luego, utilizando la libreria
> boot, reproducir los resultados usando muestras aleatorias de tus datos
> originales.
>
> Este es un ejemplo:
>
> # Librerias
> require(pspline)
> require(boot)
>
> # Datos
> data(cars)
> attach(cars)
>
> # Función para calcular el máximo de la 2a derivada
> # Los argumentos son d (los datos)
> #                               index (para el boostrap SOLAMENTE)
> #                               k (el orden de la derivada) -- por defecto
k
> = 2
>
> foo <- function(d, index, k = 2){
>           ds <- d[index,]
>           fit <- sm.spline(ds$speed, ds$dist)  # debes cambiar esta
linea
> con tus datos
>           deriva <- predict(fit, deriv = k)
>           max(deriva$y)
>           }
>
> # Bootstrap
> res <- boot(cars, foo, R = 1000)  # esto toma un poco de tiempo
> plot(res)
> quantile(res$t, probs = c(0.025, 0.975))
> #  2.5%     97.5%
> #  64.71799 103.82926
>
> Para mayor información puedes leer la ayuda en ?boot una vez cargas la
> libreria boot.
>
> Espero sea de utilidad,
>
> Jorge Ivan Velez
>
>
> 2009/7/10 Nahuel farias <>
>
> > Hola a todos
> >
> > Alguien sabe cómo puedo determinar maximos globalespara la derivada
> > 2da de un "sm.spline" y un intervalo de confianza para ese
maximo?
> >
> > Muchas gracias
> >
> > --
> > Lic. Nahuel E. Farias
> > Laboratorio de Invertebrados
> > Departamento de Biología
> > Facultad de Ciencias Exactas y Naturales,
> > Universidad Nacional de Mar Del Plata, CC 1245, CP 7600 Mar del Plata,
> > Argentina
> > Tel. + 54 - 0223 - 4752426 (Int. 466)
> >
> > _______________________________________________
> > R-help-es mailing list
> > R-help-es en r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> >
>
> 	[[alternative HTML version deleted]]
>
>