%% 生成时间序列数据\nt = linspace(0, 10, 1000);\nx = sin(t) + randn(size(t));\n\n%% 将时间序列转换为汉克尔矩阵\nN = length(t);\nH = zeros(N, N);\nfor i = 1:N\n for j = i:N\n H(i,j) = sum(x(i:j+i-1).^2);\n end\nend\n\n%% 对汉克尔矩阵进行奇异值分解\n[U, S, V] = svd(H);\n\n%% 生成延迟嵌入吸引子特征时间序列层次\nlambda = diag(S);\nr = 10;\ntau = round(sqrt(log(N)));\nfor i = 1:r-1\n fprintf('Computing linear regression for variable %d\n', i);\n X = U(:,i:N-i+1)' * U(:,i:N-i+1);\n [b, bstats] = regstats(X, lambda(i:N-i+1));\n fprintf('Intercept: %.4f, Slope: %.4f\n', b(1), b(2));\nend\n\n%% 生成最后一个坐标v\nv = zeros(N, 1);\nfor i = 1:N\n v(i) = randn();\nend\n\n%% 对最后一个坐标v进行最佳拟合的线性回归\nX = U(:,1:r)' * U(:,1:r);\n[b, bstats] = regstats(X, v(1:r));\nfprintf('Intercept: %.4f, Slope: %.4f\n', b(1), b(2));\n内容:Intercept: -0.0879, Slope: 0.0710

时间序列数据分析:汉克尔矩阵奇异值分解与延迟嵌入吸引子特征时间序列层次生成

原文地址: https://www.cveoy.top/t/topic/p0dI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录