2017-05-03 3 views
0

Ich habe ein Projekt für eine Klasse, in der ich bin, gestartet, und beim Versuch, die gewünschte Statistik anzuzeigen, stößt ich auf Fehler. Ich programmiere das mit der Programmiersprache R für Statistik in R Studio. Hier ist mein Code:bootstrapping in R zeigt keine relevante Statistik an

boot = do(20)* 
    { 
    horizon = 20 
    totalwealth = 10000 
    pweights = c(0.5, 0, 0, 0, 0.5) 
    holdings = pweights * totalwealth 
    wealthtracker = rep(0, horizon) # Set up a placeholder to track total wealth 
    for(today in 1:horizon) { 
    return.today = resample(myreturns, 1, orig.ids=FALSE) 
    holdings = holdings*(1+return.today) 
    totalwealth = sum(holdings) 
    wealthtracker[today] = totalwealth 
    } 
    VaR = unname(quantile(wealthtracker, p=0.05)) 
    VaR 
    } 

    hist(boot$VaR) 

Die Störung, die mir begegnet ist tritt auf, wenn ich versuche, und Daten nehmen oder ein Histogramm aus meiner Probe Statistik bauen, in diesem Fall VaR.

Immer wenn ich 'boot $' eintippe, sollte als nächstes 'VaR' und die anderen Statistiken in meinem bootstrapped Modell erscheinen, aber das einzige was auftaucht ist 'result'. Wenn ich Befehle gebe, um irgendwas mit VaR im Kontext des Bootstrap (Bootstrap $ VaR) zurückzugeben, gebe ich diesen Fehler zurück - 'x' muss numerisch sein. Das Problem hier ist, dass ich bereits sichergestellt habe, dass "x" numerisch ist, indem ich die Funktion unname anwende. Jede Hilfe hier wird sehr geschätzt.

Danke.

+0

Welche Pakete verwenden Sie? Wie werden Variablen wie "myreturns" definiert? Es ist am einfachsten zu helfen, wenn Sie ein Beispiel für reproduzierbare Beispiele (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) mit Beispiel-Eingabedaten bereitstellen. – MrFlick

Antwort

0

Wenn Sie die mosaic package ‚s do() Funktion verwenden, sind die Ergebnisse immer in einer Spalte result genannt. Es spielt keine Rolle, wie Sie die Variable innerhalb dieser Klammern nennen.

Anstatt zu versuchen, boot$VaR zugreifen zu können, arbeiten nur mit boot$result, wie

hist(boot$result) 

Es enthält die Daten, die Sie wollen.