楼主: adict
5493 9

[问答] 一段R程序的详细解释。。。。 [推广有奖]

  • 3关注
  • 0粉丝

博士生

12%

还不是VIP/贵宾

-

威望
0
论坛币
2768 个
通用积分
0
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
2165 点
帖子
112
精华
0
在线时间
341 小时
注册时间
2009-8-11
最后登录
2021-8-16

楼主
adict 发表于 2013-4-11 10:03:39 |AI写论文
300论坛币
俺是R语言白丁。请帮忙解释下面一段R程序,比如:哪些变量,关系,每个命令和参数的含义,语句的含义和结果等等。越详细越好。。对解释最佳者,给予300论坛币略表心意。
另外,附上相关数据供参考。。
------------------------------------------------------------------------------
gdp <- read.csv("GDP P chain volume flat.csv",
na.strings="..", check.names=TRUE)
# Create shades of colors between blue and red for labels
shades <- colorRampPalette(c("blue", "red"))(nrow(gdp))
# Exploration of wholesale and retail trade - extract trend series
wholesale.d <- decompose(ts(gdp$Wholesale.Trade, frequency=4, start=c(1987,2)),
type="multiplicative")
wholesale <- wholesale.d$trend
retail.d <- decompose(ts(gdp$Retail.Trade, frequency=4, start=c(1987,2)),
type="multiplicative")
retail <- retail.d$trend
# Exploratory plot 1
plot(wholesale,retail, bty="l")
# Exploratory plot 2
plot(cbind(wholesale,retail), bty="l")
# Main plot
library(MASS)
eqscplot(diff(wholesale), diff(retail), bty="l", cex=.5, col=c("grey60", shades),
xlab="Growth since last quarter in wholesale contribution to GDP, $m",
ylab="Growth since last quarter in retail contribution to GDP, $m")
grid(col="grey90", lty=1)
# Draw diagonal line showing when the two variables are equal
abline(0,1)
# Draw line showing regression
abline(lm(diff(retail) ~ diff(wholesale), na.action="na.omit"), lty=2)



GDP P chain volume flat.rar
下载链接: https://bbs.pinggu.org/a-1305157.html

7.66 KB

本附件包括:

  • GDP P chain volume flat.csv

最佳答案

求证1加1 查看完整内容

一句一句来吧,第一句read.csv,用来读取数据csv格式的,如果是其他格式的,那么点后面的内容也要变,如读txt就用read.table 第二句,是用来调色,colorRampPalette是一个调色函数 第三句,是时间序列的分解,l即趋势项、季节项、随机项,用滑动平均的方法,并把结果复制到wholesale.d(是个列表)中 第四句,读取列表中的trend(趋势项)部分 后面的语句都是用来作图的,解释一下参数吧。 第五句wholesale和retail分别是画图 ...
关键词:R程序 相关数据 0论坛币 论坛币 GDP 程序

回帖推荐

求证1加1 发表于2楼  查看完整内容

一句一句来吧,第一句read.csv,用来读取数据csv格式的,如果是其他格式的,那么点后面的内容也要变,如读txt就用read.table 第二句,是用来调色,colorRampPalette是一个调色函数 第三句,是时间序列的分解,l即趋势项、季节项、随机项,用滑动平均的方法,并把结果复制到wholesale.d(是个列表)中 第四句,读取列表中的trend(趋势项)部分 后面的语句都是用来作图的,解释一下参数吧。 第五句wholesale和retail分别是画图 ...

求证1加1 发表于5楼  查看完整内容

好的。 第一个问题,这个问题其实跟R无关,属于时间序列的分解,lz理解基本正确。 第二个问题,其实那个plot意义不大,注释里也说了,只是大概看下效果,而且后面调用了MASS包里高级绘图函数,所以并没有在你那张图上显示出来 第三个问题,那条命令只是为了画一条y=x的线而已,即那条实线 第四个问题,左边是因变量右边是自变量,画一下回归线,lz可以看看lm函数的help 最后一个问题,你这个数据是针对时间序列的,那么必然会 ...

