Category Archives

5 Articles

xts (eXtensible Time Series)

by Yohan Naftali 0 Comments

Paket xts merupakan paket yang menyediakan penanganan beragam kepada data berdasarkan waktu (time series) yang beraneka ragam dengan meng-extend class zoo.
Xts memaksimalkan dengan menyimpan informasi format awal an memperbolehkan pada level pengguna untuk melakukan kostumisasi dan ekstensi, xts menyederhanakan interoperabilitas antar class.

Alamat CRAN paket xts: CRAN

Cara install pada R:

install.packages("xts")

Perintah untuk menggunakan paketlibrary(xts)

Atau diload otomatis dengan menambahkan pada .First

.First <- function(){library(xts)}

Contoh penggunaan xts:

n <- 10
series <- rnorm(n)

# POSIXct (date/time) index
datetimes <- seq(as.POSIXct("2017-03-27"), length.out = n, by = "days")
library(xts)
x <- xts(series, datetimes)


Contoh data dari paket quantmod menghasilkan object xts.

library(quantmod)
getSymbols("ASII.JK", from = "2000-01-01", to = "2017-07-17", src =  "yahoo", adjust =  TRUE)

Hasilnya berupa object ASII.JK dengan class xts.

Contoh penggunaan xts object menggunakan candleChart quantmod

candleChart(ASII.JK,subset='2017-06::2017-08')

Result:

Applied Statistical Time Series Analysis with astsa

Paket astsa merupakan paket R untuk analisis statistik terapan time series (deret waktu).
Paket ini berguna untuk melakukan analisis deret waktu bersama paket xts.

Alamat CRAN package astsa : astsa

Cara install pada R:

install.packages("astsa")

Perintah untuk menggunakan paket

library(astsa)

Atau diload otomatis dengan menambahkan pada .First

.First <- function(){library(astsa)}

Paket ini untuk update terakhir juga dapat dilihat pada Github

Apabila menggunakan github, dapat menggunakan perintah berikut ini:

install.packages("devtools")     # only need to do this once
devtools::install_github("nickpoison/astsa")

Mendapatkan Data Saham Online Menggunakan R

by Yohan Naftali 5 Comments

Pengambilan keputusan pada bidang keuangan dibutuhkan data yang lengkap dan cepat. Internet telah memudahkan pengambil keputusan untuk mendapatkan data secara online. Salah satu data yang dibutuhkan adalah data saham untuk para investor saham yang akan melakukan keputusan jual atau beli saham.
Software statistik R memudahkan para pengambil keputusan untuk segera melakukan analisis data, dalam hal ini data saham. Yahoo Finance sebagai salah satu penyedia data online menyediakan data saham EOD (end of day).
Berikut adalah contoh command untuk mengambil data saham ASII.JK ke dalam dataset R. Saya menggunakan R Studio untuk memudahkan penggunaan R.

URL <- "http://ichart.finance.yahoo.com/table.csv?s=ASII.JK"
data <- read.csv(URL)
data$Date <- as.Date(data$Date, "%Y-%m-%d")

Command pada baris pertama mengarahkan URL API yahoo finance untuk mengambil data saham ASII. Command pada baris kedua menyimpan data ASII pada yahoo finance pada object bernama data. Pada baris ketiga melakukan konversi string pada kolom Date menjadi format Date.

Alternatif lainnya menggunakan package {tseries}. Package {tseries} adalah paket untuk analisis time series dan keuangan komputasi (computational finance).

library(tseries)
data <- get.hist.quote("ASII.JK")

data yang diperoleh dari package {tseries} berupa object zoo.

Package {quantmod} juga menyediakan cara yang mudah untuk mendapatkan data saham, berikut adalah contoh mendapatkan harga saham ASII Adjusted dari 1 Januari 2000 sampai dengan 31 Desember 2016

library(quantmod)
getSymbols("ASII.JK", from = "2000-01-01", to = "2016-12-30", src =  "yahoo", adjust =  TRUE)

Selanjutnya data yang didapat dari {quantmod} dapat diakses pada object ASII.JK, berupa class xts dan zoo.
Object xts merupakan singkatan dari eXtensible Time Series. Object xts didesain untuk data time series. Object xts merupakan ekstensi dari object zoo.

Saat penulisan ini, src bisa memilih dari: yahoo, google, MySQL, FRED, csv, RData, and oanda

