2009-11-18 77 views
1

这是一个非常简单的问题,我似乎完全无法获得解决方案。我想在R中做一个观测时间序列的散点图,并且在此我想绘制拟合模型。如何在观察时间序列上绘制拟合模型

因此,我想是这样的:

model <- lm(x~y+z) 
plot(x) 
lines(fitted(model)) 

但这只是绘制X用线。

感谢

+0

你在第三行代码中缺少一个')'。 – 2009-11-18 16:15:22

回答

8

我想你想abline(model)这里从帮助页面下面的例子:

z <- lm(dist ~ speed, data = cars) 
plot(cars) 
abline(z) # equivalent to abline(reg = z) or 
abline(coef = coef(z)) 
+0

不起作用。首先,我得到一个错误,说它只能使用前两个回归系数(我有4) – Karl 2009-11-18 12:56:44

+1

这是特例。你究竟如何计划对四位家属作出回应?五维图是很难的......所以经常做的是将n-1个固定在某个值上(比如他们的平均值),然后随着响应变量改变n个值。这样你就可以得到几张不同的x_i图表。 – 2009-11-18 13:21:32

+0

我并不需要所有这些,我所需要的就是将拟合值的向量(我已经拥有)绘制在一条线上。 所以我想我可以说,我问的是,如果我有时间序列x和时间序列y,那么我该如何在同一个图上绘制两个图,其中x是散点图,y是线形图。 – Karl 2009-11-18 14:46:51

4
x <- rnorm(100) 
y <- rnorm(100) 
z <- rnorm(100) 

model <- lm(x~y+z) 
plot(x,type="l",col="green") 
lines(fitted(model),col="blue") 

我想这和它似乎工作

0

另一个机会:

n = 100; mi = 0; sigma = 2 
x = rnorm(n,mi,sigma) 
e = rnorm(n,0,1) 
b0 = 1; b1 = 2 
y = b1*x + b0 + e 
#plot observations 
plot(x,y) 
#model 
lm_res= lm(y~x) 
summary(lm_res) 
arg= c(min(x),max(x)) 
out = coef(lm_res)[2]*arg+ coef(lm_res)[1] 
#plot model line 
lines(arg, out, col = 'red')