Autocorrelation analysis of rainfall-runoff data

Tianfang Xu, Albert J. Valocchi, University of Illinois at Urbana-Champaign
Author Profile


The goal of this unit is to build a model to simulate stream discharge. In this step, we will explore what are important factors that affect discharge.

Conceptual Outcomes

Basic understanding of data analysis

Practical Outcomes

Students will be able to perform simple correlation analysis

Time Required

2 hours

Computing/Data Inputs

Sample codes to perform the analysis (Matlab File 4kB Jul21 16)

Computing/Data Outputs

Shown below are sample results obtained using the attached code ddm.m. The autocorrelation plot shows how today's runoff is related to runoff yesterday and a few days ago. The correlation plot shows the lagged impact of rainfall on runoff.

Hardware/Software Required



We first make an autocorrelation plot of the discharge time series as shown below. This can be done, for example, using the following MATLAB code:
Here, q is a vector containing the ten years of discharge, nlag is the number of lags (in days) we will calculate the autocorrelation.

The attached autocorrelation plot shows that discharge is correlated with discharge of last day and of two days ago. In other words, one day and two days lagged discharge time series can be useful factors to simulate discharge.

Next, we investigate how rainfall impacts discharge. We calculate the correlation coefficient between discharge with precipitation on the same day, one day ago, and two days ago until nine days ago, as plotted below. It can be seen from the attached correlation plot that the same day precipitation is highly correlated with discharge, which is not surprising. The correlation analysis suggests that we can also include lagged rainfall as inputs of our rainfall-runoff models. These data and lagged discharge are compiled in the sample code ddm.m (as attached).

Additional Activities and Variants

Related Steps