沙发
求证1加1 发表于 2013-4-11 10:03:40
一句一句来吧,第一句read.csv,用来读取数据csv格式的,如果是其他格式的,那么点后面的内容也要变,如读txt就用read.table
第二句,是用来调色,colorRampPalette是一个调色函数
第三句,是时间序列的分解,l即趋势项、季节项、随机项,用滑动平均的方法,并把结果复制到wholesale.d(是个列表)中
第四句,读取列表中的trend(趋势项)部分
后面的语句都是用来作图的,解释一下参数吧。
第五句wholesale和retail分别是画图的x,y,bty是用于设置图形边框的样式,可选的参数有o, l, 7, c, u,n,这里l其实就是最正常的那种。lz可以自己尝试一下,印象会更深刻。
第六句就不用多说了吧,同理可得,cbind解释一下,就是矩阵的合并,cbind是按列合并,即横向合并,对应的rbind是按行合并。
第七句,加载MASS包,因为eqscplot函数在MASS包中,lz要确认已安装该包
第八句,eqscplot也是用来画图的,一般用来画散点图吧,里面的参数大多继承了plot的,cex指放大的倍数,col设置颜色,用到了之前所调的颜色,xlab,ylab用于给坐标轴命名。
第九句,grid用来添加网格,lty用于设置线条样式,等于1就是指画实线,其余选项:0 不画线,2 虚线,3 点线,4点划线,5 长划线,6 点长划线
最后两句,abline是一个低级绘图函数,用于画线,前提是之前必须调用plot等高级绘图函数。代码注释里也已经说了,用来画回归曲线的。
解释完毕,希望lz有用。
已有 3 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
adict + 1 + 1 + 1 分析的有道理
admin_kefu + 100 热心帮助其他会员
qoiqpwqr + 20 + 1 + 1 + 1 热心帮助其他会员

总评分: 经验 + 20  论坛币 + 100  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

个人主页,欢迎订阅http://chenangliu.info/

藤椅
adict 发表于 2013-4-11 16:29:33
求证1加1 发表于 2013-4-11 10:31
一句一句来吧,第一句read.csv,用来读取数据csv格式的,如果是其他格式的,那么点后面的内容也要变,如读t ...
非常感谢回复,很专业,佩服。
可俺还不是太明白,烦请进一步说明下:
1)详细些说明下“时间序列的分解”是如何做的?你说用“滑动平均”是不是说“moving average”?它是把变量wholesale.trade 做按季度的“滑动平均”了吗?时间序列里“gdp$Wholesale.Trade”是怎么回事(gdp 和wholesale.trade 分别是变量)?存到wholesale.d 里的trend 变量是怎样得到的?或者说,存到“wholesale”里的变量是什么?同样,对retail 也是这个问题。
2)"cbind(wholesale,retail)"把wholesale 和retail按列进行合并的含义,目的或表现是啥?
3)“diagonal line showing when the two variables are equal”是说对角线焦点两个变量相等吗?wholesale 和 retail 是x,y,的话,坐标轴上的标尺表示什么?交点说明什么?
4)最后的回归是什么对什么回归?“abline(lm(diff(retail) ~ diff(wholesale), na.action="na.omit"), lty=2)
”这句话能否详细解释下??
5)另外,将画出的图附上,如方便麻烦就图解释下。 比如 2008, 2002 等线段说明什么?

望不吝赐教。

板凳
adict 发表于 2013-4-11 16:30:31
图片在这里。。

11-04-2013 5-51-59 PM.jpg (138.17 KB)

11-04-2013 5-51-59 PM.jpg

