pycea.tl.autocorr#
- pycea.tl.autocorr(tdata, keys=None, connect_key='tree_connectivities', method='moran', layer=None, copy=False)#
- Overloads:
tdata (td.TreeData), keys (str | Sequence[str] | None), connect_key (str), method (str), layer (str | None), copy (Literal[True, False]) → pd.DataFrame
tdata (td.TreeData), keys (str | Sequence[str] | None), connect_key (str), method (str), layer (str | None), copy (Literal[True, False]) → None
Calculate autocorrelation statistic.
This function computes autocorrelation for one or more variables using either Moran’s I or Geary’s C statistic, based on a specified connectivity graph between observations.
Mathematically, the two statistics are defined as follows:
- where:
is the number of observations,
is the value of observation i,
is the mean of all observations,
is the spatial weight between i and j, and
.
A Moran’s I value close to 1 indicates strong positive autocorrelation, while values near 0 suggest randomness. For Geary’s C behaves inversely: values less than 1 indicate positive autocorrelation, while values greater than 1 indicate negative autocorrelation.
- Parameters:
tdata (
TreeData) – TreeData object.keys (
str|Sequence[str] |None(default:None)) – One or moreobs.keys(),var_names,obsm.keys(), orobsp.keys()to calculate autocorrelation for. Defaults to all ‘var_names’.connect_key (
str(default:'tree_connectivities')) –tdata.obspconnectivity key specifying set of neighbors for each observation.method (
str(default:'moran')) –Method to calculate autocorrelation. Options are:
’moran’ : Moran’s I autocorrelation.
’geary’ : Geary’s C autocorrelation.
layer (
str|None(default:None)) – Name of the TreeData object layer to use. IfNone,tdata.Xis used.copy (
Literal[True,False] (default:False)) – If True, returns aDataFramewith autocorrelation.
- Returns:
Returns
Noneifcopy=False, else returnsDataFramewith columns:'autocorr'- Moran’s I or Geary’s C statistic.'pval_norm'- p-value under normality assumption.'var_norm'- variance of'score'under normality assumption.
Sets the following fields for each key:
tdata.uns['moranI']: Above DataFrame for if method is'moran'.tdata.uns['gearyC']: Above DataFrame for if method is'geary'.
Examples
Estimate gene expression heritability using Moran’s I autocorrelation:
>>> tdata = py.datasets.yang22() >>> py.tl.tree_neighbors(tdata, n_neighbors=10) >>> py.tl.autocorr(tdata, connect_key="tree_connectivities", method="moran")