2011-12-03 155 views
1
y<-c(0.0100,2.3984,11.0256,4.0272,0.2408,0.0200); 
x<-c(1,3,5,7,9,11); 
d<-data.frame(x,y) 
myLm<-lm(x~y**2,data=d) 
plot(d) 
lines(x,lm(y ~ I(log(x)) + x,data=d)$fitted.values) 
lines(x,lm(y ~ I(x**2) + x,data=d)$fitted.values) % not quite right, smooth plz 

它应该是平滑的绘图,错了什么。绘制R中线性回归的非线性图

enter image description here

助手问题

  1. What algorithm is used in linear regression?
  2. Explain least squares plotting with Ones -matrix
+0

什么是 “尽管如此,点或合规性” 呢? –

+1

他编辑了多次帖子,改变了他的话等AndresT和我昨天试图帮助,但是,问题的条款不断变化。 –

回答

9

您需要predict为了插入拟合点之间的预测。

d <- data.frame(x=seq(1,11,by=2), 
       y=c(0.0100,2.3984,11.0256,4.0272,0.2408,0.0200)) 
lm1 <-lm(y ~ log(x)+x, data=d) 
lm2 <-lm(y ~ I(x^2)+x, data=d) 
xvec <- seq(0,12,length=101) 
plot(d) 
lines(xvec,predict(lm1,data.frame(x=xvec))) 
lines(xvec,predict(lm2,data.frame(x=xvec))) 

enter image description here

+0

是的,在他最后编辑完所有他想要的是抛物线之后,在x轴点序列上的预测()是正确的答案。请注意,他的第一次适合仍然是y的函数。好吧。我确信他会在我提到的时候更新它。 –

+0

如果我有多个变量,而不是只有一个自变量,我该怎么办? –

+0

@FrankWANG:你应该发布一个新的问题,引用这个问题,并给出适当的细节(例如可重现的问题:http://tinyurl.com/reproducible-000)。简而言之,你必须在(1)产生曲面图之间作出决定; (2)用除了一个保持在指定值的一个预测因子来绘制一个或多个预测线(或子图)。 –

2

类似:

plot(d)  
abline(lm(x~y**2,data=d), col="black") 

会使它(如果线性的,由道路所隐含的问题是先问)

对于你在找什么,我认为:

lines(smooth.spline(x, y)) 

可能工作德克的暗示。

+0

也许不太像,因为他正在拟合一个线性模型,他的回归方是平方的。 –

+0

@DirkEddelbuettel刚编辑过。 Txs – aatrujillob

2

您应该花一些时间参与程序随附的“An Introduction R”手册中的“附录A:示例会话”。但这里是一个开始

R> y<-c(0.0100,2.3984,11.0256,4.0272,0.2408,0.0200); 
R> x<-c(1,3,5,7,9,11); 
R> d<-data.frame(x,y) 
R> myLm<-lm(x~y**2,data=d) 
R> myLm 

Call: 
lm(formula = x ~ y^2, data = d) 

Coefficients: 
(Intercept)   y 
     6.434  -0.147 

,我们可以绘制这是(在那里我现在修正为您的x角色的不同寻常的反转和y):

R> plot(d) 
R> lines(d$y,fitted(myLm)) 

enter image description here

+0

... err二次回归,这是线性的。 – hhh

+2

就是这样:你正在拟合一个*线性模型*来对你的变量进行非线性变换。你可以创建'x2 < - x^2',然后回归'y〜x2'并将其绘制在'(y,x2)'空间中。如果你想要*非线性回归*,你需要一个不同的函数,比如'nls()'。或样条线。或添加剂模型。或者,或者,或者... –

+0

现在看问题,现在清楚了。没有模糊的句子,只有一个清晰的图片 - 得到了我想要实现的目标? – hhh

6

强制GGPLOT2方法:

library(ggplot2) 
qplot(x,y)+stat_smooth(method="lm", formula="y~poly(x,2)", se=FALSE) 

enter image description here

+0

是否有可能在同一张照片中有很多情节?这显然是一些不同的环境,所以我不能使用样式'plot(1:10,1:10); (1:10,1:10 * 2)等等。 – hhh

+1

是的,只需添加额外的图层或美学,例如:'dfr < - data.frame(x = rep(1:10,2),y = c 1:10,(1:10)^ 2),式= C(REP( “线性”,10),代表( “平方”,10))); qplot(x,y,data = dfr,geom =“line”,color = type)' – James

+1

ggplot2使用网格图形系统而不是基本图形系统,所以命令和范例不同,请参见http://had.co .NZ/GGPLOT2 / – James