文章目录
相关性:
1. 连续变量与连续变量的相关性
皮尔逊相关系数(前提假设:两组数同方差):不能提供两组数据方向性的信息,
import pandas as pd
pd.DataFrame.corr()
2. 二分类变量与连续数值变量的相关性
^bde3c6
点二列相关系数(Point-Biserial Correlation Coefficient)是用于评估一个二分类变量和一个数值变量之间的相关性的统计量。它衡量了数值变量和二分类变量之间的线性关系强度和方向。以下是计算点二列相关系数的步骤:
- 将二分类变量转换为二进制指示变量:将原始的二分类变量转换为两个二进制指示变量,其中一个指示变量表示分类为1的情况,另一个指示变量表示分类为0的情况。
- 计算均值:计算数值变量在分类为1和分类为0的情况下的均值,分别记为M1和M0。
- 计算二分类变量的比例:计算分类为1的观测值在总观测值中的比例,记为p1。 ^91cc9e
- 计算点二列相关系数:使用以下公式计算点二列相关系数(rpb):
rpb = (M1 - M0) / sqrt(p1 * (1 - p1))
其中,M1和M0是数值变量在分类为1和分类为0情况下的均值,p1是分类为1的观测值比例。
点二列相关系数的取值范围在-1到1之间。当相关系数接近1时,表示数值变量与分类为1的情况呈正相关;当相关系数接近-1时,表示数值变量与分类为1的情况呈负相关;当相关系数接近0时,表示数值变量与分类变量之间没有线性相关性。
x = [0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0]
y = [12, 14, 17, 17, 11, 22, 23, 11, 19, 8, 12]
import scipy.stats as stats
#calculate point-biserial correlation
stats.pointbiserialr(x, y)
#其实就是皮尔逊相关系数
PointbiserialrResult(correlation=0.21816, pvalue=0.51928)
3. 分类变量与分类变量之间的相关性
卡方检验
4. 互相关(标准化互相关Normalized Cross-Correlation)
用来评估两组时间序列相关性:值越高,相关度越高(-1~1) ^4771e1
KaTeX parse error: Expected 'EOF', got '_' at position 12: \text{norm_̲corr}(x,y) = \f…
import ccf from statsmodels.tsa.stattools
5.自相关(Auto-Correlation)
在不同时间段与自身比较,用来检测时间序列的周期性或者重复模式
6.标准化的自相关与时移(Normalized Auto-Correlation with Time Shift)
from statmodels.tsa.stattools import acf
acf(time_serise,nlags,fft)#nlags 是时间偏移点数。