Saya memiliki dataset berikut: https://dl.dropbox.com/u/22681355/ORACLE.csv dan ingin merencanakan perubahan harian di 'Buka' dengan 'Tanggal', jadi saya melakukan hal berikut:
oracle <- read.csv(file="http://dl.dropbox.com/u/22681355/ORACLE.csv", header=TRUE)
plot(oracle$Date, oracle$Open, type="l")
dan saya mendapatkan yang berikut ini:
Sekarang ini jelas bukan plot terbaik yang pernah ada, jadi saya bertanya-tanya apa metode yang tepat untuk digunakan ketika memplot data terperinci seperti itu?
R
satu cara menambahkan garis-garis halus adalahloess
. Saya sedang dalam perjalanan keluar, tetapi coba? Loess di R dan, jika Anda mengalami kesulitan, edit posting Anda dan seseorang pasti akan dapat membantu Anda. Ada metode smoothing lain juga, tapi saya pikir loess adalah default yang bagus.Jawaban:
Masalah dengan data Anda bukan karena itu sangat rinci: Anda tidak memiliki nilai di akhir pekan, itu sebabnya ia diplot dengan kesenjangan. Ada dua cara untuk menghadapinya:
smooth.spline
,loess
, dll). Kode interpolasi sederhana ada di bawah ini. Tetapi dalam hal ini Anda akan memperkenalkan sesuatu yang "tidak alami" dan buatan untuk data. Itu sebabnya saya lebih suka opsi kedua.Semoga ini bisa membantu.
sumber
plot(as.Date(oracle$Date), oracle$Open, type='l')
openValues <- c(openValues, mean(oracle$Open[i:i-1]))
di metode pertama denganopenValues <- c(openValues, NA)
Karena masalah umum terjadi pada banyak lingkungan perangkat lunak statistik, mari kita bahas di sini di Cross Validated daripada memigrasikannya ke forum R-spesifik (seperti StackOverflow).
Masalah sebenarnya adalah bahwa
Date
diperlakukan sebagai faktor - variabel diskrit - dan garis tidak terhubung dengan benar. (Poin juga tidak diplot dengan sempurna secara akurat dalam arah horizontal.)Untuk membuat plot tangan kanan,
Date
bidang dikonversi dari faktor ke tanggal aktual, setiap minggu diidentifikasi dengan perhitungan sederhana (melanggar minggu antara hari Sabtu dan Minggu) dan garis-garis diinterupsi selama akhir pekan dengan pengulangan selama beberapa minggu:(Tanggal yang setara dengan setiap minggu, memberikan hari Senin minggu itu, juga disimpan dalam
oracle
kerangka data karena dapat berguna untuk memplot data agregat mingguan.)Niat asli dapat dicapai hanya dengan meniru baris terakhir untuk menampilkan semua data. Untuk menambahkan beberapa informasi tentang perilaku musiman, plot berikut ini memvariasikan warna berdasarkan minggu selama setiap tahun kalender:
sumber
Saya tidak akan melakukan interpolasi pada akhir pekan. Sangat sedikit bursa efek yang diperdagangkan pada hari Sabtu dan tidak ada yang saya ketahui pada hari Minggu. Anda memperkenalkan perkiraan untuk data yang tidak pernah ada jadi mengapa tidak menghapus Sabtu dan Minggu dari kumpulan data? Saya akan melakukan sesuatu seperti di bawah ini:
sumber
Mengenai tampilan plot Anda, saya kira menambahkan beberapa label di bawah sumbu x akan meningkatkannya secara visual. Tampilan plot yang disarankan dapat Anda lihat di sini http://imgur.com/ZTNPniA
Saya tidak tahu bagaimana membuat plot seperti itu, itu hanya sebuah ide (yang belum saya sadari terealisasi di R)
sumber