Determinar la distribución de un vector de datos con R

Para determinar la distribución que sigue un vector de datos en R contamos con el paquete rriskDistributions. Este paquete de R nos permite realizar un test para las distribuciones siguientes:

• Normal
• Logística
• Uniforme
• Gamma
• Lognormal
• Weibull
• Cauchy
• Exponencial
• Chi-cuadrado
• F
• T-Student

Todos aquellos que estén trabajando con los modelos de supervisión de riesgos seguramente conocerán este paquete y si no lo conocen espero que lean estas líneas porque pueden ser de mucha ayuda para ellos, aunque se trate de software libre, no pasa nada, no receléis de R. La sintaxis es tan sencilla que se puede resumir en:

install.packages(“rriskDistributions”)
library(rriskDistributions)
res1<-fit.cont(data2fit=rnorm(374,40,1)) res1 Tras llamar al objeto tenemos la siguiente ventana:

Ya podéis seleccionar la distribución más adecuada. Saludos.

 

10 comentarios en “Determinar la distribución de un vector de datos con R

  1. Buenos días Raul,

    Quería hacerte una consulta sobre el modelo ARIMA. Tengo un histórico mensual de bajas de clientes y quiero hacer una predicción para los próximos 3 meses. Estoy utilizando SAS y proc arima (no disponemos de SAS forecast), no soy experto en estadística, aunque si tengo nociones básicas. La serie temporal de bajas (2 años), no presenta estacionalidad y mi idea es obtener una predicción sencilla utilizando ARIMA, me surgen las siguientes cuestiones.
    En el modelo ARIMA(p,d,q) intervienen una serie de parámetros
    p:autoregresión, número de periodos anteriores en los que vamos a basar la estimación
    d: diferenciación, efecto acumulado
    q: media móvil. Periodos a incluir en el cálculo de la media móvil.
    Las preguntas son:
    ¿Qué papel juega la media móvil?, ¿eliminación de ruido?
    ¿Qué pasos hay que dar para ajustar estos parámetros (p,d,q)?
    Incluyo abajo el código, por si ves algo que deba tener en cuenta.

    Me voy a bajar R, aunque no lo domino, por eso he empezado a hacerlo en SAS. Me he bajado manuales de ARIMA para entender mejor el modelo, pero te escribo para obtener algo de orientación, antes de perderme en estos manuales-ladrillo.

    Cualquier consejillo u orientación, es bienvenida.

    Te paso mi ejemplo, por si dándole un ojo ves algo más que deba tener en cuenta:

    proc arima data=bajas_hist; /* tabla entrada */
    identify var=vol_bajas /* variable a ser predicha */
    nlag=30
    center
    outcov=bajascov
    noprint;
    run;
    estimate p=1 q=3
    /*
    p is the order of the autoregressive part
    d is the order of the differencing
    q is the order of the moving-average process
    */
    nodf
    noconstant
    method=ml
    plot;
    run;
    forecast
    lead=10 /* intervalos de tiempo a predecir */
    id = date /* variable temporal */
    interval = month /* intervalo temporal */
    out=bajas_predict /* table salida */
    printall;
    run;

    Gracias, un saludo,

  2. Hola Juan, yo no soy un buen conocedor de la regresión por series temporales. Ve al blog de Serrano:

    http://www.grserrano.es/wp/

    Tiene un curso impresionante de Econometría con R.

    PEro si te digo una cosa que me pasó a mi por allí. Ojo con predecir las anulaciones diarias, hay un componente “manual” que impide que eso pase. Yo con solicitudes de portabilidad acertaba más que un gran modelo que hicieron dos pedazo de estadísticos.

  3. Estimado, primero muchas gracias, segundo ha funcionado todo bien pero necesito un poco de ayuda con la interpretación de la tabla resultado, si me puedes ayudar muchas gracias

  4. muy bueno el post, y la herramienta esplendida, pero parece que tiene algunos errores cuando tienes mas de 200000 datos, el error que lanza es:

    “Unable to save metafile to the clipboard”

    “Error in structure(.External(.C_dotTcl, …), class = “tclObj”) :
    [tcl] can’t get device image.”

    El problema es por la pantalla emergente al tratar una buena cantidad de datos, por favor su colaboración con este problema.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *