上面是用ggplot2 0.89写的,有些地方不能运行了
所以又修改了一下,并添加了注释。
library(ggplot2)
library(scales)
library(ISwR)
#回归分析,ISwR数据
options(na.action=na.exclude)
#进行回归分析
lm.velo<-lm(short.velocity~blood.glucose,data=thuesen)
#画图,做回归线
qplot(blood.glucose,short.velocity,data=thuesen)+geom_smooth(method="lm")
#预测值
fitted(lm.velo)
#残差
resid(lm.velo)
#计算prediction bands,就是预测值的误差
#提取方法,predict(lm.velo,int="p")
#先定义自变量的范围,要使用data.frame格式
pred.frame <- data.frame(blood.glucose=thuesen$blood.glucose)
##pp里包含了预测值及其上下可信区间
pp<-predict(lm.velo,int="p",newdata=pred.frame)
#将自变量和预测值合并为一个df
mydf<-data.frame(pred.frame,pp)
#将预测值,原始数据和残差合并为一个df
my.naexclude <- data.frame(thuesen,fitted=fitted(lm.velo),resid=resid(lm.velo))
my.naexclude <- my.naexclude[!is.na(my.naexclude$short.velocity),]
#画回归,链接点和回归线
qplot(blood.glucose,short.velocity,data=my.naexclude)+
geom_smooth(method="lm")+ #geom_smooth可以直接画出y的mean structure的可信区间,用se=T/F控制
#linerange用来连接y的实际数据和预测值
geom_linerange(aes(ymin=fitted,ymax=short.velocity),data=my.naexclude,fullrange=T,colour="grey50")+
#geom_ribbon用来画预测值的可信区间
geom_ribbon(aes(x=blood.glucose,y=NULL,ymin=lwr,ymax=upr),data=mydf,fill="red",alpha=I(1/10))