R单元笔记

U1

软件安装、数据输入、外部文件导入、变换、子集、插值、导出

> sum(1,2,3
+ )
[1] 6

> sum(1,2,3)
[1] 6

> x=1;y=2;x+y
[1] 3

> {x=1
+ y=2
+ x+y
+ }
[1] 3

> x<-3
> x
[1] 3
直接录入
#行输入
> price=c(101,82,66,35,31,7)    #调用c函数
> price=ts(price,start=c(2005,1),frequency=12)
    #变量命名为 price,start选项指定的起始读入时间
    #frequency选项指定序列每年读入的数据频率
> price
     Jan Feb Mar Apr May Jun
2005 101  82  66  35  31   7

#列输入
> price=scan()    #调用scan函数
1: 101
2: 82
3: 66
4: 35
5: 31
6: 7
7: 
Read 6 items
> price=ts(price,start=c(2005,1),frequency=12)
> price
     Jan Feb Mar Apr May Jun
2005 101  82  66  35  31   7
外部数据文件转换
> x=read.table("E:/例题data/file1.csv",sep=",",header=T)
    #sep指定制表分隔符,如果是txt格式,sep=“\t”,即文件以制表符分隔,如果是csv格式,sep=“,”,即以逗号分隔
    #header指定第一行是否包含变量名,header=TURE(或简写为“T”)表示要转换的文本文件第一行包含变量名,这是系统指定的默认值,header=FALSE(或简写为“F”)表示改文件第一行不包含变量名
> x
   Year yield
1  1884  15.2
2  1885  16.9
。。。
> x$yield    #单独考察这两个变量的特征
 [1] 15.2 16.9 15.3 14.9 15.7 15.1 16.7 16.3 16.5 13.3 16.5 15.0 15.9
[14] 15.5 16.9 16.4 14.9 14.5 16.6 15.1 14.6 16.0 16.8 16.8 15.5 17.3
[27] 15.5 15.5 14.2 15.8 15.7 14.1 14.8 14.4 15.6 13.9 14.7 14.3 14.0
[40] 14.5 15.4 15.3 16.0 16.4 17.2 17.8 14.4 15.0 16.0 16.8 16.9 16.6
[53] 16.2 14.0 18.1 17.5
>

数据变换

> y=log(x$yield)
> y
 [1] 2.721295 2.827314 2.727853 2.701361 2.753661 2.714695 2.815409
 [8] 2.791165 2.803360 2.587764 2.803360 2.708050 2.766319 2.740840
[15] 2.827314 2.797281 2.701361 2.674149 2.809403 2.714695 2.681022
[22] 2.772589 2.821379 2.821379 2.740840 2.850707 2.740840 2.740840
[29] 2.653242 2.760010 2.753661 2.646175 2.694627 2.667228 2.747271
[36] 2.631889 2.687847 2.660260 2.639057 2.674149 2.734368 2.727853
[43] 2.772589 2.797281 2.844909 2.879198 2.667228 2.708050 2.772589
[50] 2.821379 2.827314 2.809403 2.785011 2.639057 2.895912 2.862201

数据导出

> ln_yield=log(x$yield)
> x_new=data.frame(x,ln_yield)
> write.table(x_new,file="E:/例题data/file1.csv",sep=",",row.names=F)

U2

时序图
> yield=c(15.2,16.9,15.3,14.9,15.7,15.1,16.7)
> yield=ts(yield,start=1884)
> plot(yield)

点线结构参数
散点图
plot(yield,type="p")

点线图
plot(yield,type="o")

符号参数
> plot(yield,type="o",pch=17)

符号参数

连线类型参数
> plot(yield,lty=2)

线的宽度参数
> plot(yield,lwd=2)

颜色参数
> plot(yield,col=3)


添加文本
> plot(yield,main="1884-1890年英格兰和威尔士地区小麦平均亩产量",xlab="年份",ylab="亩产量")

指定坐标轴范围
#指定输出横轴范围
> plot(yield,xlim=c(1886,1890))

#指定输出纵轴范围
> plot(yield,ylim=c(15,16))

添加参考线
#添加一条垂线
> plot(yield)
> abline(v=1887,lty=2)

#添加多条垂直参考线
> plot(yield)
> abline(v=c(1885,1889),lty=2)

#添加水平线
> plot(yield)
> abline(h=c(15.5,16.5),lty=2)

绘制自相关图
> acf(yield)
    #acf(x,lag=)    x:变量名;lag:延迟阶数,若用户不特殊指定的话,系统会根据序列长度自动指定延迟阶数

虚线为自相关系数2倍标准差位置

例2.1 时序图

> sha=read.table("E:/例题data/file4.csv",sep=",",header=T)
> output=ts(sha$output,start=1964)
> plot(output)

自相关图
> sha=read.table("E:/例题data/file4.csv",sep=",",header=T)
> output=ts(sha$output,start=1964)
> plot(output)
> acf(output,lag=25)

习题2.5

https://wenku.baidu.com/view/984cefabfab069dc50220176.html

第一题第二问matlab程序
>> clear all;close all;
>> X_t=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20];%时间序列值
>> k=6; %拟计算的自相关延迟期数值
>> rou_hat=zeros(k,1); %为拟计算的中阶自相关系数预留数组空间
>> Time_mean=mean(X_t); %计算时间序列值的样本均值
>> 
>> %计算自相关系数计算公式的分母部分
>> SST=0;
>> for t=1:20
SST=SST+(X_t(t)-Time_mean)^2;
end
>> 
>> %计算对应k阶自相关系数
>> for i=1:k
S=0;
for t=1:20-i
S=S+(X_t(t)-Time_mean)*(X_t(t+i)-Time_mean);%计算公式分子部分
end
rou_hat(i,1)=S/SST;
end
>> rou_hat=rou_hat %输出相关系数值

rou_hat =

    0.8500
    0.7015
    0.5560
    0.4150
    0.2801
    0.1526

U3

eg:3-1 观察如下四个AR模型的平稳性

> x1<-arima.sim(n=100,list(ar=0.8))
> e<-rnorm(100)
> ts.plot(x1)

> x2<-filter(e,filter=-1.1,method="recursive")
> e<-rnorm(100)
> ts.plot(x2)

> x3<-arima.sim(n=100,list(ar=c(1,-0.5)))
> ts.plot(x3)

> x4<-filter(e,filter=c(1,0.5),method="recursive")
> ts.plot(x4)

> x1<-arima.sim(n=100,list(ar=-1.1))
Error in arima.sim(n = 100, list(ar = -1.1)) : 模型的'ar'部分不平穩
> x3<-arima.sim(n=100,list(ar=c(1,0.5)))
Error in arima.sim(n = 100, list(ar = c(1, 0.5))) : 模型的'ar'部分不平穩

笔记:https://zhuanlan.zhihu.com/p/25713408
rnorm函数:https://blog.csdn.net/OYY_90/article/details/82226334
arima.sim()函数:https://www.jianshu.com/p/5691621e4ac5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值