<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_rolling_statistics_variables( df = None, variable = None, window = 20, upper_factor = 2, lower_factor = 2 ):
 """ Add rolling statistics variables derived from a specified variable in a DataFrame. """

    df[variable + "_rolling_mean"]               = pd.stats.moments.rolling_mean(df[variable], window)
    df[variable + "_rolling_standard_deviation"] = pd.stats.moments.rolling_std(df[variable], window)
    df[variable + "_rolling_upper_bound"]        = df[variable + "_rolling_mean"] + upper_factor * df[variable + "_rolling_standard_deviation"]
    df[variable + "_rolling_lower_bound"]        = df[variable + "_rolling_mean"] - lower_factor * df[variable + "_rolling_standard_deviation"]
    return df