Home Up CV / Resume Research Contact Info

C++ VBA Java Matlab S+ / R SAS Ox / C CRSP

[Under Construction]






I have used SAS in my work since 2003. In 2011, I passed both Base and Advanced Programmer exams offered by SAS Global Certification Program


Project 1 : GMM parameter  estimation for the Double Exponential Jump-Diffusion model

This is one of my term projects where I employed GMM for parameter estimation for DEJD model proposed by Ramezani, Zeng and Kou.

Below you can download:

Project report

SAS code

Daily dataset

Weekly dataset


Project 2 : Mutual Fund Performance Evaluation: Bootstrap Regression in SAS

The input dataset contains monthly returns for five US equity mutual funds and four Carhart factors (downloaded from CRSP). One way to obtain a relatively robust estimate of the performance measure, alpha, is to bootstrap the corresponding multiple regression. Bootstrapping assumes that both the response and covariates are random. For comparison, parametric-based quantities are also reported. More information is provided in the SAS code.

Bootstrap SAS code

Input dataset



Project 3: CRSP Mutual Fund Database: Solving the Shareclass Problem

Please click here


Project 4: Multivariate time series bootstrap

This project is the computational part of my white paper released in Jan 2011. The input dataset includes monthly historical information about the returns of a certain hedge fund and some macroeconomic variables. The goal is to test whether the mean of a next period's return is greater than zero. For each macroeconomic predictor, the hypothesis is tested separately, and here I present the results for one such predictor, the default spread. For the reasons elaborated in the paper, the t-statistic of interest is obtained via resampling w/o replacement, a.k.a. randomization. The underlying model is VAR(2), so the residuals are resampled in pairs. 

SAS code

Input dataset


Project 5: Multiple Imputation for Panel Data Analysis

Panel data can be seen as multivariate time series where some parameters are assumed the same for all cross-sections. For instance, Sufian et al. use panel regression to model macroeconomic data where “country” is a space (cross-sectional) variable and “year” is the time variable.

Consider the case when there are missing observations in the input data set, and multiple imputation is necessary. In SAS, this is handled by applying PROC MI, PROC X, and PROC MIANALYZE sequentially, where X stands for the procedure that defines the core model. A common question that is asked on SAS Statistical Procedures forum is “how do I make PROC MIANALYZE work with PROC X?”

One can find working examples online for X = REG, but for X = PANEL the situation is not that straightforward. Unfortunately, the interface of PROC MIANALYZE is far from user friendly. Let me ask you a question: suppose MIANALYZE works fine with the input dataset named in_data1. If you create a copy of this dataset called in_data2 as


data in_data2;

      set in_data1;


will MIANALYZE work with in_data2 as well? Read my report and use this sample SAS dataset to find out.


P.S. Please let me know if you are aware of a more elegant way to interface PROC MIANALYZE with PROC PANEL. 


Software skills

Home Up CV / Resume Research Contact Info