Code: Select all
x<-runif(20,3,7)
y<-3*x-2+rnorm(20)
plot(x,y,type="p",pch=19)
xy<-cbind(x,y)
Code: Select all
# Minimos cuadrados
M<-lm(y~x)
summary(M)
abline(M,lwd=2,col="red")
Code: Select all
f<-function(B,xy){
B0<-B[1]
B1<-B[2]
x<-xy[,1]
y<-xy[,2]
e<-y-(B0+B1*x)
r<-sum(e^2)
return(r)
}
res<-optim(par=c(0,1),fn=f,xy=xy)
str(res)
res$par
abline(res$par,lwd=2,col="red")
Code: Select all
fxy <- function (B0, B1, xy){
B<-cbind(B0,B1)
r<-apply(B,1,f,xy=xy)
return(r)
}
B0i <- seq(-10, 10, length= 200)
B1i <- seq(-10, 10, length=200)
fi <- outer(B0i, B1i, fxy,xy=xy)
persp(B0i, B1i, fi, theta = 45, phi = 0, expand = 0.5, col = "lightblue")
contour(B0i, B1i, fi,nlevels = 100)
minij<-which(fi==min(fi),arr.ind = TRUE)
B0i[minij[1]]
B1i[minij[2]]