2 votos

Cómo calcular Empírica Acumulada de Probabilidad en R

Tengo un conjunto de datos de S&P500 vuelve. ¿Cómo puedo calcular el valor de $F(X ⩽ x)$. Mi código es el siguiente:

library(quantmod) # Loading quantmod library
getSymbols("^GSPC", from = as.character(Sys.Date()-365*16)) # SPX price date for 16 yrs

SPX <- dailyReturn(GSPC)
SPX_ecdf <- ecdf(as.numeric(SPX)) # dropping xts class

¿Cómo puedo calcular la probabilidad de que mis datos sean, vamos a decir $\le -0.025$ ?

2voto

user16167 Puntos 11

Usted debe contar el número de observaciones que son menores que el umbral. a continuación, se divide por el número total de observaciones. Por ejemplo, usted tiene una serie de 250 declaraciones, 50 de ellos es menor que 1%,todos los otros datos es mayor que 1%, que el empírica de la función de distribución acumulativa en el 1% es de 50/250.

2voto

penti Puntos 93

Esto es lo que debes hacer:

sum(SPX <= -0.025) / length(SPX)
## [1] 0.02536052

Esto funciona porque la VERDAD es internamente 1 y FALSE es 0.

Aún más corto (como se menciona en los comentarios de @Forgottenscience):

mean(SPX <= -.025) 
## [1] 0.02536052

También se podría utilizar el Empírica de la Función de Distribución Acumulativa (como menciona @berkorbay) pero creo que esto es una exageración, en este caso:

SPX_ecdf(-0.025)
## [1] 0.02536052

2voto

user984260 Puntos 146

cuantil() hace lo contrario de lo que usted desea. Usted podría bootstrap probabilidades en un bucle:

   pseq <- seq(0.001,1, by=0.001)
   quantile(yourdatahere, pseq)
  Quantiles[which(abs(Quantiles - (-0.025)) == min(abs(Quantiles - (-0.025))))]

Esto es una mierda ineficiente detallado código, pero funciona. ecdf() también funciona, pero no puedo averiguar cómo la fuerza de ese tipo de datos a cualquier otra cosa.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X