perturba 13 01 2017
Di cosa parla
- Scopo della Funzione: La funzione `perturba` è stata sviluppata per produrre una matrice `R` che contiene `N` diverse versioni perturbate di un vettore di input `V`.
- Parametri di Input:
- `V`: Il vettore originale che deve essere sottoposto a perturbazione (ad esempio, una serie storica di dati economici o finanziari).
- `T`: Indica il numero di punti dati da perturbare in ciascuna delle `N` iterazioni. La funzione include un controllo per assicurarsi che `T` non sia inferiore alla dimensione del vettore `V`.
- `N`: Rappresenta il numero totale di scenari perturbati o di colonne che verranno generate e contenute nella matrice di output `R`.
- `aum`: Un parametro scalare che definisce l'ampiezza massima della perturbazione casuale applicata a ciascun punto.
- Logica di Funzionamento Dettagliata:
- Inizialmente, viene allocata una matrice `R` con dimensioni pari a `length(V)` righe per `N` colonne, destinata a memorizzare tutti i vettori perturbati.
- All'interno di un ciclo che si ripete `N` volte (una volta per ogni colonna di `R` da generare):
- Vengono selezionate casualmente `T` posizioni (`pos`) all'interno della prima metà del vettore `V` (cioè, nell'intervallo da 1 a `dim/2`).
- Vengono generate `T` quantità di perturbazione casuale (`qta`), ciascuna distribuita uniformemente nell'intervallo `[-aum, aum]`.
- Il vettore `V` originale viene copiato in una variabile temporanea `K` per essere modificato nell'iterazione corrente.
- Gli elementi del vettore `K` nelle posizioni indicate da `pos` vengono aumentati o diminuiti aggiungendo il rispettivo valore `qta`.
- Contemporaneamente, gli elementi di `K` nelle posizioni simmetriche rispetto al centro del vettore (calcolate come `dim/2 + pos`) vengono impostati al valore negativo della rispettiva quantità `qta`. Questo approccio mira a creare una perturbazione che potrebbe essere bilanciata o creare un effetto opposto tra le due metà del vettore.
- Il vettore `K`, ora perturbato, viene salvato come una nuova colonna nella matrice `R`.
- Applicazioni nel Contesto Economico e Finanziario: La funzione è estremamente utile per varie applicazioni pratiche, tra cui:
- Simulazioni Monte Carlo: Per la creazione di un vasto numero di scenari possibili, fondamentale nella modellizzazione del rischio, nella valutazione di prodotti derivati (come le opzioni) e nelle previsioni finanziarie.
- Analisi di Sensibilità: Per determinare come le variazioni negli input specifici possano influenzare gli output di un modello finanziario.
- Stress Testing: Per generare scenari avversi o di forte stress per valutare la resilienza e la robustezza di portafogli di investimento, istituzioni o sistemi finanziari.
- Generazione di Dati Sintetici: Per introdurre variabilità controllata o rumore in serie storiche di dati esistenti, utile per l'addestramento di modelli di machine learning o per analisi ulteriori.