目录
我使用的是:R+Rstudio

读取数据(read.table),数据位置("F:/笔记/Rstudio/A1_7.csv")

首先找到文件

点击上方文件夹获取文件位置
复制文件位置“F:\笔记\Rstudio”后将“\”改为“/”,在后面加上文件名
改变后:"F:/笔记/Rstudio/A1_7.csv"
sep=","(空格位置用“,”代替)
header=T(数据第一行是标题,不属于数据)
data(将数据赋值给data)
data<-read.table("F:/笔记/Rstudio/A1_7.csv",sep=",",header=T) #data数据
data$number(取数据data中的名字为number的一列,依据数据具体名称来定,是需要研究的部分)
将提取的一列变量"x"

在这个窗口可以看见
x<-ts(data$number,start=1900)
#ts时间序列 x时间序列未知量
绘制时间序列图用plot()
研究变量为:x
main:主标题
xlab:x轴变量名称
ylab:y轴变量名称
xlim:x轴取值范围
ylim:y轴取值范围
plot(
x,
main = "1900-1998年全球7级以上地震发生次数",
xlab = "时间",ylab="7级以上地震发生次数",
xlim = c(1900,1998),ylim=c(0,50)
)
绘图如下:

可以通过col=改变线的颜色,可以是1、2、3、4代表黑、红、绿、蓝,或是直接打出颜色名称
例如:blue,yellow,grey,lavender
根据喜好搭配
pch=节点的形状(从0~25,每个数字对应不同形状)

type参数用来控制所生成散点图的类型,有如下几个选项:
type=“p”表示绘制单独的点
type=“l”表示绘制点连成的折线
type=“b”表示有线连接的点
type=“o”表示将点绘在线上
type=“h”表示从点到x轴的垂线
type=“s”表示阶梯式图
type=“n”表示不绘制图
plot(
x,
main = "1900-1998年全球7级以上地震发生次数",
xlab = "时间",ylab="7级以上地震发生次数",
xlim = c(1900,1998),ylim=c(0,50),
type="o",pch=24,col=5
)

