R语言编程学习之函数与模型:VAR与SVAR和爬虫(图)
R语言编程学习之函数与模型:VAR与SVAR和爬虫(图)
SVAR模型与VAR模型在模型设定形式上的区别是,VAR模型只包含变量的滞后项,而SVAR模型还包含了变量的当期项。SVAR模型还可以避免联立方程模型可能产生的偏倚问题。因此我们今天给出SVAR在R软件中的使用说明。需要特别说明的是,今天我们并非给出一个新的函数以简化SVAR参数设定,因为我们所使用的vars包中VAR()函数和SVAR函数的参数设定已经十分简洁了。
1. 函数说明
vars包(可以通过TaskView查看具有相似函数的其它包)中的函数很多,按照VAR的分析程序可以分为估计和检验两类函数:估计函数有VAR()和SVAR()函数;检验函数有VARselect()、irf()、fevd()等,分别用于模型选择、脉冲响应和方差分解。同时,vars包还提供了arch.test()、causality()、normality.test()、serial.test()、stability()等函数用于模型检验。
2. 案例与使用说明
#####data1包含内生变量,data2包含外生变量,下面直接给出了data1和data2的原始数据
#####VARselect()函数给出了不同滞后阶数模型的信息值,其中y设定内生变量数据集,exogen设定外生变量数据集,lag.max设定最大滞后阶数,我们设定为6,type设定确定性部分的类型,可选择的包括const截距,trend趋势,both同时包含截距和趋势,none不包含截距和趋势
> VARselect(y=data1,lag.max=6,type="const",exogen=data2)
$selection
AIC(n) HQ(n) SC(n) FPE(n)
4 4 4 5
$criteria
1 2 3 4 5 6
AIC(n) 9.588271 10.07365 7.637841 -Inf -Inf -Inf
HQ(n) 9.579220 10.06007 7.619740 -Inf -Inf -Inf
SC(n) 10.437931 11.34814 9.337162 -Inf -Inf -Inf
FPE(n) 16817.321879 41461.93286 12450.487405 NaN 0 0
#####VAR()函数给出了VAR的估计结果,我们将其保存在变量rvar中。VAR()函数设定的参数包括,y为内生变量,exogen为外生变量,ic为可选的信息准则,p为滞后阶数,type为确定性部分,其与VARselect()函数相同。我们通过names()函数查看rvar中VAR()的回归结果。由于VAR()保存为S3类型,可以直接通过$调用,如rvar$varresult调用第一个list。
> rvar=VAR(y=data1,p=3,type="const",exogen=data2,ic=c("AIC","SC","HQ","FPE"))
> names(rvar)
[1] "varresult" "datamat" "y" "type" "p" "K"
[7] "obs" "totobs" "restrictions" "call"
#####SVAR()函数给出了SVAR的估计结果,我们将其保存在变量rsvar中。在使用SVAR估计之前,我们需要定义A矩阵,即模型内生变量的当期影响。需要说明的是,由于内生变量方程中不可能与自身的当期值相关,因此A矩阵的对角线全部为1,其它为带估计参数。我们首先定义了一个全部为NA的3*3矩阵(3个内生变量),然后将对角线元素全部设定为1,保存在amat变量中。SVAR()需要设置的参数包括已经回归的VAR()对象,即上一步中的rvar,定义的A矩阵,即amat,估计方法选择的是直接使用极大似然估计“direct”。同样的,我们可以通过names()查看估计结果的名称,其中包括A矩阵和B矩阵的系数及系数标准误。SVAR的关键在于Amat矩阵,如果已经知道某些变量不存在当期相关,则可以通过amat[i,j]=0将该元素固定。
> amat=matrix(NA,3,3)
> amat[1,1]=amat[2,2]=amat[3,3]=1
> rsvar=SVAR(x=rvar,estmethod="direct",Amat=amat,Bmat=NULL,)
#####irf()和fevd()函数的设置相似,需要设置VAR()或者SVAR()估计对象,我们使用的是保存在rvar中的VAR()估计对象。irf()函数需要设定冲击变量和相应变量的名称,我们可以通过names()函数查看内生变量数据集中的变量名,n.ahead设定冲击响应的时期数,如果不设置则默认全部内生变量都进行分析。fevd()的参数设置与此一致。注意,irf()和fevd()返回的是脉冲响应和方差分解的数值,而不是图形。我们通过plot()函数简单的呈现。
> rirf=irf(rvar,impulse="m1",response="cpii",n.ahead=20)
> names(rirf)
[1] "irf" "Lower" "Upper" "response" "impulse" "ortho" "cumulative"
[8] "runs" "ci" "boot" "model"
> rfevd=fevd(rvar,n.ahead=20)
> names(rfevd)
[1] "m1" "gdp" "cpii"
> plot(rirf$irf$m1,type="l")
#####因果分析函数、异方差检验函数和正态性检验函数均是以VAR()或者SVAR()的回归结果为基础,因此我们以保存了VAR()回归结果的变量rvar尽心说明。
> causality(rvar)
> arch.test(rvar,lags.single=5,lags.multi=2)
> normality.test(rvar)
最后说明,在vars包中也包含进行VEC和SVEC分析的函数,使用方法与VAR和SVAR一样。钢铁是怎样炼成的(http://www.simayi.net/duhougan/6680.html)读后感400字心得体会,同时,MTS包中也提供了进行VAR、SVAR和VARX等分析的函数。进行多变量自回归分析的函数包可以在TaskView中进行查看。
R语言 函数与模型:爬虫
网络数据的价值不言而喻。越来越多的研究开始利用各种程序语言从网络爬取数据。爬取网页数据有两个难题——解析网页和文本提取。对“规矩”网页进行解析是很简单的事情:在edge浏览器中选择F12开发人员工具或者在Google Chrome中选择page view source都可以直接浏览网页代码。R中有现存的包进行网页解析,我推荐的是rvest包,因为不需要进行太多参数设置即可完成工作。配合管道函数%>%可以使网页结点解析更加简单。我们的任务就是在一堆代码中找到需要的数据,并查看数据前后的结点,<>和</>表示结点的开始和结束(在爬取数据的时候甚至都不需要知道结点符号表示的含义)。爬取数据的难点在于对解析出来的字符对象进行文本分割和提取,这需要爬虫的作者(使用爬虫的人)掌握基本的文本分析技巧。我的经验是,直接对字符进行定位,并根据起止位置分割。
爬虫的基本框架是:
网页解析
结点提取
字符串清洗和分割
提取并保存目标文本
翻页(循环)
R语言编程学习之函数与模型:VAR与SVAR和爬虫(图)相关推荐
- R语言编程入门--replicate()函数比较有意思!
I. 导论 简单来讲,编程是借助计算机来解决某个问题.学习编程的就是训练我们解决问题的能力.有这样一种说法:在未来,不会编程的人即是文盲. 1 为什么要学习R编程 大部分情况下解决某些问题还需要依赖一 ...
- R语言实现SOM(自组织映射)模型(三个函数包+代码)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- SOM自组织映射神经网络模型 的R语言实现 笔 ...
- r语言 siar 代码_平滑转换自回归(STAR)模型的R语言编程实现详解
总体讲,ST(Smooth transition)模型,这块的code混乱的比较狗血,文献中的做法也是千奇百怪, 单变量的有 :STAR, LSTAR, ESTAR, 多变量的有:STVAR, LST ...
- R语言使用rpart包构建决策树模型、使用prune函数进行树的剪枝、交叉验证预防过拟合、plotcp可视化复杂度、rpart.plot包可视化决策树、使用table函数计算混淆矩阵评估分类模型性能
R语言使用rpart包构建决策树模型.使用prune函数进行树的剪枝.使用10折交叉验证选择预测误差最低的树来预防过拟合.plotcp可视化决策树复杂度.rpart.plot包可视化最终决策树.使用t ...
- r语言编程基础_这项免费的统计编程课程仅需2个小时即可学习R编程语言基础知识
r语言编程基础 Learn the R programming language in this course from Barton Poulson of datalab.cc. This is a ...
- R语言survival包clogit函数构建条件logistic回归模型、summary函数查看模型汇总统计信息、通过似然比检验分析结果判断模型有无统计学意义
R语言survival包clogit函数构建条件logistic回归模型.summary函数查看模型汇总统计信息.通过似然比检验分析结果判断模型有无统计学意义 目录
- R语言使用glm构建logistic回归模型,构建多个协变量和分组变量之间的关系模型进行倾向性评分计算、使用predict函数预测倾向性评分并将结果整合到dataframe中
R语言使用glm构建logistic回归模型,构建多个协变量和分组变量之间的关系模型进行倾向性评分计算.估计(Propensity score).使用predict函数预测倾向性评分并将结果整合到da ...
- R语言survival包coxph函数构建cox回归模型、ggrisk包ggrisk函数可视化Cox回归的风险评分图、使用风险得分的中位数计算最佳截断值cutoff(基于LIRI基因数据集)
R语言survival包coxph函数构建cox回归模型.ggrisk包ggrisk函数可视化Cox回归的风险评分图.使用风险得分的中位数计算最佳截断值cutoff(基于LIRI基因数据集) 目录
- R语言编程 第一讲 变量与赋值
R语言编程 第一讲 变量与赋值 R语言的变量名 赋值符号 <- 与 = 的区别 赋值符号 <- 的更多细节 Copy-on-Modify与Modify-in-Place 函数调用 列表 数 ...
最新文章
- 解读Python的命名空间
- CMD 输入中文看不到输入法的解决方法
- etcdctl命令查询etcd信息
- 日常生活小技巧 -- 玩转 PDF
- luogu4407 [JSOI2009]电子字典 字符串hash + hash表
- hiredis(Synchronous API)
- python爬取京东手机参数_python抓取京东小米8手机配置信息
- 2017-09-16
- [经验教程]百度Robots检测:您的服务器配置有误,百度暂时无法连接您的服务器,请检查服务器的设置,确保您网站的服务器能被正常访问。
- matlab如何定义dmod函数,matlab中的dmod函数
- 天选三超频实战/适用于所有AMD笔记本的全面超频指南:CPU频率,功耗墙,Infinity Fabric总线(FCLK),内存时序,CPU电压,核显频率,核显电压......
- 微分积分电路及其波形转换
- 专业心理性格测试软件,专业心理性格测试题目
- 数学中考计算机的应用,信息技术在初中数学教学中的应用
- NIST Cybersecurity White Paper 2021
- Linux下使用 shell 脚本实现ftp文件下载
- 内网渗透(十三)之内网信息收集-收集域环境中的基本信息
- 2021-11-06关节空间路径规划和算法(采样、搜索)或者末端轨迹优化?
- Android 如何实现google天气
- 工业基础类IFC—提取模型结构树
热门文章
- 2021电赛F题-智能送药小车-国一
- 音响放大器设计与实现
- (九)Java版Spring Cloud B2B2C o2o鸿鹄云商平台--平台管理通用设置
- 转:巩固mysql 字段的显示宽度
- Introduction写作常用句式
- 263海外邮箱服务器设置,263企业G邮局海外服务器
- Spring 条件组件注解:`@Conditional` 与 `@ConditionalOnBean`
- 客户机是如何用Telnet访问交换机
- 稳定快速的算法,并且支持多种用户界面TOSCA V9.0
- 浏览器中直接打开apk