Matlab软件进行金融时间序列数据的描述性统计代码

1、数据S&P500的收盘价格,return=100*log(pt/pt-1)

方法1:用python代码

import numpy as np
import pandas as pddef calculate_log_returns(prices):"""计算价格序列的对数收益率。参数:prices (numpy.array): 价格序列。返回:log_returns (numpy.array): 对数收益率序列。"""# 确保输入是NumPy数组prices = np.array(prices)# 计算连续价格之间的比率price_ratios = prices[1:] / prices[:-1]# 计算对数收益率log_returns = 100 * np.log(price_ratios)return log_returns# 读取CSV文件
df = pd.read_csv('sp500.csv')# 假设第二列的名字是"closing"(根据你的描述)
closing_prices = df['closing']# 计算对数收益率
log_returns_np = calculate_log_returns(closing_prices)
# 因为这个对数收益率直接输出是numpy数组,没办法直接用to_csv# 将NumPy数组转换为Pandas Series
log_returns_series = pd.Series(log_returns_np)# 如果需要将这一列保存到新的CSV文件中
log_returns_series.to_csv('Sp500-return.csv', index=False, header=["Log_Returns"])

方法2:用matlab软件,关于return的计算在lbtest.m代码里面。这里不重点说。

2、matlab的一些基本描述性代码

x=[ ] 里面粘贴上SP500的收盘价格时间序列,其实就是下面的SP500.mat

命令行窗口输入:最小值:min(x)最大值:max(x)平均值:mean(x)标准差:std(x)峰度:skewness(x)偏度:kurtosis(x)

例子:

S&P500描述性统计表
S&P500
Min-0.0947
Max 0.1096
Mean0.00022728
Std0.0123
Skewness-0.2295
Kurtosis10.6859

3、matlab进行Jarque-Bera、Q(20)=Ljung-Box Q-test、ARCH、KPSS、ADF检验的代码

3.1 matlab进行Jarque-Bera test

目的总体分布的正态性检验

返回值:h=0 接受x服从正态分布的假设;h=1 拒绝该假设

jbtest - Jarque-Bera test - MATLAB - MathWorks 中国

以alpha (默认0.05)显著水平对数据x进行Jarque-Bera检验[h,pValue,jbstat,cValue]=jbtest (x,alpha)
Function描述
jbtest测试样本是否来自均值和方差未知的正态分布,而不是来自正态分布。

这个表格来自于Matlab官网搜索“Available Hypothesis Tests”里。

https://ww2.mathworks.cn/help/stats/jbtest.html对于结果的输出情况:(1) h — Hypothesis test result1 | 0假设检验结果,返回1或0。如果h=1,则表示在α显著性水平上拒绝了零假设。如果h=0,则表示在α显著性水平上未能拒绝零假设。(2)pValue:范围(0,1)内的标量值测试的p值,以(0,1)范围内的标量值返回。p是观察到检验统计量与零假设下的观察值一样极端或更极端的概率。较小的p值使人们对零假设的有效性产生怀疑。当p不在表列范围[0.001,0.50]内时,jbtest会发出警告,并返回最小或最大的表列值。在这种情况下,您可以使用mctol来计算更准确的p值。(3)jbstat--测试统计非负标量值Jarque-Bera检验的检验统计量,以非负标量值返回。(4) crival——临界值非负标量值在α显著性水平上,Jarque-Bera检验的临界值以非负标量值返回。如果alpha在[0.001,0.50]范围内,并且样本量小于或等于2000,则jbtest会在预计算值表中查找测试的临界值。如果使用mctol,jbtest将使用蒙特卡洛模拟确定测试的临界值。当jbstat>crival时,零假设被拒绝。

关于更多Jarque-Bera Test的知识

蒙特卡罗标准误差(Monte Carlo Standard Error)
           蒙特卡洛标准误差是由于模拟p值而产生的误差。

蒙特卡洛标准误差计算如下:

SE=\sqrt{(\frac{(\hat{p})(1-\hat{p})}{mcreps})}
其中,\hat{p}是假设检验的估计p值,mcreps是执行的蒙特卡洛复制次数。jbtest选择足够大的蒙特卡洛复制次数(mcreps),以使蒙特卡洛标准误差\hat{p}小于为mctol指定的值。

例子

[h,pValue,jbstat,cValue]=jbtest (returns,0.05)[h,pValue,jbstat,cValue]=jbtest (returns)这两个的结果是一样的,说明默认alph=0.05

S&P500描述性统计表
S&P500
Jarque-Bera12521.37***

3.2 matlab进行Ljung-Box Q-test

目的:检验残差自相关

返回值:h=1拒绝了零假设,并表明XX残差序列中滞后1到20中至少有一个显著自相关的证据是强有力的。

官网解释Ljung-Box Q-test (lbqtest) 
# https://ww2.mathworks.cn/help/econ/lbqtest.html[h,pValue,stat,cValue] = lbqtest(res)# 返回测试的 p值,测试统计值,临界值
# 一般表格里面记录 测试统计值和p值就可以p<0.1, *
p<0.05, **
p<0.01, ***

例子

  1. 创建一个新的文件夹,自行命名
  2. 创建一个SP500.mat

    3.然后是新建SP500.m,代码如下:

%%对数据向量进行Ljung Box Q检验load SP500;
%-load('SP500.mat');plot(SP500);
title('\bf SP500 Closing price');
ylabel('Closing Price');
xlabel('S&P500 Price Since January 3, 1997');%% 每次运行代码之前,命令行窗口clear

补充:这个图的横坐标、纵坐标的刻度都是可以调整的,有需要可留言。

4.新建lbtest.m,代码如下:

%%按照以下步骤对数据进行预处理:
%通过计算每日回报来稳定该系列。
%计算与平均回报的偏差。load SP500;returns = price2ret(SP500);
residuals = returns - mean(returns);%%测试残差序列是否存在1到20个滞后的显著自相关。返回测试决策、p值、测试统计量和临界值。[h,pValue,stat,cValue] = lbqtest(residuals);

运行出来的结果:

h=1和pValue=4.3887e-13拒绝了零假设,并表明S&P500收益残差序列中滞后1到20中至少有一个显著自相关的证据是强有力的。

S&P500描述性统计表
S&P500
Q(20) 就是 Ljung-Box 检验102.5521***

我最终出来的结果,和原论文的值不是完全一样,有轻微的差异。但是,学会怎么做,才是我们的目的。

3.3 matlab进行ARCH(10) 检验

目的:剩余异方差的恩格尔检验

[h,pValue,stat,cValue] = archtest(res)

例子(ARCH的10怎么设定?未解决)

S&P500描述性统计表
S&P500
ARCH(10)219.4485***

了解更多archtest - Engle test for residual heteroscedasticity - MATLAB - MathWorks 中国

3.4 matlab进行KPSS 检验

KPSS(Kwiatkowski-Phillips-Schmidt-Shin)test 为了稳定性检验。

[h,pValue,stat,cValue] = kpsstest(x)

例子

命令行窗口clear
load returns
[h,pValue,stat,cValue] = kpsstest(returns)

S&P500描述性统计表
S&P500
KPSS0.0766

不知道为什么和图中的结果不一样,而且不能拒绝原假设。

Function描述
kruskalwallis测试多个样本是否都来自同一人群(或等效地,来自具有相同分布的不同人群),而不是都来自同一群人。

解释来自:Available Hypothesis Tests - MATLAB & Simulink - MathWorks 中国

3.5 matlab进行ADF 检验

ADF(Augmented Dickey-Fuller)对输入单变量时间序列中的单位根进行增强Dickey-Fuller检验,返回拒绝决定。

目的:稳定性检验

返回值:值1表示拒绝单位根零模型,支持替代模型。值0表示无法拒绝单位根空模型。

[h,pValue,stat,cValue] = adftest(x)alpha默认:0.05

例子

命令行窗口clear
load returns
[h,pValue,stat,cValue] = adftest(returns)

