Hola Pablo,

Quizas esto te ayude:

# ----------------
#  tus funciones
# ----------------
# Weibull parameters: a=location; b=scale; c=shape
# -- aqui cambie "dweibull3" por "d2weibull3" para que no se confundiera
# -- con una funcion que existe en la libreria FAdist
d2weibull3 <- function(x, c, b, a) {(c/b) * ((x -a)/b)^(c - 1) * (exp(-((x
- a)/b)^c))}
ll.w3 <- function(p, data) sum(log(d2weibull3(data, p[1], p[2], p[3])))

# Nelder-Mead method
mle.w3.nm<-optim(c(c=.1, b=.01, a=0.1), ll.w3, data=x,
hessian=TRUE,control=list(fnscale=-1))
mle.w3.nm$par      # parametros muy cerca de los valores "reales"

# ---------------------------------------
#   datos, histograma y ajuste
# ---------------------------------------
# install.packages('FAdist')   # desactivar para instalarlo
require(FAdist)

# datos "reales"  -->  Y ~ W(a, b)
n <- 1000
a <- 20
b <- 10
m <- 30
y <- rweibull(n, a, b)

# transformados --> X = Y + m ~ W3(a, b, m)
# ver ayuda de ?rweibull3 para mas informacion
x <- y + m

# histogramas
par(mfrow = c(1, 2), type = 'o')
hist(y, main = expression(Y*"~"*W(a, b)), las = 1, prob = TRUE)
hist(x, main = expression(Y*"~"*W3(a, b, m)), las = 1, prob = TRUE)

# organizando los parametros
out <- mle.w3.nm$par
names(out) <- c('a','b','m')
out

# histograma
par(mfrow = c(1, 1))
hist(x, prob = TRUE, ylim = c(0, 0.8), main = '', las = 1)
x0 <- seq(min(x), 1.05*max(x), length = 1000)
points(x0, dweibull3(x0, out[1], out[2], out[3]), type = 'l', add = TRUE,
col = 2)

# bondad de ajuste
xsample <- rweibull3(n, out[1], out[2], out[3])
ks.test(xsample, x, alternative = 'two.sided')  # son equivalentes

Recomendaciones:  leer un manual introductorio a R (ver por ejemplo
http://cran.r-project.org/other-docs.html) y consultar las ayudas de
?rweibull y ?rweibull3.

Bienvenido a R y a R-help-es!
Jorge.-


2012/5/2 Niño-Alfa <>

> Hola:
>
> Lamento molestar por este medio. Tal vez no sea la manera correcta de
> hacer esta consulta. Me disculpo por ello.
>
> Navegando por la red encontré esta dirección.
>
> Soy un usuario que apenas se está familiarizando con el programa R, de
> modo que me surgen dudas. Pero por ahora sólo quisiera hacer la siguiente
> consulta y confío que me pueden ayudar. Mi problema es el siguiente:
>
> Estoy analizando la frecuencia de especies forestales y variables de
> clima. Donde estoy usando la distribución de Weibull con tres parámetros.
>
> Puedo generar los parámetros, el histograma y la curva de weibull. Hasta
> aquí todo bien.
> Mi problema es: ¿Cómo voy a saber si los parámetros son significativos y
> si realmente mis datos siguen una distribución de Weibull?
>
> Revisando la literatura (encuentro que existe el Test de
> Kolmogorov-Smirnov y Anderson-Darling) pero cuáles son los códigos en R
> para tres parámetros?
> Llevo mucho tiempo buscando y no encuentro.
>
> # Weibull parameters: a=location; b=scale; c=shape
>
> dweibull3 <- function(x, c, b, a) {(c/b) * ((x -a)/b)^(c - 1) * (exp(-((x - a)/b)^c))}
> ll.w3 <- function(p, data) sum(log(dweibull3(data, p[1], p[2], p[3])))
>
> # Nelder-Mead method
>
> mle.w3.nm<-optim(c(c=.1, b=.01, a=0.1), ll.w3, data=dat, hessian=TRUE,control=list(fnscale=-1))
> mle.w3.nm$par                      # list the parameters
>
> Estos son mis parámetros que me da R
>   c                     b                      a
>    62.15368            11832.90760            -9038.41699
>
> Son 1804 observaciones. Por si es necesario saberlo,
>
> De antemano les agradezco muchísimo.
>
>
> Saludos
> Pablo
>        [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>

	[[alternative HTML version deleted]]

