2012-07-05 94 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)