S&P500描述性统计表
S&P500
ADF-76.2071***

了解更多:adftest - Augmented Dickey-Fuller test - MATLAB - MathWorks 中国

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/882768.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【实战指南】Vue.js 介绍组件数据绑定路由构建高效前端应用

学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……&#xff09; 2、学会Oracle数据库入门到入土用法(创作中……&#xff09; 3、手把手教你开发炫酷的vbs脚本制作(完善中……&#xff09; 4、牛逼哄哄的 IDEA编程利器技巧(编写中……&#xff09; 5、面经吐血整理的 面试技…

_ZN4os3log9LogStream12WithLocationERKNSt3__112basic_stringIcNS2的函数签名是什么

objdump -tT libTest.so | grep getTime _ZN4os3log9LogStream12WithLocationERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEi的函数签名是什么 是一个典型的 C 函数签名&#xff0c;其中包含了命名空间、类名、模板参数等信息。这种形式的签名通常出现…

Go 语言初探

Google 公司有一个传统,允许员工利用 20% 的工作时间开发自己的实验项目。2007 年 9月,UTF-8 的设计者之一 Rob Pike(罗布.皮克)在 Google 的分布式编译平台上进行 C++ 编译时,与同事 Robert Griesemer (罗布.格里泽默)在漫长的等待中讨论了编程语言面临的主要问题。他们一…

ChatGPT 现已登陆 Windows 平台

今天&#xff0c;OpenAI 宣布其人工智能聊天机器人平台 ChatGPT 已开始预览专用 Windows 应用程序。OpenAI 表示&#xff0c;该应用目前仅适用于 ChatGPT Plus、Team、Enterprise 和 Edu 用户&#xff0c;是一个早期版本&#xff0c;将在今年晚些时候推出"完整体验"。…

LeetCode 热题100之哈希

1.两数之和 思路分析1&#xff08;暴力法&#xff09; 双重循环枚举满足num[i] nums[j] target的索引&#xff0c;刚开始不知道如何返回一对索引。后来知道可以直接通过return {i,j}返回索引&#xff1b;注意&#xff1a;j应该从i1处开始&#xff0c;避免使用两次相同的元素…

liunx线程

线程的概念 程序中的一个执行路线就是线程&#xff0c;线程就是一个进程内部的控制序列一个进程至少都有一个执行线程线程在进程内部运行&#xff0c;本质是在进程地址空间内运行liunx系统下&#xff0c;cpu眼里的PCB比传统进程更加轻量化透过虚拟地址空间&#xff0c;把进程的…

展会亮点回顾|HMS汽车工业通信解决方案

2024 汽车测试及质量监控博览会&#xff08;中国&#xff09;&#xff08;Testing Expo China – Automotive&#xff09;于 8 月 28 日至 30 日在上海世博展览馆顺利举行。作为汽车测试技术领域的顶级盛会&#xff0c;来自全球的行业领袖和技术专家齐聚一堂&#xff0c;共同探…

即时通讯 离线消息处理初版

离线消息处理 NotOnlineExecute package com.example.im.infra.executor.send;import com.example.im.endpoint.WebSocketEndpoint; import org.apache.commons.collections4.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springf…

Oracle里面,with ... as 用法介绍

在Oracle数据库中&#xff0c;WITH AS 子句&#xff08;也称为公用表表达式&#xff0c;CTE, Common Table Expression&#xff09;是一种在查询中定义临时结果集的方法。这个临时结果集可以在后续的查询中被引用&#xff0c;就像是一个临时的表或视图一样。使用 WITH AS 子句可…

Django学习(三)

Django的设计模式及模板层 传统的MVC&#xff08;例如java&#xff09; Django的MTV 模板层&#xff1a; 模板加载&#xff1a; 代码&#xff1a; views.py def test_html(request):#方案一# from django.template import loader# 1. 使用loader加载模板# t loader.get_…

JAVA使用easyExcel导出数据到EXCEl,导出数据不全问题解决