报纸
求证1加1 发表于 2013-4-11 20:44:31
好的。
第一个问题,这个问题其实跟R无关,属于时间序列的分解,lz理解基本正确。
第二个问题,其实那个plot意义不大,注释里也说了,只是大概看下效果,而且后面调用了MASS包里高级绘图函数,所以并没有在你那张图上显示出来
第三个问题,那条命令只是为了画一条y=x的线而已,即那条实线
第四个问题,左边是因变量右边是自变量,画一下回归线,lz可以看看lm函数的help
最后一个问题,你这个数据是针对时间序列的,那么必然会有时间标度,所以那个就是代表时间
回答完毕,希望对lz有用。
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
adict + 1 + 1 + 1 观点很有启发

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

个人主页,欢迎订阅http://chenangliu.info/

地板
adict 发表于 2013-4-12 09:35:17
求证1加1 发表于 2013-4-11 20:44
好的。
第一个问题,这个问题其实跟R无关,属于时间序列的分解,lz理解基本正确。
第二个问题,其实那个p ...
再次感谢及时而又专业的回复。

不过还是问题5 不太明白。你是说X,Y轴的标度是时间吗?"-20" 表示什么?2008,2002等线段表示啥意思?虚线和实线对角线的交点表示啥?

望再次指点。


7
求证1加1 发表于 2013-4-12 10:16:36
adict 发表于 2013-4-12 09:35
再次感谢及时而又专业的回复。

不过还是问题5 不太明白。你是说X,Y轴的标度是时间吗?"-20" 表示 ...
图中的2008,1999之类表示的是时间,至于横纵坐标的数值,坐标轴上已经写了,横坐标是批发上一季度对GDP的贡献增长,纵坐标是零售上一季度对GDP的贡献增长。因为它是按季度来的,所以每年都有四个点,按时间顺序依次相连。
回答完毕。
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
adict + 1 + 1 + 1 观点有启发

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

个人主页,欢迎订阅http://chenangliu.info/

8
adict 发表于 2013-4-12 11:29:53
求证1加1 发表于 2013-4-12 10:16
图中的2008,1999之类表示的是时间,至于横纵坐标的数值,坐标轴上已经写了,横坐标是批发上一季度对GDP的 ...
那么是不是说,比如2008线是指 2008年的retail变化 对gdp的贡献对wholesale变化对gdp贡献的回归线?比如左数第一个2008是不是指第一季度?其retail同比下降了少于$20m,而wholesale降了多于$40m,相对来说retail 在第一季度对gdp贡献大些(或拉后小些),这个点在对角实线之上。而到了第四个2008(第四季度?)wholesale停止下降,retail还在下降,这样wholesale对gdp的贡献就大些,这个点在对角实线以下。
1)我的理解对吗?不过问题为何2008还有第五个点?
2)哪个虚线代表什么?它与对角实线的交点说明什么?

麻烦请指点下这两个问题。。万分感谢。。

补充下:那个虚线应该是拟合线吧? 哈哈。。


9
求证1加1 发表于 2013-4-13 11:30:13
adict 发表于 2013-4-12 11:29
那么是不是说,比如2008线是指 2008年的retail变化 对gdp的贡献对wholesale变化对gdp贡献的回归线?比如左 ...
不好意思 这两天有点忙 昨天一直没上 虚线是拟合线 lm()函数嘛 你懂的 实线就是y=x,我感觉这幅图在表达零售和批发之间的一种相关关系,所以诞生了那两条线。每一个点同时表示了批发GDP的变化和零售GDP的变化,你的理解我表示基本认同。至于你说2008有五个点,我表示其实这张图中间太密(不过这是好事哈),不太看得清。
回答完毕,希望能帮上lz。
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
adict + 1 + 1 + 1 分析的有道理

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

个人主页,欢迎订阅http://chenangliu.info/

10
adict 发表于 2013-4-13 13:34:32
求证1加1 发表于 2013-4-13 11:30
不好意思 这两天有点忙 昨天一直没上 虚线是拟合线 lm()函数嘛 你懂的 实线就是y=x,我感觉这幅图在表达零 ...
非常感谢你的帮助。

祝天天好心情

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 02:50