Stationarity, Autocorrelation, White Noise, and Linear Time Series

This tutorial introduces basic concepts about stationarity, autocorrelation, white noise, and linear time series.

1  Stationarity

1.1  Strict stationarity

A time series {r_t} is said to be strictly stationary if the joint distribution of (t_{t_1},\cdots,r_{t_k})\,is identical to  (t_{t_1+l},\cdots,r_{t_k+l})\,for all t, where k is an arbitrary positive integer and (t_1,\cdots,r_k) is a collection of k positive integers.

In other words, strict stationarity requires that the joint distribution of (r_{t_1},\cdots,r_{t_k}) is invariant under time shift. This is a very hard condition that is hard to verify empirically. Read more ›

Posted in Uncategorized Tagged with: , ,

Asset Return and Distributions

This post talks about asset return and distributions, covering various definitions of returns and the relationship among them, return distributions and tests of returns.

1  Asset returns

Most financial studies involves returns, instead of prices, for two reasons:

  1. Return is a complete and scale-free summary of investment opportunity;
  2. Return has more attractive statistical properties than price.

Read more ›

Posted in Courses Tagged with: , , , ,

Download financial data using R's quantmod package

This tutorial gives a short intruduction about how to use R's Quantmod package to retrieve financial time series data from internet.

1  Overview of quantmod package

The quantmod package for R is designed to assist the quantitative trader in the development, testing, and deployment of statistically based trading models. It provides a rapid prototyping environment, where quant traders can quickly and cleanly explore and build trading models. Quantmod makes modelling easier by removing the repetitive workflow issues surrounding data management, modelling interfaces, and performance analysis.

However, quantmod is not a replacement for anything statistical. It has no 'new' modelling routines or analysis tool to speak of. It does now offer charting not currently available elsewhere in R, but most everything else is more of a wrapper to what you already know and love about the language and packages you currently use.

Read more ›

Posted in Courses, How-to, R Tagged with: , , ,

Arrays and Matrices in Python

This tutorial gives introduction about arrays and matrices in Python, provided by the Numpy module.

1  Array

1.1  Initialization of arrays

Arrays are initialized from lists or tuples using the numpy.array() function. Two dimentional arrays are initialized using list of lists, or tuples of lists, or list of tuples, etc. Higher dimensional arrays can be initialized by further nesting lists or tuples. Read more ›

Posted in How-to, Python Tagged with: ,

Shallow and deep copies in Python

This tutorial describes the differences between shallow and deep copies in Python.

The difference between shallow and deep copying is only relevant for compound objects, i.e. objects containing other objects, like lists or class instances. Python creates real copies only if it has to, i.e. if the user, the programmer, explicitly demands it.  Read more ›

Posted in How-to, Python Tagged with:

A Quick Tutorial on Python 3

After learning this quick tutorial on Python 3, you will accummulate confidence in writting your own Python codes.

1  Short Introduction

1.1  Numbers

  • '/' always returns a float; '//' does floor division and returns an integer; '%' calculates the remainder; power calculation is done by '**'
  • In interactive mode, the last printed expression is assigned to a special variable '_' (underscore), similar as 'ans' in Matlab.

    The '_' variable shall be treated as read-only. Assigning a value to it will invalidate its embedded magic behavior.

Read more ›

Posted in How-to, Python Tagged with:

R in Time Series: Linear Regression With Harmonic Seasonality

This tutorial talks about linear regression with harmonic seasonality.

1  Underlying mathematics

In regression modeling with seasonality, we can use one parameter for each season. For instance, 12 parameters for 12 months in one year. However, seasonal effects often vary smoothly over the seasons, so that it may be more parameter-efficient to use a smooth function instead of separate indices. Sine and cosine functions can be used to build smooth variationinto a seasonal model. Read more ›

Posted in How-to, Knowledge, Mathematics, R Tagged with: , , ,

R in Time Series: Linear Regression with Seasonal Variables

This tutorial gives a short introduction about linear regression with seasonal variables.

A time series are observations measured sequentially in time, seasonal effects are often present in the data, especially annual cycles caused directly or indirectly by the Earth's movement around the sun. Here we will present linear regression model with additive seasonal indicator variables included.

Suppose a time series contains s seasons. For example

  • For time series measured over each calendar month, s = 12.
  • For time series measured in six-month intevals, corresponding to summer and winter, s = 2.

Read more ›

Posted in How-to, Knowledge, Mathematics, R Tagged with: , , ,

Memory management of variables in Python

This tutorial illustrates memory management of variables in Python.

1  Variables in C

When you do an assignment like the following in C, it actually creates a block of memory space so that it can hold the value for that variable

You can think of it as putting the value assigned in a box with the variable name as shown below Read more ›

Posted in How-to, Python Tagged with:

R in Time Series: Linear Regression

This tutorial talks about linear regression on time series and implementations in R.

1  Trend: stochastic vs deterministic

  • We may consider a trend to be stochastic when it shows inexplicale changes in direction, and we attribute apparent transient trends to high serial correlations with random errors.
  • When we have some plausible physical explanation for a trend, we usually wish to model it in some deterministic manner. Deterministic trends and seasonal variations can be modelled using regression.
  • The practical difference between stochastic and deterministic trends is that we extrapolate the latter when we make forecasts. We justify short-term extrapolation by claiming that underlying trends will usually change slowly in comparison with the forecast lead time. For the same reason, short-term extrapolation should be based on a line, maybe fitted to the more recent data only, rather than a high-order polynomial.

Read more ›

Posted in How-to, R Tagged with: , ,