JAVA使用easyExcel导出数据到EXCEl,导出数据不全问题解决 问题描述解决思路一解决思路二温馨提示 问题描述 JAVA使用easyExcel导出数据到EXCEl,导出数据不全问题。 导出的excel部分列有数据&#xff0c;好几列没有数据 解决思路一 从网上百度查询&#xff0c;大多数的解决思路…

ICP算法理解入门之RT求解

本文仅仅分析了一下两组点云做好匹配好了之后&#xff0c; 如何解算RT&#xff0c; 并不涉及匹配过程&#xff0c;详细的匹配&#xff0c;下次再出一篇博客 ICP 求解旋转矩阵 ( R ) 的步骤 给定两个点云集合 ( P {p_1, p_2, …, p_n} )&#xff08;源点云&#xff09;和 ( Q…

线性可分支持向量机的原理推导 9-29对偶可行性条件 公式解析

本文是将文章《线性可分支持向量机的原理推导》中的公式单独拿出来做一个详细的解析&#xff0c;便于初学者更好的理解。 公式 9-29 是支持向量机&#xff08;SVM&#xff09;优化过程中 Karush-Kuhn-Tucker&#xff08;KKT&#xff09; 条件的一个部分&#xff0c;表示对偶可行…

uniapp-uniapp + vue3 + pinia 搭建uniapp模板

使用技术 ⚡️uni-app, Vue3, Vite, pnpm &#x1f4e6; 组件自动化引入 &#x1f34d; 使用 Pinia 的状态管理 &#x1f3a8; tailwindcss - 高性能且极具灵活性的即时原子化 CSS 引擎 &#x1f603; 各种图标集为你所用 &#x1f525; 使用 新的 <script setup> …

多ip访问多网站

作业要求 配置nginx服务通过ip访问多网站 [rootlocalhost ~]# systemctl stop firewalledFailed to stop firewalled.service: Unit firewalled.service not loaded. [rootlocalhost ~]# mount /dev/sr0 /mnt mount: /mnt: /dev/sr0 已挂载于 /run/media/redhat/RHEL-9-3-0-B…

搜维尔科技:我们用xsens动作捕捉技术制作的数字人

我们用xsens动作捕捉技术制作的数字人 搜维尔科技&#xff1a;我们用xsens动作捕捉技术制作的数字人

云原生技术:nacos进化到servicemash

面试的时候跟面试官吹嘘说&#xff0c;现在主流的微服务架构&#xff0c;都已经用得熟熟的了&#xff0c;自己技术很不错。进了公司却被分到了API资产管理平台&#xff0c;要做一个类似于网关的东西。经过调研才发现&#xff0c;自己用的微服务架构已经过时了&#xff0c;什么&…

Spring配置/管理bean-IOC(控制反转) 非常详细!基于XML及其注解!案例分析! 建议复习收藏!

目录 1.Spring配置/管理bean介绍 2.基于XML配置bean 2.1基于id来获取bean对象 2.2基于类型获取bean对象 2.3通过指定构造器配置bean对象 2.4通过p名称空间配置bean 2.5通过ref配置bean(实现依赖注入) 2.6注入内部Bean对象&#xff0c;依赖注入另一种方式 2.7 注入集合…

骨传导耳机哪款好?五大热门畅销骨传导耳机推荐!

在当今快节奏的生活中&#xff0c;骨传导耳机因其独特的声音传导方式和开放式的佩戴体验&#xff0c;逐渐成为运动爱好者和音乐发烧友的新宠。它们不仅提供了一种更为安全、舒适的听觉享受&#xff0c;还能在运动时让我们保持对周围环境的感知。随着技术的不断进步&#xff0c;…

理解VSCODE基于配置的设置,避免臃肿

这节课我们讲两点&#xff1a; &#xff08;一&#xff09;下载、安装、汉化及美化 VSCODE&#xff1b; &#xff08;二&#xff09;理解VSCODE中基于配置&#xff08;Profiles&#xff09;的设置&#xff08;Settings&#xff09;&#xff0c;让 VSCODE 保持清爽。 &#xff0…