包需要提前下载才可以读取
library(fBasics) #加载包
library(fUnitRoots)
library(forecast)
下载包的流程:
install.packages(fBasics)
运行这个代码就可以了,不同包更改括号里的内容即可
for(i in 0:1) print(
adfTest(x,#adf检验,单位根检验
lag=i,
type="nc",
title = "7级以上地震发生次数单位根检验"))
for(i in 0:3) print(
adfTest(x,
lag=i,
type="c",
title = "7级以上地震发生次数单位根检验"))
for(i in 0:3) print(
adfTest(x,
lag=i,
type="ct",
title = "7级以上地震发生次数单位根检验"))
adfTest(x)
代码运行结果:
> for(i in 0:1) print(
+ adfTest(x,#adf检验,单位根检验
+ lag=i,
+ type="nc",
+ title = "7级以上地震发生次数单位根检验"))
Title:
7级以上地震发生次数单位根检验
Test Results:
PARAMETER:
Lag Order: 0
STATISTIC:
Dickey-Fuller: -1.5845
P VALUE:
0.1081
Description:
Mon Jan 9 15:40:36 2023 by user: Lenovo
Title:
7级以上地震发生次数单位根检验
Test Results:
PARAMETER:
Lag Order: 1
STATISTIC:
Dickey-Fuller: -1.0451
P VALUE:
0.28
Description:
Mon Jan 9 15:40:36 2023 by user: Lenovo
> for(i in 0:3) print(
+ adfTest(x,
+ lag=i,
+ type="c",
+ title = "7级以上地震发生次数单位根检验"))
Title:
7级以上地震发生次数单位根检验
Test Results:
PARAMETER:
Lag Order: 0
STATISTIC:
Dickey-Fuller: -5.354
P VALUE:
0.01
Description:
Mon Jan 9 15:40:36 2023 by user: Lenovo
Title:
7级以上地震发生次数单位根检验
Test Results:
PARAMETER:
Lag Order: 1
STATISTIC:
Dickey-Fuller: -3.9179
P VALUE:
0.01
Description:
Mon Jan 9 15:40:36 2023 by user: LenovoTitle:
7级以上地震发生次数单位根检验
Test Results:
PARAMETER:
Lag Order: 2
STATISTIC:
Dickey-Fuller: -3.1832
P VALUE:
0.02451
Description:
Mon Jan 9 15:40:36 2023 by user: Lenovo
Title:
7级以上地震发生次数单位根检验
Test Results:
PARAMETER:
Lag Order: 3
STATISTIC:
Dickey-Fuller: -2.9558
P VALUE:
0.04427
Description:
Mon Jan 9 15:40:36 2023 by user: Lenovo
Warning messages:
1: In adfTest(x, lag = i, type = "c", title = "7级以上地震发生次数单位根检验") :
p-value smaller than printed p-value
2: In adfTest(x, lag = i, type = "c", title = "7级以上地震发生次数单位根检验") :
p-value smaller than printed p-value
> for(i in 0:3) print(
+ adfTest(x,
+ lag=i,
+ type="ct",
+ title = "7级以上地震发生次数单位根检验"))
Title:
7级以上地震发生次数单位根检验
Test Results:
PARAMETER:
Lag Order: 0
STATISTIC:
Dickey-Fuller: -5.5514
P VALUE:
0.01
Description:
Mon Jan 9 15:40:36 2023 by user: Lenovo
Title:
7级以上地震发生次数单位根检验
Test Results:
PARAMETER:
Lag Order: 1
STATISTIC:
Dickey-Fuller: -4.1418
P VALUE:
0.01
Description:
Mon Jan 9 15:40:36 2023 by user: Lenovo
Title:
7级以上地震发生次数单位根检验
Test Results:
PARAMETER:
Lag Order: 2
STATISTIC:
Dickey-Fuller: -3.5099
P VALUE:
0.04484
Description:
Mon Jan 9 15:40:36 2023 by user: Lenovo
Title:
7级以上地震发生次数单位根检验
Test Results:
PARAMETER:
Lag Order: 3
STATISTIC:
Dickey-Fuller: -3.3716
P VALUE:
0.06336
Description:
Mon Jan 9 15:40:36 2023 by user: Lenovo
Warning messages:
1: In adfTest(x, lag = i, type = "ct", title = "7级以上地震发生次数单位根检验") :
p-value smaller than printed p-value
2: In adfTest(x, lag = i, type = "ct", title = "7级以上地震发生次数单位根检验") :
p-value smaller than printed p-value
> adfTest(x)
Title:
Augmented Dickey-Fuller Test
Test Results:
PARAMETER:
Lag Order: 1
STATISTIC:
Dickey-Fuller: -1.0451
P VALUE:
0.28
Description:
Mon Jan 9 15:40:36 2023 by user: Lenovo
从代码运行结果里找PVALUE的数值,数值大于0.05就是拒绝原假设,单位根不存在,序列平稳。
par(mfrow=c(2,1))#分画布2行1列
acf(x) #自相关
pacf(x) #偏自相关

acf自相关(上) pacf偏自相关(下)
观察两图,发现自相关拖尾,偏自相关1阶截尾,预测模型为AR模型
for(k in 1:2) print( #白噪声检验,分析前后各一次
Box.test(x,
lag=6*k, #type和l等价
type="Ljung-Box")) #服从卡方分布
#x-squared为卡方分布值,查表的值
#df为卡方检验自由度
#p-value 为p值
#若想显著性检验,检验目标为残差,验证残差是否为白噪声,为白噪声好
代码运行结果:

观察p-value的值,两值均小于0.05,拒绝原假设,序列非白噪声,序列有继续研究的价值。
x.fit<-arima(x,order=c(1,0,0),m="ML");x.fit#平稳序列模型
运行结果:

图1
根据自相关拖尾,偏相关1阶截尾,模拟AR(1)
x.fit适合x的一个模型
ML为最大似然估计法 ,CSS条件最小估计法 ,ML-CSS两种混合法
中间位置0固定 (差分),若是MA(1)则c(0,0,1)
arima(x=序列x,)
Coefficients系数
ar1,模型AR系数
intercept截距miu
Xt的一个公式
s.e.估计量的标准差
sigma^2 estimated as 某某的估计是
log likelihood 极大似然对数值
aic最小信息准则,越小越好(多个模型间的比较)
re<-x.fit$residuals #残差re
for(k in 1:2) print(
Box.test(re, #残差
lag=6*k,
type="Ljung-Box"))
qt(0.975,97)
t1=0.5432/0.0840;t1
t2=19.8911/1.3179;t2 #负数看左尾,正数看右尾
t1,t2的值可以对应上图1,不同模型对应输入,是一个2倍法则
代码运行结果:

