2011-12-08 19 views
15

ho appena iniziato a giocare con la classe ts di analizzare alcuni dati di serie storiche che ho.Analizzare giornaliero/settimanale dei dati utilizzando ts in R

Ho la sensazione che la classe ts non sia adatta per l'analisi di dati giornalieri o settimanali. Quasi tutti gli esempi che vedo sul web o in Cowpertwait e Metcalfe "Introductory Time Series with R" utilizzano dati mensili o annuali.

vorrei usare ts per analizzare i dati settimanali, è consigliabile?

risposta

9

La classe ts è adatto per qualsiasi tipo di dati che ha intervalli rigorosamente metronomiche tra osservazioni. Se quell'intervallo è di anni, mesi, giorni, minuti non fa alcuna differenza. Questo lo rende molto adatto a molti dati scientifici, ad es. osservazioni meteorologiche.

Tuttavia, una grande classe di dati relativi al tempo presenta lacune. Prendiamo ad esempio i prezzi di chiusura delle scorte che non esistono per i giorni del fine settimana. Per questo tipo di dati è preferibile utilizzare i pacchetti xts (serie temporali estendibili) o zoo (le osservazioni ordinate di Z - dove Z è l'iniziale di uno degli autori del pacchetto).

Collegamenti a CRAN:

+0

Sono d'accordo che ts non è una grande scelta per situazioni in cui l'intervallo tra le osservazioni varia Tuttavia, l'esempio dei prezzi di chiusura giornalieri è (a mio avviso) relativamente scarso. le festività, quindi non c'è generalmente mai bisogno di modellare questi giorni.E 'del tutto normale nel settore finanziario considerare i dati di borsa giornalieri come se non ci fossero giorni (mancanti) intervenuti.Per tali situazioni, ts è generalmente una buona scelta. – pmcs

3

L'unità di tempo non entra in gioco; solo il numero di punti dati per unità (la frequenza). Per quanto riguarda ts e le sue funzioni si preoccupano, un giorno è un anno è un decennio è un qualsiasi cosa. In nessun momento dirai che il tempo necessario è una settimana o un giorno. Non importa!

1

Suppongo che il problema con i dati giornalieri/settimanali sia che entrambi abbiano unità di salto. Ogni quattro anni ha un ulteriore 366 giorni e ogni quattro anni ha 53 settimane. O ha avuto dal 1900. Quindi la "frequenza" è o non costante o una frazione. Altrimenti ts dovrebbe funzionare bene.

Il modo più semplice per le settimane è utilizzare la data dell'inizio della settimana. Sui sistemi unixlike puoi anche usare le settimane ISO e c'è anche un pacchetto che li implementa. Naturalmente se i dati sono già in settimane, è necessario solo questi per etichettare i grafici ecc

10

Il problema principale è che la maggior parte delle persone che vogliono analizzare tutti i giorni o dati settimanali vogliono fare qualcosa di simile uso una frequenza di 365 giorni per anno o 52 settimane all'anno ma il numero di giorni o settimane in un anno non è 365 o 52 o addirittura costante. Se trascorri un giorno negli anni bisestili nel caso di dati giornalieri, diciamo, o usi 7 giorni per ogni settimana dell'anno tranne uno che ha 8 o 9 giorni nel caso di dati settimanali, diciamo, allora puoi fonderlo. Una varietà infinita di schemi è possibile.

Leggere tramite this thread per un esempio.

5

Lo zoo funziona bene con i dati giornalieri. Ad esempio, se si dispone di una serie giornaliera di flussi di flusso in un vettore Q e con timbri data corrispondenti D (creati utilizzando as.Date(), ad esempio).

Q.z < - Zoo (Q, order.by = D)

creerà un oggetto che tracciare bene ed è possibile utilizzare le funzioni come finestra() per estrarre singoli anni per esempio

finestra (Qz, start = as.Date ('2000-01-01'), fine = as.Date ('2000-31-12')

Controllare il pacchetto Zoo per ulteriori informazioni.

Problemi correlati