plot(cars) reg=lm(dist~speed,data=cars) summary(reg) for(x in seq(3,30,by=.25)){ b0=coef(reg)[1] b1=coef(reg)[2] Yx=b0+b1*x V=vcov(reg) Vx=V[1,1]+2*V[1,2]*x+V[2,2]*x^2 IC1=Yx+c(-1,+1)*1.96*sqrt(Vx) s=summary(reg)$sigma IC2=Yx+c(-1,+1)*1.96*s points(x,Yx,pch=19,col="red") points(c(x,x),IC1,pch=3,col="blue") points(c(x,x),IC2,pch=3,col="purple")} I=sample(1:50,size=20) reg=lm(dist~speed,data=cars[I,]) summary(reg) for(x in seq(3,30,by=.25)){ b0=coef(reg)[1] b1=coef(reg)[2] Yx=b0+b1*x V=vcov(reg) Vx=V[1,1]+2*V[1,2]*x+V[2,2]*x^2 IC=Yx+c(-1,+1)*1.96*sqrt(Vx) points(x,Yx,pch=19,col="purple") points(c(x,x),IC,pch=3,col="green")} predict(reg, newdata=data.frame(speed=c(15,25)),interval= "confidence") predict(reg, newdata=data.frame(speed=15),interval= "prediction") chicago=read.table("http://freakonometrics.free.fr/chicago.txt", header=TRUE,sep=";") Y=chicago$Fire X1=chicago$X_1 X2=chicago$X_2 X3=chicago$X_3 base=data.frame(Y,X1,X2,X3) plot(X2,X3) reg=lm(Y~X2+X3,data=base) y=function(x2,x3) predict(reg,newdata=data.frame( X2=x2,X3=x3)) VX2=seq(0,80) VX3=seq(5,25) VY=outer(VX2,VX3,y) image(VX2,VX3,VY) contour(VX2,VX3,VY,add=TRUE) persp(VX2,VX3,VY,theta=30) summary(reg) plot(cars$speed,cars$dist) plot(cars$speed,log(cars$dist)) reg1=lm(log(dist)~speed,data=cars) abline(reg1,col="red") plot(cars$speed,sqrt(cars$dist)) reg1=lm(sqrt(dist)~speed,data=cars) abline(reg1,col="red") plot(cars) s=15 abline(v=s,col="green") positive=function(x) ifelse(x>0,x,0) regs=lm(dist~speed+positive(speed-s),data=cars) summary(regs) nouvellebase=data.frame(speed=5:25) y=predict(regs,newdata=nouvellebase) lines(5:25,y,col="red") plot(cars$speed,cars$dist) s1=10 s2=20 abline(v=c(s1,s2),col="green") positive=function(x) ifelse(x>0,x,0) regs=lm(dist~speed+positive(speed-s1)+positive(speed-s2),data=cars) summary(regs) nouvellebase=data.frame(speed=2:25) y=predict(regs,newdata=nouvellebase) lines(2:25,y,col="red") plot(cars$speed,cars$dist) s=10 abline(v=s,col="green") positive=function(x) ifelse(x>0,x,0) regs=lm(dist~speed+I(speed>s),data=cars) summary(regs) nouvellebase=data.frame(speed=seq(2,25,by=.01)) y=predict(regs,newdata=nouvellebase) lines(seq(2,25,by=.01),y,col="red") reg=lm(dist~speed,data=cars) E=residuals(reg) Y=cars$dist X=cars$speed plot(X,E) qqnorm(E)