Computing Autocorrelations in Single-Case Experimental Design#

The autocorr function calculates autocorrelation values for different phases and overall in a single-case dataset. It helps in analyzing the dependency between observations across time.

Analyzing Temporal Dependencies with autocorr#

The autocorr function computes autocorrelations within each phase and across all phases in a dataset. This is useful for understanding whether measurements at one time point influence future values.

Required Arguments:#

  • data: A Pandas DataFrame containing SCED data.

Optional Arguments:#

  • dvar: The column name of the dependent variable (default "values").

  • pvar: The column name of the phase variable (default "phase").

  • mvar: The column name representing measurement time (default "mt").

  • lag_max: The maximum lag for which autocorrelations should be computed (default 3).

The function processes each case separately and computes autocorrelations within each phase and across all observations.

import scia as sc
📖 scia 1.101.0.dev6 - For Documentation, visit: https://ahsankhodami.github.io/scia/intro.html

Example 1: Computing Autocorrelations in a Dataset#

This example calculates autocorrelations up to a lag of 3 for each phase and overall.

import pandas as pd
import numpy as np

# Create a sample dataset
df = pd.DataFrame({
    "case": ["A", "A", "A", "A", "A", "B", "B", "B", "B", "B"],
    "phase": ["Baseline", "Baseline", "Baseline", "Intervention", "Intervention",
              "Baseline", "Baseline", "Intervention", "Intervention", "Intervention"],
    "values": [5, 6, 7, 8, 10, 3, 4, 6, 8, 9],
    "mt": [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
})

# Compute autocorrelations
df_ac = sc.autocorr(df, lag_max=3)
print(df_ac)
  Case         Phase     Lag 1     Lag 2     Lag 3
0    A      Baseline  0.000000 -0.500000       NaN
1    A  Intervention -0.500000       NaN       NaN
2    A           all  0.335135 -0.072973 -0.345946
3    B      Baseline -0.500000       NaN       NaN
4    B  Intervention -0.023810 -0.476190       NaN
5    B           all  0.461538 -0.153846 -0.461538

Example 2: Computing Autocorrelations with a Higher Lag#

Setting lag_max=5 allows computing autocorrelations for more time points.

df_ac = sc.autocorr(df, lag_max=5)
print(df_ac)
  Case         Phase     Lag 1     Lag 2     Lag 3     Lag 4  Lag 5
0    A      Baseline  0.000000 -0.500000       NaN       NaN    NaN
1    A  Intervention -0.500000       NaN       NaN       NaN    NaN
2    A           all  0.335135 -0.072973 -0.345946 -0.416216    NaN
3    B      Baseline -0.500000       NaN       NaN       NaN    NaN
4    B  Intervention -0.023810 -0.476190       NaN       NaN    NaN
5    B           all  0.461538 -0.153846 -0.461538 -0.346154    NaN