22 votos

Ajuste de la distribución t en R: parámetro de escala

¿Cómo se ajustan los parámetros de una distribución t, es decir, los parámetros correspondientes a la 'media' y la 'desviación estándar' de una distribución normal? ¿Asumo que se les llama 'media' y 'escala/grados de libertad' para una distribución t?

El siguiente código a menudo resulta en errores de 'optimización fallida'.

library(MASS)
fitdistr(x, "t")

¿Tengo que escalar x primero o convertir en probabilidades? ¿Cuál es la mejor manera de hacerlo?

10voto

Zizzencs Puntos 1358

En la ayuda para fitdistr está este ejemplo:

fitdistr(x2, "t", df = 9)

lo que indica que solo necesita un valor para df. Pero eso supone la estandarización.

Para más control, también muestran

mydt <- function(x, m, s, df) dt((x-m)/s, df)/s
fitdistr(x2, mydt, list(m = 0, s = 1), df = 9, lower = c(-Inf, 0))

donde los parámetros serían m = media, s = desviación estándar, df = grados de libertad

2voto

Del Rey Puntos 15

Puede usar la biblioteca fitdistrplus después de extender la ubicación y los parámetros de escala para el estudiante t en la base R de acuerdo con este artículo en wikipedia. A continuación se muestra el código de

library(fitdistrplus)
x<-rt(100,23)
dt_ls <- function(x, df=1, mu=0, sigma=1) 1/sigma * dt((x - mu)/sigma, df)
pt_ls <- function(q, df=1, mu=0, sigma=1)  pt((q - mu)/sigma, df)
qt_ls <- function(p, df=1, mu=0, sigma=1)  qt(p, df)*sigma + mu
rt_ls <- function(n, df=1, mu=0, sigma=1)  rt(n,df)*sigma + mu
fit.t<-fitdist(x, 't_ls', start =list(df=1,mu=mean(x),sigma=sd(x))) 
summary(fit.t)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X