2012-07-05 91 views
0

我使用的那些数据:不能情节预测线中的R

'data.frame': 1584 obs. of 3 variables: 
$ Individual: Factor w/ 3 levels "AG201","AG202",..: 1 1 1 1 1 1 1 1 1 1 ... 
$ Used  : Factor w/ 2 levels "no","yes": 2 2 2 2 2 2 2 2 2 2 ... 
$ NDVI  : int 4724 4576 4894 4297 4670 4932 4346 3810 3481 4058 ... 

我正在做一个GLM用“NDVI”作为连续解释性变量,然后我绘制通过模型数据的散点图(我重现同一个脚本在R书中,克劳利,p.596)

model<-glm(Used~NDVI,binomial); 
xv<-seq(0,10000,0.2); 
yv<-predict(model,list(NDVI=xv),type="response"); 
plot(NDVI,Used); 
lines(xv,yv); 

我的问题是出现在我的图表没有行...

任何想法有什么问题?

+0

你看过yv吗?轴范围内是否有范围(xv)和范围(yv)? – Roland 2012-07-05 13:00:36

+1

猜测,你有一个Y轴因子(请参阅'str()'的输出中的'$ Used')。这并没有绘制出你认为它具有的情节。在绘制图后,看看用户的坐标是用par(“usr”)**表示的,然后看一下'range(yv)',那样会希望启发你。你想要一个覆盖范围0,...,1的连续阴谋,当你在y轴上绘制一个因子时,你可能没有那样做。 – 2012-07-05 13:02:04

+0

你显然也执行过一个'attach(dfrm)',这通常是不可取的,但是如果你要使用'attach',你应该在你的发布代码中包含它。 – 2012-07-05 15:36:38

回答

1

继加文的洞察,这里有一个建议:

plot(NDVI, as.numeric(Used)-1) 
lines(xv,yv) 

因素已开始在1L在默认情况下在标签的字母顺序分配的整数向量。所以你应该可以用“否”<“yes”确定,导致No为1,并且是Yes为2,然后下移到正确的比例[0,1]。你可能还需要看看str(yv)