观察p-value的值,两值均大于0.05,接受原假设,残差序列为白噪声序列,且t1,t2均大于1.984723,(2倍法则)说明拟合模型有效。
forecast为预测函数
h=_为预测的年数,h=5就是预测未来五年
xfore<-forecast(x.fit,h=5);xfore
#forecast预测
plot(xfore,
col=2)
#出现的图形,蓝色的线是预测值,线两侧阴影为85%,95%的置信区间
代码运行结果:

未来五年置信区间

阴影部分为预测区间
以上关于时间序列图的绘制即检验、预测就完成了。
感谢大家阅读,如果方便的话给个赞同,谢谢!!!
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
我需要检查DateTime是否采用有效的ISO8601格式。喜欢:#iso8601?我检查了ruby是否有特定方法,但没有找到。目前我正在使用date.iso8601==date来检查这个。有什么好的方法吗?编辑解释我的环境,并改变问题的范围。因此,我的项目将使用jsapiFullCalendar,这就是我需要iso8601字符串格式的原因。我想知道更好或正确的方法是什么,以正确的格式将日期保存在数据库中,或者让ActiveRecord完成它们的工作并在我需要时间信息时对其进行操作。 最佳答案 我不太明白你的问题。我假设您想检查
这个问题在这里已经有了答案:Railsformattingdate(4个答案)关闭4年前。我想格式化Time.Now函数以显示YYYY-MM-DDHH:MM:SS而不是:“2018-03-0909:47:19+0000”该函数需要放在时间中.现在功能。require‘roo’require‘roo-xls’require‘byebug’file_name=ARGV.first||“Template.xlsx”excel_file=Roo::Spreadsheet.open(“./#{file_name}“,extension::xlsx)xml=Nokogiri::XML::Build
几个月前,我读了一篇关于rubygem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:
我正在尝试解析一个CSV文件并使用SQL命令自动为其创建一个表。CSV中的第一行给出了列标题。但我需要推断每个列的类型。Ruby中是否有任何函数可以找到每个字段中内容的类型。例如,CSV行:"12012","Test","1233.22","12:21:22","10/10/2009"应该产生像这样的类型['integer','string','float','time','date']谢谢! 最佳答案 require'time'defto_something(str)if(num=Integer(str)rescueFloat(s
给定一个复杂的对象层次结构,幸运的是它不包含循环引用,我如何实现支持各种格式的序列化?我不是来讨论实际实现的。相反,我正在寻找可能会派上用场的设计模式提示。更准确地说:我正在使用Ruby,我想解析XML和JSON数据以构建复杂的对象层次结构。此外,应该可以将该层次结构序列化为JSON、XML和可能的HTML。我可以为此使用Builder模式吗?在任何提到的情况下,我都有某种结构化数据-无论是在内存中还是文本中-我想用它来构建其他东西。我认为将序列化逻辑与实际业务逻辑分开会很好,这样我以后就可以轻松支持多种XML格式。 最佳答案 我最
?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------
嗨~大家好,这里是可莉!今天给大家带来的是7个C语言的经典基础代码~那一起往下看下去把【程序一】打印100到200之间的素数#includeintmain(){ inti; for(i=100;i 【程序二】输出乘法口诀表#includeintmain(){inti;for(i=1;i 【程序三】判断1000年---2000年之间的闰年#includeintmain(){intyear;for(year=1000;year 【程序四】给定两个整形变量的值,将两个值的内容进行交换。这里提供两种方法来进行交换,第一种为创建临时变量来进行交换,第二种是不创建临时变量而直接进行交换。1.创建临时变量来
我正在尝试查询我的Rails数据库(Postgres)中的购买表,我想查询时间范围。例如,我想知道在所有日期的下午2点到3点之间进行了多少次购买。此表中有一个created_at列,但我不知道如何在不搜索特定日期的情况下完成此操作。我试过:Purchases.where("created_atBETWEEN?and?",Time.now-1.hour,Time.now)但这最终只会搜索今天与那些时间的日期。 最佳答案 您需要使用PostgreSQL'sdate_part/extractfunction从created_at中提取小时
因为我现在正在做一些时间测量,我想知道是否可以在不使用Benchmark类或命令行实用程序time的情况下测量用户时间或系统时间。使用Time类只显示挂钟时间,而不显示系统和用户时间,但是我正在寻找具有相同灵active的解决方案,例如time=TimeUtility.now#somecodeuser,system,real=TimeUtility.now-time原因是我有点不喜欢Benchmark,因为它不能只返回数字(编辑:我错了-它可以。请参阅下面的答案。)。当然,我可以解析输出,但感觉不对。*NIX系统的time实用程序也应该可以解决我的问题,但我想知道是否已经在Ruby中实