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")

Perhitungan Pendapatan Nasional Menggunakan Expenditure Method

Perhitungan National Income (PDB) menganut metode expenditure method, yang menjumlahkan(Y) konsumsi (C), pengeluaran pemerintah (G), PMTB (I) dan net eksport(X) – import (M) basic konsepnya dikemukanan oleh william petty, dikembangkan davenant dan konsep modern nya di kembangkan oleh Kuznet sebagai pengukuran kesejahteraan, akan tetapi Kuznet sudah mengingatkan bahwa pengukuran ini hanya untuk simplifikasi kalau disalahgunakan hanya akan menjadi “ilusi” saja.

Metoda Expenditure (pengeluaran) itu analoginya dipakai oleh sales kartu kredit, perusahaan kartu kredit mungkin tidak bisa tahu berapa penghasilan yang kita peroleh, akan tetapi dari mengintip pengeluaran yang kita keluarkan (expenditure) dari kartu kredit mereka bisa mengukur tingkat kemakmuran anda bahkan menghitung kenaikan penghasilan/income anda (Y), sehingga bila belanja/pengeluaran/expenditure (C) semakin besar, maka ada indikasi penghasilan (income) juga meningkat. Kelemahannya bisa saja kita hutangnya semakin besar untuk membeli barang konsumsi (kalau untuk investasi tidak masalah selama perhitungannya ada ROI nya = I), menyebabkan pengeluaran kita makin besar, padahal income tidak bertambah, inilah yang oleh Kuznet di-warning untuk berhati-hati menggunakan indikator PDB sebagai pendekatan perhitungan pendapatan nasional.

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