# 时间序列分析程序
## 这是什么
计算给定时间序列的平均值、方差、范围分布、自协方差函数、自相关系数函数、偏自相关系数函数和使用混成检验方法算出卡方统计量的程序(源代码)。
## 如何使用
### 一,获取源代码
首先通过在命令提示符或者Linux终端克隆仓库的源代码,或者下载源代码的压缩包并解压。
#### 克隆源代码
这需要你的电脑上有安装好的git软件。克隆源代码方法是在命令提示符或者终端执行命令:
$ git clone --depth=1 [email protected]:az13js/satool.git
执行成功的话,在当前目录下会生成新的目录satool,里面包含程序的源代码。
#### 下载压缩包
按照下面的两步点击仓库网页,可以直接下载到包含源代码的压缩文件:
![图片,下载压缩包的方法](README_IMAGES/download_zip.jpg)
下载后解压。
### 二,编译源代码
这是使用Java 1.8编写和Maven 3.8.1管理的,首次使用需要先编译。假设你的电脑上已经安装好了Java和Maven,那么编译程序很简单,只需要用普通的方式激活Maven的编译过程即可(第一次使用Maven编译项目时,会从网络上下载项目依赖的包,下载过程可能需要一段时间):
$ mvn compile -Dencoding=UTF8
编译成功后可以直接执行`.class`文件(注:如果用Windows系统注意把命令中的`/`替换为`\`):
$ java -classpath target/classes cn.az13js.satool.App
命令行参数:
-i 数据文件名(必填)
-o 输出目录(必填)
-h 打印此帮助信息
-m 自由度,默认为长度的自然对数值向上取整
-d 统计概率分布时横坐标的精度
示例:program -i input.csv -o output_dir
如果想要,也可以激活Maven的package过程打包成`.jar`文件:
mvn package -Dencoding=utf8
然后通过指定生成的`.jar`文件执行(注:如果用Windows系统注意把命令中的`/`替换为`\`):
$ java -jar target/satool-0.3.jar
命令行参数:
-i 数据文件名(必填)
-o 输出目录(必填)
-h 打印此帮助信息
-m 自由度,默认为长度的自然对数值向上取整
-d 统计概率分布时横坐标的精度
示例:program -i input.csv -o output_dir
注:为了方便使用可以生成`.jar`后在环境变量包含的目录下新建一个脚本调用,例如:
可执行脚本`satool`(Linux):
#!/bin/bash
java -jar ~/satool/target/satool-0.3.jar $*
批处理脚本`satool.bat`(Windows):
@ECHO OFF
java -jar C:\Users\az13js\satool\target\satool-0.3.jar %*
然后直接输入`satool`并传入参数就行了:
$ satool -h
命令行参数:
-i 数据文件名(必填)
-o 输出目录(必填)
-h 打印此帮助信息
-m 自由度,默认为长度的自然对数值向上取整
-d 统计概率分布时横坐标的精度
示例:program -i input.csv -o output_dir
### 三,指定参数
不带参数执行程序可以查看帮助信息:
$ java -jar target/satool-0.3.jar
命令行参数:
-i 数据文件名(必填)
-o 输出目录(必填)
-h 打印此帮助信息
-m 自由度,默认为长度的自然对数值向上取整
-d 统计概率分布时横坐标的精度
示例:program -i input.csv -o output_dir
参数`-i`:用以指定分析的时间序列文件。时间序列文件是一个csv格式的文本,里面的第一列数据会被程序使用。数据必须全部都是数字,如果掺杂了中文或者英文的话程序执行会出现问题。也就是说需要注意第一行不要添加表头。
参数`-o`:指定一个目录用来给程序写入计算结果。目录必须存在,不存在会导致程序运行错误。
参数`-h`:只要有这个参数,程序就会输出帮助信息,效果和不带参数执行程序是一样的。
参数`-m`:可选的参数,指定混成检验时自由度的值。默认情况下它等于向上取整的ln(序列长度)。自由度需要大于0且小于时间序列长度,否则将提示错误消息并忽视输入的自由度。
参数`-d`:可选,统计概率分布时横坐标的精度。默认值为200,必须大于0。
## 程序执行结果
文件夹`files`内包含一个`input.csv`文件可以用来查看执行效果(如果使用Windows系统注意把`/`替换为`\`):
$ java -jar target/satool-0.3.jar -i files/input.csv -o files -m 20
"********** Basic info **********"
LEN=100
MIN=-3.273609668903302
MAX=3.9946403140242444
AVG=-0.00605672992982714
VAR=1.7717366348110508
"********** Advanced **********"
m=20
Q=56.98212904184351
“Basic info”里面的是基本信息,LEN是序列长度、MIN是序列最小值、MAX是序列最大值、AVG平均值、VAR是方差。“Advanced”里面的是混成检验结果,m是自由度,Q是卡方统计量,结合后面附带给出的卡方统计量表可以得知自由度等于20时出现Q=56.98左右的情况概率小于0.5%。
参数`-o`指定的文件夹`files`里生成程序分析结果文件若干个(输出内容保留小数点后9位):
- `sequence.csv`是程序读取到的时间序列的值,生成这个可以用于调试需要;
- `distribution.csv`是数据的概率分布大概的情况;
- `af.csv`是自协方差函数计算结果;
- `acf.csv`是自相关系数函数的计算结果;
- `pacf.csv`是偏自相关系数函数的计算结果;
- `q.csv`是计算出来的前20个自由度的卡方统计值和95%卡方统计值的对比结果。
文件`sequence.csv`第一列是序号,第二列是时间序列对应的值。
1.000000000,-0.439603640
2.000000000,0.225560653
3.000000000,2.778596490
4.000000000,-0.266824471
5.000000000,-1.072888992
......
文件`distribution.csv`含有两列,第一列是时间序列取值,第二列是取对应值附近时相对概率的大小。
-3.255439044,0.000181706
-3.219097794,0.000000000
-3.182756544,0.000000000
-3.146415294,0.000363412
-3.110074044,0.000000000
......
文件`af.csv`的内容是4列,第一列是自协方差的阶数,第二列是自协方差的值,第三列、第四列分别是负两倍标准差和正两倍标准差。
0.000000000,1.771736635,1.521175237,2.022298033
1.000000000,0.660994013,-0.178066232,0.178066232
2.000000000,0.065290021,-0.178972427,0.178972427
3.000000000,0.047757010,-0.179892600,0.179892600
4.000000000,0.331908970,-0.180827113,0.180827113
......
文件`acf.csv`有4列,第一列是自相关系数函数的阶数,第二列是自相关系数函数的值,第三列、第四列分别是负两倍标准差和正两倍标准差。
0.000000000,1.000000000,1.000000000,1.000000000
1.000000000,0.374902202,-0.209007438,0.189007438
2.000000000,0.036819169,-0.210000000,0.190000000
3.000000000,0.027291721,-0.211007563,0.191007563
4.000000000,0.187956449,-0.212030509,0.192030509
......
文件`pacf.csv`有5列,第一列是偏自相关系数函数的阶数,第二例是偏自相关系数函数值,第三列、第四列分别是负两倍标准差和正两倍标准差,最后一列是误差的方差。
1.000000000,0.373076901,-2.469927154,2.469927154,1.525135037
2.000000000,-0.118882310,-2.452411301,2.452411301,1.503580298
3.000000000,0.065898408,-2.447080587,2.447080587,1.497050850
4.000000000,0.185430598,-2.404641757,2.404641757,1.445575495
5.000000000,-0.039065830,-2.402806147,2.402806147,1.443369346
......
文件`q.csv`有3列,第一列是自由度,第二例是对应的自由度的卡方统计值,第三列是有95%把握的卡方统计值。
1.000000000,14.481080230,3.841000000
2.000000000,14.622178620,5.991000000
3.000000000,14.700501792,7.815000000
4.000000000,18.454062128
没有合适的资源?快使用搜索试试~ 我知道了~
计算给定时间序列的平均值、方差、概率分布(大致的分布)、自协方差函数.zip
共22个文件
jpg:7个
java:6个
gitignore:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 152 浏览量
2024-05-02
07:58:16
上传
评论
收藏 893KB ZIP 举报
温馨提示
时间序列分析 一个时间序列通常由4种要素组成:趋势、季节变动、循环波动和不规则波动。 趋势:是时间序列在长时期内呈现出来的持续向上或持续向下的变动。 季节变动:是时间序列在一年内重复出现的周期性波动。它是诸如气候条件、生产条件、节假日或人们的风俗习惯等各种因素影响的结果。 循环波动:是时间序列呈现出得非固定长度的周期性变动。循环波动的周期可能会持续一段时间,但与趋势不同,它不是朝着单一方向的持续变动,而是涨落相同的交替波动。 不规则波动:是时间序列中除去趋势、季节变动和周期波动之后的随机波动。不规则波动通常总是夹杂在时间序列中,致使时间序列产生一种波浪形或震荡式的变动。只含有随机波动的序列也称为平稳序列。 时间序列建模基本步骤是:①用观测、调查、统计、抽样等方法取得被观测系统时间序列动态数据。②根据动态数据作相关图,进行相关分析,求自相关函数。相关图能显示出变化的趋势和周期,并能发现跳点和拐点。跳点是指与其他数据不一致的观测值。如果跳点是正确的观测值,在建模时应考虑进去,如果是反常现象,则应把跳点调整到期望值。拐点则是指时间序列从上升趋势突然变为下降趋势的点。
资源推荐
资源详情
资源评论
收起资源包目录
计算给定时间序列的平均值、方差、概率分布(大致的分布)、自协方差函数.zip (22个子文件)
satool-master
README_IMAGES
q.csv.jpg 35KB
download_zip.jpg 23KB
acf.csv.jpg 43KB
af.csv.jpg 44KB
distribution.csv.jpg 59KB
pacf.csv.jpg 40KB
x2_table.png 788KB
sequence.csv.jpg 48KB
files
input.csv 2KB
.gitignore 23B
pom.xml 1KB
satool.sh 48B
satool.bat 45B
src
test
java
cn
az13js
satool
AppTest.java 644B
main
java
cn
az13js
satool
WriteACSVFile.java 3KB
App.java 10KB
Util.java 8KB
Distribution.java 2KB
CSV.java 3KB
LICENSE 1KB
.gitignore 19B
README.md 9KB
共 22 条
- 1
资源评论
野生的狒狒
- 粉丝: 2510
- 资源: 2146
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功