编写带滑动时间窗的带入数据的皮尔逊相关系数的代码
下面是一个使用滑动时间窗口计算皮尔逊相关系数的示例代码:
import numpy as np
from scipy.stats import pearsonr
def sliding_window(data, window_size):
for i in range(len(data) - window_size + 1):
yield data[i:i+window_size]
def pearson_correlation(data1, data2):
correlation = pearsonr(data1, data2)[0]
return correlation
def sliding_pearson_correlation(data1, data2, window_size):
correlations = []
for window1, window2 in zip(sliding_window(data1, window_size), sliding_window(data2, window_size)):
correlation = pearson_correlation(window1, window2)
correlations.append(correlation)
return correlations
# 示例数据
data1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
data2 = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
window_size = 3
correlations = sliding_pearson_correlation(data1, data2, window_size)
print(correlations)
在上面的示例中,sliding_window函数用于生成滑动时间窗口,它接受一个数据列表和窗口大小作为输入,并返回一个生成器,每次生成一个窗口。pearson_correlation函数用于计算两个窗口数据的皮尔逊相关系数。sliding_pearson_correlation函数使用sliding_window生成器获取两个数据列表的窗口,并调用pearson_correlation函数计算相关系数。最后,将计算得到的相关系数存储在一个列表中并输出。
在示例数据中,data1和data2分别表示两个时间序列数据,window_size表示时间窗口的大小。运行上述代码,将输出滑动时间窗口内的皮尔逊相关系数列表
原文地址: https://www.cveoy.top/t/topic/hPas 著作权归作者所有。请勿转载和采集!