Statistics With Ruby - TimeSeries and GLM

Introduction:

Statsample is a basic and advance statistics suite on Ruby. It is majorly supported by many Ruby 1.8.7, 1.9.1, 1.9.2, 1.9.3 and 2.0.0.

Statsample is perfect library for anyone who is interested in exploring statistical aspects and even a little familiar(or interested) in Ruby.
It had very rich API; except that of TimeSeries and Generalized linear models, which was rather basic.

So, in this Google Summer of Code 2013 program, with SciRuby, I released two extensions - Statsample TimeSeries and Statsample GLM. These gems aim to take Statsample further and incorporate various functionalities and estimation techniques on continuous data.

Statsample TimeSeries

TimeSeries is equipped with wide amount of operations, which are directly available on `Series` object. Few of those functionalities are:

• Autocorrelation of series
• Partial autocorrelation with yule walker
• Levinson Durbin estimation
• AutoRegressive and Moving Average(ARIMA)
• KalmanFiltering, Log Likelihood estimation
• Moving averages, differences and autocovariances.

• Install `statsample` with `gem install statsample`
• Now, simply install timeseries gem by `gem install statsample-timeseries`.

Now, let’s make a simple `TimeSeries` object:

You can go through the documentation and API, here

Statsample-GLM

Statsample GLM includes many helpful regression techniques, which can be used for regression analysis on data.
Some of those techniques are:

• Poisson Regression
• Logistic Regression
• Exponential Regression
• Iteratively Reweighted Least Squares

The toplevel module for Regression techniques is `Statsample::Regression` Using it as simple as ever,

``````  * First, install `statsample` by `gem install statsample`
* Now, install GLM by `gem install `statsample-glm`
``````

Let’s get quickly started:

The documentation and API details is available here

We have some more plans for GLM module. First in list is to make the algorithms work with SVD, because manual inversion of matrices is not cool for larger values in Poisson Regression.

I have blogged about most of the functionalities on my blog - www.ankurgoel.com.
Please explore and use the libraries; I will be waiting for your inputs, suggestions and questions. Feel free to leave your questions on Github issues.