[ PROMPT_NODE_26866 ]
complexity
[ SKILL_DOCUMENTATION ]
# 复杂性和熵分析
## 概述
复杂性度量用于量化时间序列信号的不规则性、不可预测性和多尺度结构。NeuroKit2 提供了全面的熵、分形维数和非线性动力学度量,用于评估生理信号的复杂性。
## 主要函数
### complexity()
同时计算多个复杂性指标以进行探索性分析。
python
complexity_indices = nk.complexity(signal, sampling_rate=1000, show=False)
**返回值:**
- 包含各类复杂性度量的 DataFrame:
- 熵指数
- 分形维数
- 非线性动力学度量
- 信息论指标
**用例:**
- 识别相关度量的探索性分析
- 全面的信号表征
- 跨信号的比较研究
## 参数优化
在计算复杂性度量之前,应确定最佳嵌入参数:
### complexity_delay()
确定相空间重构的最佳时间延迟 (τ)。
python
optimal_tau = nk.complexity_delay(signal, delay_max=100, method='fraser1986', show=False)
**方法:**
- `'fraser1986'`: 互信息第一最小值
- `'theiler1990'`: 自相关第一零交叉点
- `'casdagli1991'`: Cao 方法
**用途:** 熵计算中的嵌入延迟、吸引子重构
### complexity_dimension()
确定最佳嵌入维度 (m)。
python
optimal_m = nk.complexity_dimension(signal, delay=None, dimension_max=20,
method='afn', show=False)
**方法:**
- `'afn'`: 平均假近邻 (Average False Nearest Neighbors)
- `'fnn'`: 假近邻 (False Nearest Neighbors)
- `'correlation'`: 相关维数饱和度
**用途:** 熵计算、相空间重构
### complexity_tolerance()
确定熵度量的最佳容差 (r)。
python
optimal_r = nk.complexity_tolerance(signal, method='sd', show=False)
**方法:**
- `'sd'`: 基于标准差(典型值为 0.1-0.25 × SD)
- `'maxApEn'`: 最大化近似熵 (ApEn)
- `'recurrence'`: 基于递归率
**用途:** 近似熵、样本熵
### complexity_k()
确定 Higuchi 分形维数的最佳 k 参数。
python
optimal_k = nk.complexity_k(signal, k_max=20, show=False)
**用途:** Higuchi 分形维数计算
## 熵度量
熵量化了随机性、不可预测性和信息含量。
### entropy_shannon()
Shannon 熵