J'ai le jeu de données suivant: https://dl.dropbox.com/u/22681355/ORACLE.csv et je voudrais tracer les changements quotidiens dans «Ouvrir» par «Date», j'ai donc fait ce qui suit:
oracle <- read.csv(file="http://dl.dropbox.com/u/22681355/ORACLE.csv", header=TRUE)
plot(oracle$Date, oracle$Open, type="l")
et j'obtiens ce qui suit:
Maintenant, ce n'est évidemment pas le plus beau tracé jamais, alors je me demande quelle est la bonne méthode à utiliser pour tracer des données aussi détaillées?
R
une manière d'ajouter des lignes douces estloess
. Je suis sur le point de sortir, mais essayez? Loess dans R et, si vous avez des problèmes, modifiez votre message et quelqu'un pourra certainement vous aider. Il existe également d'autres méthodes de lissage, mais je pense que le loess est un bon défaut.Réponses:
Le problème avec vos données n'est pas qu'elles sont extrêmement détaillées: vous n'avez pas de valeurs le week-end, c'est pourquoi elles sont tracées avec des lacunes. Il y a deux façons de le gérer:
smooth.spline
,loess
, etc.). Le code d'interpolation simple est ci-dessous. Mais dans ce cas, vous introduirez quelque chose de "non naturel" et artificiel dans les données. C'est pourquoi je préfère la deuxième option.J'espère que cela vous aidera.
la source
plot(as.Date(oracle$Date), oracle$Open, type='l')
openValues <- c(openValues, mean(oracle$Open[i:i-1]))
de la première méthode paropenValues <- c(openValues, NA)
Étant donné que le problème est commun à de nombreux environnements logiciels statistiques, discutons-en ici sur Cross Validated plutôt que de le migrer vers un forum spécifique à R (tel que StackOverflow).
Le vrai problème est qu'il
Date
est traité comme un facteur - une variable discrète - et que les lignes ne sont donc pas connectées correctement. (Les points ne sont pas non plus tracés parfaitement avec précision dans le sens horizontal.)Pour faire le tracé de droite, le
Date
champ a été converti d'un facteur en une date réelle, chaque semaine a été identifiée avec un calcul simple (en répartissant les semaines entre le samedi et le dimanche) et les lignes ont été interrompues le week-end en bouclant au fil des semaines:(Une date équivalente à chaque semaine, donnant le lundi de cette semaine, a également été stockée dans la
oracle
trame de données car elle peut être utile pour tracer des données agrégées hebdomadaires.)L'intention initiale peut être réalisée simplement en émulant la dernière ligne pour afficher toutes les données. Pour ajouter des informations sur le comportement saisonnier, le graphique suivant fait varier la couleur par semaine tout au long de chaque année civile:
la source
Je n'interpolerais pas le week-end. Très peu de bourses se négocient le samedi et aucune à ma connaissance le dimanche. Vous introduisez une estimation pour les données qui n'ont jamais existé, alors pourquoi ne pas simplement supprimer samedi et dimanche de l'ensemble de données? Je ferais quelque chose comme ci-dessous:
la source
En ce qui concerne l'apparence de votre intrigue, je suppose que l'ajout de plusieurs étiquettes sous l'axe x l'améliorerait visuellement. L'aspect de l'intrigue suggérée, vous pouvez voir ici http://imgur.com/ZTNPniA
Je ne sais pas comment faire une telle intrigue, c'est juste une idée (que je n'ai pas vue réalisée en R)
la source