2016-03-11 48 views
-1

我确实有一个问题涉及绘制时间序列的实际数据和拟合模型的值。特别是,我的问题涉及到本文:R:绘制“实际与装配”

https://static.googleusercontent.com/media/www.google.com/en//googleblogs/pdfs/google_predicting_the_present.pdf

在该文件的附录中,你可以找到的R脚本。在这里,我有两个最初的问题:(1)这是什么

##### Define Predictors - Time Lags; 
dat$s1 = c(NA, dat$sales[1:(nrow(dat)-1)]); 
dat$s12 = c(rep(NA, 12), dat$sales[1:(nrow(dat)-12)]); 

做的,什么是功能:

##### Divide data by two parts - model fitting & prediction 
dat1 = mdat[1:(nrow(mdat)-1), ] 
dat2 = mdat[nrow(mdat), ] 

决赛和主要问题:比方说,我得到一个计算我的数据与

fit = lm(log(sales) ~ log(s1) + log(s12) + trends1, data=dat1); 
summary(fit) 

The adj。 R平方值为0.342。因此,我认为上面的模型解释了建模数据(预测数据?)与实际数据之间大约34%的差异。现在,我该如何绘制这个“模型图”(拟合),以便在论文中得到类似的内容?

Fitted

我认为第二个图表的“装”,实际上是从估计模型的数据,对不对?如果是这样,那么这部分似乎在脚本中缺失。

非常感谢!

EDIT 1:

尝试这样做:

# Actual values and fitted values 
plot(sales ~ month, data= dat1, col="blue", lwd=1, type="l", xaxt = "n", xaxs="r",yaxs="r", xlab="", ylab="Total Sales"); 
par(new=TRUE) 
plot(fitted(fit) ~ month, data= dat1, col="red", lwd=1, type="l", xaxs="r", yaxs="r", yaxt = "n", xlab="Month", ylab="Index", xaxt="n"); 
axis(4) 

输出:错误(功能(式中,数据= NULL,子集= NULL,na.action = na.fail,:可变长度不同(发现“月”)

回答

1
dat$s1 = c(NA, dat$sales[1:(nrow(dat)-1)]) 

这产生了数据的新列s1sales其中第一EL e是NA。最后一项从sales缺失。

dat$s12 = c(rep(NA, 12), dat$sales[1:(nrow(dat)-12)]) 

s12木板条柱,用12个NAS和其余的是首先从dat$salesnrow(dat)-12值。

dat1 = mdat[1:(nrow(mdat)-1), ] 
dat2 = mdat[nrow(mdat), ] 

dat1为所有,但最后观察(行),dat2只有最后一排。当预测所述响应(sales),你只需要馈送data.frame与至少是上式的右边的列(也称为解释变量),在这种情况下s1s12,作为newdata参数predict()功能。这是使用dat2的地方。

predict.fit = predict(fit, newdata=dat2, se.fit=TRUE) 

该下一行适用于使用dat1的模型。

fit = lm(log(sales) ~ log(s1) + log(s12) + trends1, data=dat1) 

fitted(fit)会给你拟合值。尝试predict(fit)并比较它是否有任何不同。

每个语句末尾的分号是多余的。

+0

我在编辑1中试过一些东西。不幸的是,这不起作用。但我可以通过拟合(适合)来看到这些值。 – Johnny

+0

你能帮我解释一下“#####数据分为两部分 - 模型拟合和预测 dat1 = mdat [1:(nrow(mdat)-1),] dat2 = mdat [nrow(mdat ),]“?我不明白dat2的意义。 – Johnny

+0

@约翰尼看到我的编辑。 –