Selanjutnya untuk melihat data dapat digunakan command:

View(data)

Sedangkan untuk mengakses vector (vector adalah sebutan array pada R) salah satu kolom, misalnya kolom harga penutupan (Close) dapat dilakukan dengan cara:

View(data$Close)

Untuk menampilkan plot antara tanggal dan harga penutupan dapat dilakukan dengan mengeksekusi command:

plot(data$Date, data$Close)

apabila menggunakan library tseries, maka data yang didapat berupa zoo object, sehingga commandnya cukup:

plot(data$Close)

Untuk melakukan plot candlestick dapat menggunakan library plotly.

Berikut adalah script untuk melakukan plot data ke candlestick

Pertama, copykan dulu object data ke object df

df <- data

Buat object hovertxt

hovertxt <- Map(function(x,y)paste0(x, ":", y), names(df), df)
hovertxt <- Reduce(function(x, y)paste0(x, "<br&;gt;", y), hovertxt)

panggil fungsi plot_ly()

plot_ly(df, x = ~Date, xend = ~Date, hoverinfo = "none",
        color = ~Close > Open, colors = c("#00b386","#ff6666")) %>%
  add_segments(y = ~Low, yend = ~High, line = list(width = 1, color = "black")) %>%
  add_segments(y = ~Open, yend = ~Close, line = list(width = 3)) %>%
  add_markers(y = ~(Low + High)/2, hoverinfo = "text",
              text = hovertxt, marker = list(color = "transparent")) %>%
  layout(showlegend = FALSE,
         yaxis = list(title = "Price", domain = c(0, 0.9)),
         annotations = list(
           list(xref = "paper", yref = "paper",
                x = 0, y = 1, showarrow = F,
                xanchor = "left", yanchor = "top",
                align = "left",
                text = paste0("<b>ASII</b>")),    
           list(xref = "paper", yref = "paper",
                x = 0.75, y = 1, showarrow = F,
                xanchor = "left", yanchor = "top",
                align = "left",
                text = paste(range(df$Date), collapse = " : "),
                font = list(size = 8))),
         plot_bgcolor = "#f2f2f2")

Tampilan grafik seperti berikut ini:

Package {forecast} pada R untuk Analisis Time Series dan Model Linier

by Yohan Naftali 0 Comments

Package {forecast} pada R merupakan paket yang berguna untuk melakukan peramalan (forecasting) time series dan model linier.
Package {forecast} berisi metoda dan tool untuk menampilkan dan menganalisis peramalan time series univariate, termasuk exponential smoothing dengan pemodelan state space dan pemodelan ARIMA secara otomatis.

Package ini diinstall dengan cara mengeksekusi command berikut ini pada console R:

install.packages("forecast")

Selanjutnya untuk menggunakan library forecast dilakukan dengan cara memanggil library forecast dengan mengeksekusi command berikut ini:

library("forecast")

Source:
Hyndman, Rob J dan Khandakar, Yeasmin. 2008. Automatic Time Series Forecasting: The forecast Package for R. Journal of Statistical Software, Vol 27 (2008), Issue 3. Available at https://www.jstatsoft.org/article/view/v027i03

Update R Menggunakan Package {installr} pada OS Windows

by Yohan Naftali 0 Comments

Melakukan update R pada windows biasanya dilakukan dengan mengunjungi https://cran.r-project.org/ dan mengunduh installernya. Cara ini disukai oleh pengguna R pada OS Windows, akan tetapi ada alternatif untuk melakukan update, yaitu menggunakan package {installr}.
Package {installr} memudahkan pengguna R pada OS Windows untuk melakukan update R.

Disarankan untuk melakukan upgrade dari console R, karena updateR menggunakan RStudio mungkin dapat menimbulkan fatal error.

Langkah pertama adalah menginstall packages {installr} menggunakan command berikut ini:

if(!require(installr)){install.packages("installr"); require(installr)}

Setelah itu lakukan update dengan command sebagai berikut:

updateR()

Setelah eksekusi command di atas, maka akan ada beberapa pertanyaan mengenai konfigurasi R, package lama, dan lainnya.

Nantinya, apabila akan melakukan update di kemudian hari, tidak perlu lagi melakukan instalasi {installr},
cukup jalankan command berikut lagi:

require("installr")
updateR()