2016-05-09 3 views
0

Ich habe eine Bond-Return-Panel-Daten und möchte mit der Streuung der Renditen kommen. DieseR: Bond-Return-Dispersion (0,005,0,01,0,05,0,1,0,5,0,9,0,95,0,99,0,995)

ist, wie mein Dataset wie

sieht
  ID  date  return 
      A   5/15  0.2 
      A   6/15  0.1 
      ...  ...  ... 
      B   5/15  0.5 
      B   6/15  0.7 
      ...  ...  ... 
      C   5/15  0.3 
      C   6/15  0.7 
      ...  ...  ... 

und das Ergebnis, das ich will, ist dies

       Percentiles 
      .005  .01 .05 .10 .50 .90 .95 .99 .995 
    return -0.3% -0.1% 0% 0.2% 0.4% 0.7% 0.9% 1.3% 1.4% 

Grundsätzlich möchte ich die Rückkehr Dispersion erhalten. Ich werde zuerst das Perzentil jeden Monat berechnen und jede der Perzentilgruppen mitteln und die obige Tabelle erstellen.

Ich habe versucht,

 DT <- DT %>% 
     group_by(date) %>% 
     mutate(percentile = quantile(return,c(.005,.01,.05,.10,.50,.90,.95,.99,.995))) 

kehrt aber tun nicht nach den Perzentile Platz, sondern zeigte, dass es einige Zahlen, die in der Reihenfolge, die ich nicht verstehe.

Ich möchte die Renditen jeden Monat in diese 10 Bins basierend auf dem Prozentsatz setzen, den ich festgelegt habe.

Bitte Hilfe.

Antwort

0

Versuchen Sie folgendes:

dat <-quantile(c(.005,.01,.05,.10,.50,.90,.95,.99,.995)) 

dat 

    0% 25% 50% 75% 100% 
0.005 0.050 0.500 0.950 0.995 

Sie können die Ausgabe über probs Befehl einstellen, wie

dat.1 <-quantile(c(.005,.01,.05,.10,.50,.90,.95,.99,.995),probs=seq(0,1,0.1)) 

dat.1 

    0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% 
0.005 0.009 0.034 0.070 0.180 0.500 0.820 0.930 0.966 0.991 0.995