2013-01-12 225 views
-5

我有一個函數行有問題。函數行()不起作用

這是我至今寫:

model.ew<-lm(Empl~Wage) 

summary(model.ew) 

plot(Empl,Wage) 

mean<-1:500 

lw<-1:500 

up<-1:500 

for(i in 1:500){ 

    mean[i]<-predict(model.ew,data.frame(Wage=i*100),interval="confidence",level=0.90)[1] 

    lw[i]<-predict(model.ew,data.frame(Wage=i*100),interval="confidence",level=0.90)[2] 

    up[i]<-predict(model.ew,data.frame(Wage=i*100),interval="confidence",level=0.90)[3] 

} 

plot(Wage,Empl) 

lines(mean,type="l",col="red") 

lines(up,type="l",col="blue") 

lines(lw,type="l",col="blue") 

我的問題I S出現在我的陰謀沒有行,我想不通爲什麼。

有人可以幫我嗎?

+1

從哪來的'Empl'和'工資'?請包含示例數據。 –

+1

'predict.lm'是矢量化的。不需要for循環。研究'?predict.lm'中的例子。 – Roland

+0

此外,你想傳遞x和y值到'行',而不僅僅是x。 – Roland

回答

1

你真的需要閱讀R.轉到一些介紹手冊,該頁面,然後選擇一個說明使用的R用線性迴歸:http://cran.r-project.org/other-docs.html

首先,我們需要做一些數據:

set.seed(42) 
Wage <- rnorm(100, 50) 
Empl <- Wage + rnorm(100, 0) 

現在我們運行你的迴歸,並繪製線:

model.ew <- lm(Empl~Wage) 
summary(model.ew) 
plot(Empl~Wage) # Note. You had the axes flipped here 

你的第一個問題是,你翻轉軸。因變量(Empl)在垂直軸上。這是你沒有在劇情上得到任何線條的主要原因。要獲得預測線需要在所有沒有循環,也只使用單一的情節呼叫matlines():

xval <- seq(min(Wage), max(Wage), length.out=101) 
conf <- predict(model.ew, data.frame(Wage=xval), 
    interval="confidence", level=.90) 
matlines(xval, conf, col=c("red", "blue", "blue")) 

這一切就是這麼簡單。 enter image description here