问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

结合ICA和GARCH模型的股票风险价值分析【附数据】

创作时间:
作者:
@小白创作中心

结合ICA和GARCH模型的股票风险价值分析【附数据】

引用
CSDN
1.
https://blog.csdn.net/yuboqiuming/article/details/143196825

本文研究了基于改进的Fast ICA算法在股票风险价值研究中的应用。为了提高Fast ICA算法的分离性能,本文提出了TSICA算法。TSICA算法的改进主要体现在两个方面:一是通过构造一种基于Tukey函数和Softsign函数的分段函数来改进算法的分离精度;二是引入牛顿三阶迭代格式以加快算法的收敛速度。通过这两个方面的改进,TSICA算法在处理混合信号时表现出了更高的分离精度和更快的收敛速度。

TSICA算法的改进

具体来说,在分离精度的改进方面,本文通过结合Tukey函数和Softsign函数的优点,设计了一种新的分段函数,该函数在处理信号分离时能够更好地适应信号的非线性特性,从而提高了算法的分离精度。而在加快收敛速度方面,本文引入了牛顿三阶迭代格式,这种方法相比于传统的迭代方法,能够更快地收敛到最优解,从而减少了算法的迭代次数,提高了算法的效率。

为了验证TSICA算法的有效性,本文通过一系列的实验进行了评估。实验中,对混合信号进行了100次分离实验,结果显示TSICA算法不仅在分离精度上有显著提高,而且在迭代次数上也有大幅减少。具体表现为TSICA算法的迭代次数仅为Fast ICA算法的6.8%,是MTICA算法的25.4%。这表明,TSICA算法在分离精度和收敛速度方面都优于传统的Fast ICA算法和其他改进算法。

TSICA-GARCH模型的构建

在研究了TSICA算法的基础上,本文进一步探讨了如何提高GARCH模型对股票波动率的预测精度,进而提高对股票VaR的度量效果。本文提出了一种结合TSICA算法和GARCH模型的新型预测模型——TSICA-GARCH模型。该模型在GARCH建模前,先采用TSICA算法和TnA方法进行数据的去噪预处理,以提高数据的质量。

具体实施步骤如下:首先,将所选取的股票数据通过TSICA算法进行独立分量的分解,以提取出数据中的独立分量;接着,采用TnA算法对分解出的独立分量进行排序,从而识别并剔除其中的噪声分量;最后,对剔除噪声后的收益率序列进行重构,并用GARCH模型对该重构序列进行建模,预测股票的波动率。这种结合TSICA算法和GARCH模型的预测方法被称为TSICA-GARCH模型,并用于股票市场VaR的度量和回测检验。

通过对中国股市74个指数的统计学检验,筛选出符合GARCH建模条件的指数进行实证分析。结果表明,基于TSICA-GARCH模型对VaR的度量效果优于基于传统GARCH模型的度量效果。这意味着TSICA-GARCH模型在提高股票波动率预测精度的同时,也能更准确地度量股票的风险价值。

引入价格极差的改进

鉴于股票价格极差能够反映股票的价格变化情况,可以体现价格波动规律,本文进一步在TSICA-GARCH模型中引入股票的价格极差,构建了TSICA-极差-GARCH模型,以增强模型对于波动率的表征能力。该模型首先用TSICA算法对所选取的股票数据进行去噪处理,然后将价格极差与GARCH模型结合形成波动率预测的极差-GARCH模型,进一步对VaR进行度量并回测检验。

具体步骤为:先使用TSICA算法对股票数据进行预处理,剔除噪声;然后,利用处理后的数据计算价格极差,并将价格极差与GARCH模型相结合,形成一个新的波动率预测模型——极差-GARCH模型;最后,利用该模型对VaR进行度量,并进行回测检验。通过对具有ARCH效应的52个指数进行极差-GARCH建模分析,结果表明,VaR的度量效果从优到次依次为TSICA-极差-GARCH模型、TSICA-GARCH模型和GARCH模型。这表明,在引入价格极差后,模型对VaR的度量效果得到了进一步提升。

CVaR在极端市场条件下的应用

考虑到VaR在极端市场条件下可能无法准确反映风险的真实情况,本文进一步探讨了CVaR(条件风险价值)作为一致性风险测度的优势。在极端市场条件下,CVaR能够更好地反映风险的真实情况。因此,本文采用TSICA-极差-GARCH模型预测波动率,并基于该模型对CVaR进行度量以及回测检验。

通过对新冠肺炎疫情期间生活相关行业中的12只股票进行实证分析,结果表明,在新冠肺炎疫情这一极端市场条件下,CVaR比VaR度量风险的准确性更高。这意味着,在面临极端市场波动时,使用CVaR作为风险测度工具能够更准确地评估股票的风险水平。

MATLAB代码示例

以下是基于TSICA算法的股票数据去噪处理示例:

% 构造股票数据表格
stockData = table();
stockData.Date = datetime(2020:365:2023);
stockData.Open = randn(100, 1) * 10 + 3000;
stockData.Close = randn(100, 1) * 10 + 3000;
stockData.High = stockData.Close + randn(100, 1) * 5;
stockData.Low = stockData.Close - randn(100, 1) * 5;
stockData.Volume = randn(100, 1) * 1000 + 50000;

% 数据表格展示
disp(stockData);

% 基于TSICA算法的股票数据去噪处理示例
% 读取股票收盘价数据
closePrices = stockData.Close;

% 构造观测矩阵
X = closePrices';
X = X - mean(X); % 中心化数据
X = X / std(X); % 标准化数据

% 应用TSICA算法
% 初始化参数
nComp = 1; % 假设只有一个独立成分
maxIter = 1000; % 最大迭代次数
tol = 1e-8; % 收敛阈值

% TSICA算法主体
W = eye(nComp); % 初始化权重矩阵
for iter = 1:maxIter
    Wprev = W;
    
    % 使用Tukey函数和Softsign函数构造的分段函数
    g = @(x) tukeyFun(x) + softSignFun(x);
    gPrime = @(x) tukeyFunPrime(x) + softSignFunPrime(x);
    
    W = Wprev + stepSize * (X * g(Wprev * X)' - Wprev * gPrime(Wprev * X) * X');
    
    % 正交化权重矩阵
    W = orth(W);
    
    % 检查是否收敛
    if norm(W - Wprev) < tol
        break;
    end
end

% 提取独立分量
indepComp = W * X';

% 展示独立分量
figure;
plot(indepComp);
title('Independent Component');
xlabel('Time');
ylabel('Value');

% 辅助函数定义
tukeyFun = @(x) tukeyFunImpl(x);
tukeyFunPrime = @(x) tukeyFunPrimeImpl(x);
softSignFun = @(x) softSignFunImpl(x);
softSignFunPrime = @(x) softSignFunPrimeImpl(x);

% Tukey函数实现
function y = tukeyFunImpl(x)
    y = zeros(size(x));
    for i = 1:length(x)
        if abs(x(i)) <= 1
            y(i) = 5 * x(i)^3 - 6 * x(i)^2 + 1;
        else
            y(i) = 0;
        end
    end
end

% Tukey函数导数实现
function y = tukeyFunPrimeImpl(x)
    y = zeros(size(x));
    for i = 1:length(x)
        if abs(x(i)) <= 1
            y(i) = 15 * x(i)^2 - 12 * x(i);
        else
            y(i) = 0;
        end
    end
end

% Softsign函数实现
function y = softSignFunImpl(x)
    y = x ./ (1 + abs(x));
end

% Softsign函数导数实现
function y = softSignFunPrimeImpl(x)
    y = 1 ./ (1 + abs(x)).^2;
end

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号