R : i primi 30 minuti (dall’installazione al primo Trading-System)

Copio e incollo il tuo e inserisco i miei 20 titoli...... Come faccio a mettere i titoli nel linguaggio R (# +---------------------------------
# | Sommario
# |
# | 1. Parametri globali
# | 2. Installazione delle librerie
# | 3. Caricamento delle librerie
# | 4. Scaricamento dei dati
# | 5. Preparazione dei dati
# | 6. Rendimenti aritmetici
# | 7. Stima dell'Alpha CAPM
# | 8. Stima del Beta CAPM
# | 9. Grafico modello di regressione lineare
# | 10. Indicatori di bontà di adattamento
 
CREN ho fatto tutto quello che mi hai indicato, unica cosa che nel grafico del CAPM la legenda mi si sovrappone al grafico (perchè è lunga 20 titoli).
dopo questo cosa devo fare?
dopo l'ultimo comando mi escono tutti i titoli confrontati con il ftse mib ? il numero accanto cosa mi dice ?
 
CREN ho fatto tutto quello che mi hai indicato, unica cosa che nel grafico del CAPM la legenda mi si sovrappone al grafico (perchè è lunga 20 titoli).
dopo questo cosa devo fare?
dopo l'ultimo comando mi escono tutti i titoli confrontati con il ftse mib ? il numero accanto cosa mi dice ?
Togli la legenda con

chart.Regression(Ra = Data[,-1], Rb = Data[,1], Rf = Rf, main = '', fit = 'linear', legend.loc = NULL)

Il numero accanto è il coefficiente di bontà di adattamento, quel numerino che varia tra 0 e 1 e ti dice quanto in percentuale della varianza del singolo titolo è spiegato dalla varianza dell'indice FTSE MIB.
 
Grazie Cren, ma devo fare qualcos'altro o è finito il mio lavoro?
Per quanto riguarda il primo compito che ti ha assegnato, ti manca ancora il portafoglio a minima varianza.

Quando ho tempo ti butto giù due righe per farti vedere come si fa in modo esplicito, anche se il primo codice che ti avevo scritto già lo faceva con una funzione apposita (quindi volendo potresti usare quello, solo che mi sembra tu non abbia la minima idea di cosa ci sia dietro).

Per quanto riguarda l'esercizio con le opzioni, dovresti cominciare a raccogliere un po' di prezzi di mercato di opzioni su un sottostante a tua scelta dal sito dell'Eurex che ti ho indicato.
 
Cren rileggendo la traccia, l'analisi dei residui non l'ho scritta ancora, vero?
«Analisi dei residui» per cosa sta? Autocorrelazione e funzione di densità?

In tal caso modifica il codice come segue nell'ultima parte:

# +---------------------------------
# | 10. Indicatori di bontà di adattamento e analisi dei residui
# +---------------------------------

par(mfrow = c(ncol(Data), 2))
par(mai = c(.5, .75, .5, .75))

for(j in 2:ncol(Data))
{
linearModel <- lm(Data[,j] ~ Data[,1])
lmSummary <- summary(linearModel)
print(paste(colnames(Data[,j]), 'to', colnames(Data[,1]), 'Adjusted R Squared =', round(lmSummary$adj.r.squared, 3)))
main = paste(colnames(Data[,j]), 'to', colnames(Data[,1]), 'CAPM residuals')
pacf(linearModel$residuals, main = main)
grid()
plot(density(as.numeric(linearModel$residuals)), main = main)
lines(density(rnorm(n = 1000000, mean = mean(as.numeric(linearModel$residuals)), sd = sd(as.numeric(linearModel$residuals)))), col = 2)
legend('topright', legend = c('Kernel', 'Normal'), col = 1:2, lwd = 2, bty = 'n')
grid()​
}
Si vede bene che i residui del CAPM per tutti e cinque i titoli nel periodo considerato hanno una struttura di autocorrelazione parziale abbastanza debole (particolare UCG, però) ma una distribuzione di densità che non ricorda troppo la Normale.

Per il portafoglio a varianza minima studiati bene la teoria sennò ti pelo prima che lo faccia la tua prof.ssa.

Nota bene: se sbatti 20 titoli anziché 5 nel codice che ti ho messo, probabilmente ti uscirà un grafico parecchio confuso perché farci stare 20 righe nell'immagine rispettando i margini produrrà immagini parecchio compresse; il comando
par(mfrow = c(ncol(Data), 2))​
regola il numero di righe e di colonne in cui viene diviso lo spazio grafico (in questo caso 2 colonne e un numero di righe pari al numero di titoli che hai).

Gioca con i parametri grafici fino a trovare l'impostazione che ti serve per il tuo lavoro.
 

Allegati

  • Rplot.png
    Rplot.png
    15 KB · Visite: 252
Ultima modifica:
Per quanto riguarda il Capm e l'analisi dei residui, la prof. ha fatto in questo modo;
x = c(7, 9, 6, 14, 8, 12, 10, 4, 2, 11, 1, 8) #
y = c(26, 20, 28, 16, 23, 18, 24, 26, 38, 22, 32, 25) #
X = cbind(1,x) # Matrice x

n = nrow(X) # Numero osservazioni
p = ncol(X) # Numero coef. da stimare
XtXinv = solve( t(X) %*% X ) # Matrice (X>X)−1
b = XtXinv %*% t(X) %*% y # Stime coef. regressione ˆ
yfit = X %*% b # Valori Stimati ˆy
e = y - yfit # Residui
s2 = sum(e^2)/(n-p) # Stima di 2
s2*XtXinv # Matrice Var(ˆ) = ˆ2(X>X)−1
sqrt(diag(s2*XtXinv)) # Errore std stime dei coefficienti
R2 = 1 - sum(e^2)/sum((y-mean(y))^2) # Coef. di determinazione R2
0.8252894
mod = lm(y ~ x) # Modello di regressione semplice
summary(mod)
Invece per quanto riguarda il modello sopra fatto da te, i numeri nel par cosa significano ?
devo riportarli anche io ?
dove si vede che i residui sopra hanno una struttura di autocorrelazione debole
 
Per quanto riguarda il Capm e l'analisi dei residui, la prof. ha fatto in questo modo;
x = c(7, 9, 6, 14, 8, 12, 10, 4, 2, 11, 1, 8) #
y = c(26, 20, 28, 16, 23, 18, 24, 26, 38, 22, 32, 25) #
X = cbind(1,x) # Matrice x

n = nrow(X) # Numero osservazioni
p = ncol(X) # Numero coef. da stimare
XtXinv = solve( t(X) %*% X ) # Matrice (X>X)−1
b = XtXinv %*% t(X) %*% y # Stime coef. regressione ˆ
yfit = X %*% b # Valori Stimati ˆy
e = y - yfit # Residui
s2 = sum(e^2)/(n-p) # Stima di 2
s2*XtXinv # Matrice Var(ˆ) = ˆ2(X>X)−1
sqrt(diag(s2*XtXinv)) # Errore std stime dei coefficienti
R2 = 1 - sum(e^2)/sum((y-mean(y))^2) # Coef. di determinazione R2
0.8252894
mod = lm(y ~ x) # Modello di regressione semplice
summary(mod)
Invece per quanto riguarda il modello sopra fatto da te, i numeri nel par cosa significano ? devo riportarli anche io ?
La tua prof.ssa ti ha giustamente messo per esteso tutto il procedimento di regressione in forma matriciale così come lo troveresti su qualsiasi testo di econometria.

Alla fine ti ha messo anche la stessa funzione che ho usato io, cioè lm(), probabilmente per farvi vedere che i risultati erano identici.

Io ho fatto la stessa cosa dentro al ciclo for() per ciascuna coppia titolo ~ indice e ne ho estratto le statistiche di interesse.

Come ti ho già detto, par() sono solo impostazioni grafiche che puoi anche non riportare ma che servono per rappresentare i dati come vuoi tu.

In particolare,
par(mfrow = c(a,b))​
divide la schermata di plot in a righe e b colonne, come ho fatto io.
dove si vede che i residui sopra hanno una struttura di autocorrelazione debole
Scusa, ma prima di mettervi a fare questo esercizio qualche straccio di rudimento di base di econometria ve l'avranno pur dato, no?

Nell'immagine che ho allegato prima, cioè questa

262943d1386974066-r-i-primi-30-minuti-dall-installazione-al-primo-trading-system-rplot.png
,​

la colonna di correlogrammi di sinistra rappresenta il coefficiente di autocorrelazione parziale in funzione di diversi periodi di ritardo (è una procedura di base di analisi delle serie storiche che è praticamente standard): se il modello CAPM descrivesse perfettamente la realtà che vuole rappresentare, l'autocorrelazione dei residui (cioè tutto ciò che non è spiegato dal modello) sarebbe molto debole, diciamo statisticamente non significativa entro un certo intervallo di confidenza (solitamente 95%).

Le righine nere verticali sono le autocorrelazioni a diversi ritardi e le righine blu orizzontali sono gli intervalli fiduciari: vedi che le righine nere verticali "tagliano" le righine blu orizzontali mediamente "poco" e quindi non oltrepassano l'intervallo fiduciario?

Una curiosità, quale di queste:

- c'era il corso di econometria ma non l'hai seguito prima di fare il laboratorio;
- c'era il corso di econometria ma l'hai seguito poco e male perché eri distratto dai pantaloni a vita inguinale della tua vicina di posto;
- la prof.ssa vi ha spiegato queste cose ma non segui il laboratorio e ti fai passare gli appunti;
- il comando "?" su R non ti funziona;
- non hai nessuna voglia di leggere il codice e capire riga per riga come funziona né di guardare la tonnellata di esempi delle pagine di aiuto di R.​

La mia impressione è che se ti presenti all'esame orale con i dubbi che hai ora, quella ti fa a pezzi.
 
Ultima modifica:

Users who are viewing this thread

Back
Alto