Tengo el siguiente conjunto de datos: https://dl.dropbox.com/u/22681355/ORACLE.csv y me gustaría trazar los cambios diarios en 'Abrir' por 'Fecha', así que hice lo siguiente:
oracle <- read.csv(file="http://dl.dropbox.com/u/22681355/ORACLE.csv", header=TRUE)
plot(oracle$Date, oracle$Open, type="l")
y me sale lo siguiente:
Obviamente, esta no es la mejor trama, así que me pregunto cuál es el método correcto para trazar datos tan detallados.
R
una forma de agregar líneas suaves esloess
. Estoy saliendo, pero intente loess en R y, si tiene problemas, edite su publicación y ciertamente alguien podrá ayudarlo. También hay otros métodos de suavizado, pero creo que loess es un buen valor predeterminado.Respuestas:
El problema con sus datos no es que sean extremadamente detallados: no tiene valores los fines de semana, es por eso que se trazan con huecos. Hay dos formas de lidiar con esto:
smooth.spline
,loess
, etc.). El código de interpolación simple está abajo. Pero en este caso, introducirá algo "antinatural" y artificial en los datos. Por eso prefiero la segunda opción.Espero que ayude.
fuente
plot(as.Date(oracle$Date), oracle$Open, type='l')
openValues <- c(openValues, mean(oracle$Open[i:i-1]))
en el primer método conopenValues <- c(openValues, NA)
Debido a que el problema es común en muchos entornos de software estadístico, analicémoslo aquí en Cross Validated en lugar de migrarlo a un foro específico de R (como StackOverflow).
El problema real es que
Date
se trata como un factor, una variable discreta, por lo que las líneas no se conectan correctamente. (Tampoco los puntos se trazan con precisión perfecta en la dirección horizontal).Para hacer el diagrama a la derecha, el
Date
campo se convirtió de un factor a una fecha real, cada semana se identificó con un cálculo simple (rompiendo las semanas entre el sábado y el domingo) y las líneas se interrumpieron durante los fines de semana al recorrer las semanas:(Una fecha equivalente de cada semana, que da el lunes de esa semana, también se almacenó en el
oracle
marco de datos porque puede ser útil para trazar datos agregados semanales).La intención original se puede lograr simplemente emulando la última línea para mostrar todos los datos. Para agregar información sobre el comportamiento estacional, la siguiente gráfica varía el color por semana durante cada año calendario:
fuente
No interpolaría los fines de semana. Muy pocas bolsas de valores cotizan el sábado y ninguna que yo sepa el domingo. Está introduciendo una estimación de datos que nunca existieron, así que ¿por qué no simplemente eliminar el sábado y el domingo del conjunto de datos? Haría algo como lo siguiente:
fuente
Con respecto al aspecto de su trama, supongo que la adición de múltiples etiquetas debajo del eje x lo mejoraría visualmente. El aspecto de la trama sugerida se puede ver aquí http://imgur.com/ZTNPniA
No sé cómo hacer esa trama, es solo una idea (que no he visto realizada en R)
fuente