Copula per principianti

  • Ecco la 66° Edizione del settimanale "Le opportunità di Borsa" dedicato ai consulenti finanziari ed esperti di borsa.

    I principali indici azionari hanno vissuto una settimana turbolenta, caratterizzata dalla riunione della Fed, dai dati macro importanti e dagli utili societari di alcune big tech Usa. Mercoledì scorso la Fed ha confermato i tassi di interesse e ha sostanzialmente escluso un aumento. Tuttavia, Powell e colleghi potrebbero lasciare il costo del denaro su livelli restrittivi in mancanza di progressi sul fronte dei prezzi. Inoltre, i dati di oggi sul mercato del lavoro Usa hanno mostrato dei segnali di raffreddamento. Per continuare a leggere visita il link

Quanto materiale interessante!!

:bow::bow::bow:

Ma..ribadisco.

Vorrei fare una cosa semplice e tentare di cucirla ad una realtà "reale".

Come abbiamo visto, qualsiasi distribuzione venga usata..(rimando all'esempio "banche tutte -30%..stimare la probabilità congiunta) la DP by Copula Approach utilizzata in maniera canonica restituisce stime irreali.

Proabilità "quasi nulla" quando...cribbio, è tutt'altro che nulla...ricorda quella minKiata Made in China che attribuiva probabilità"quasi nulla" all'insolvenza generalizzata dei mutuatari (e collaterali)

Essendo io barbiere..posso permettermi di esprimere tutta la creatività che impiego nel mio lavoro trattando i numeri.

Ok..mi pare cmq. di capire che concordate sulla copula empirica in 2 righe di codice..ed è già un passettino avanti. Ora provo a calcolare queste benedette probabilità "brutte" e farle stare in "tre" righe di codice...:)

Provo...mica so sicuro..:)

Musica, grazie dei contributi che leggerò avidamente!:bow::bow:

 
Osserviamo con lo spirito di un imberbe fanciullo questa matrice condiziona all'evento di coda "light".

Osserviamo.:)
 

Allegati

  • LSTD.png
    LSTD.png
    43,1 KB · Visite: 313
Ciao a tutti, ho seguito questo e altri topic sulle copule, ho anche scritto la mia tesi di Laurea Triennale su questo argomento, però avrei un paio di problemini che non riesco a risolvere...
Prima di tutto non capisco come mai, nonostante abbia stimato al meglio la copula che fitta meglio i miei dati, mi ritrovo ad avere un numero di eventi negativi simulati ben inferiore a quelli effettivamente avvenuti. Ho controllato quante volte entrambi i titoli hanno perso più del 4%, e mi ritrovo 13 valori simulati contro 37 reali (vedere Figura 1 allegata). È possibile che abbia dato poca importanza alla dipendenza di coda e che quindi avrei dovuto "pesare" diversamente le code dal resto della simulazione?
Secondo problema: non riesco a visualizzare correttamente la distribuzione marginale (Student-t) dei due titoli in analisi...(?)

Per trovare quale copula utilizzare e i relativi parametri ho usato la funzione BiCopSelect del package VineCopula, mentre per stimare le distribuzioni delle marginali ho usato fitdistr guardando poi il valore più elevato del loglik (massima verosimiglianza) per decidere quali marginali utilizzare per i titoli.

In conclusione mi sembra di aver fatto un modello corretto ma manca ancora qualcosa per definirlo completo.

Vi allego le parti fondamentali del codice R utilizzato.

Codice:
library(MASS)
library(copula)
library(VineCopula)
data = read.table("dati.txt", header = T) # 3 outliers rimossi
enel = data[,1]; FCA = data[,2]; x=enel; y=FCA
normal.x = fitdistr(x, "normal"); t.x = fitdistr(x, "t"); gamma.x = fitdistr(x+1, "gamma");
normal.y = fitdistr(y, "normal"); t.y = fitdistr(y, "t"); gamma.y = fitdistr(y+1, "gamma");
normal.x$loglik; t.x$loglik; gamma.x$loglik
normal.y$loglik; t.y$loglik; gamma.y$loglik
dati = matrix(c(x,y), ncol = 2); X = dati
u=pobs(dati)[,1] #Pseudo-observation
v=pobs(dati)[,2]
selectedCopula <- BiCopSelect(u,v,familyset=c(0,1,2,3,4,5,6,8,9,10)) #tolgo la BB1 (7)
rho = selectedCopula$par
df = round(selectedCopula$par2)
t.cop = tCopula(param = rho, dim = 2, df = df)
mvdc.t.t = mvdc(t.cop, margins = c("t", "t"), 
                paramMargins = list(list(df = t.x$estimate[3]),
                                    list(df = t.y$estimate[3])))
sim <- rMvdc(n=3711, mvdc=mvdc.t.t)

# quante volte entrambi i titoli hanno perso più del 4% ?
count.sim = 0
count.real = 0
for(i in 1:length(sim[,1])) {
  if(sim[i,1] < (-4)) 
    if(sim[i,2] < (-4)) 
      count.sim = count.sim+1
    if(x[i] < (-4))
      if(y[i] < (-4))
        count.real = count.real+1
}
count.sim   # 13 volte
count.real  # 37 volte


Grazie in anticipo! :)
 

Allegati

  • Figura1.png
    Figura1.png
    9,7 KB · Visite: 141
Indietro