Vamos a simular el comportamiento de la función de SCE en el caso de la RL simple.
x=1:30
y=3+(5*x)+rnorm(n = 30,mean = 0,sd = 5)
datos=data.frame(x,y)
head(datos)
| x | y |
|---|---|
| 1 | 11.979002 |
| 2 | 12.318224 |
| 3 | 21.406169 |
| 4 | 7.114488 |
| 5 | 26.445712 |
| 6 | 28.209631 |
A continuación graficamos la relación entre x,y:
require(ggplot2)
ggplot(datos,aes(x=x,y=y))+geom_point()+theme_bw()
Vamos ahora por medio de simulación Monte Carlo a calcular varios modelos y su respectivo valor de SCE y graficamos:
#simulamos parametros
beta0=seq(0,5,by = 0.2)
beta1=seq(0,10,by = 0.2)
modelos=expand.grid(beta0,beta1)
names(modelos)=c("beta0","beta1")
#calculamos la SCE
plot(x,y)
SCE=array(NA,1326)
for(i in 1:1326){
y_mod=modelos$beta0[i]+(modelos$beta1[i]*x)
lines(x,y_mod,col="red")
SCE[i]=sum((y-y_mod)^2)
}
resultados=data.frame(modelos,SCE)
head(resultados)
| beta0 | beta1 | SCE |
|---|---|---|
| 0.0 | 0 | 248227.8 |
| 0.2 | 0 | 247276.5 |
| 0.4 | 0 | 246327.6 |
| 0.6 | 0 | 245381.1 |
| 0.8 | 0 | 244437.0 |
| 1.0 | 0 | 243495.3 |
require(plotly)
plot_ly(x=resultados$beta0,y=resultados$beta1,z=resultados$SCE)