X=1:40 ##Valores iniciales para X DE 1 A 40
Y = 5+(3*X) + rnorm(n = 30,mean = 0,sd = 8 ) ##Valores de Y junto con una desviacion de 8
## Warning in 5 + (3 * X) + rnorm(n = 30, mean = 0, sd = 8): longitud de objeto
## mayor no es múltiplo de la longitud de uno menor
plot(X,Y)
datos=data.frame(X,Y)
head(datos,3)
| X | Y |
|---|---|
| 1 | 10.93620 |
| 2 | 15.10571 |
| 3 | 15.22723 |
beta0_est=6 ##Se define valor de Beta0 = 6
beta1_est=2.5 ##S define valor de Beta1 = 2.5
Y_est=beta0_est + (beta1_est*X)
plot(X,Y)
lines(X,Y_est,col="red")
beta0_est=seq(4,8,0.6) ##rango de valores de beta0 = 6
beta1_est=seq(1,5,0.3) ##rango de valores de beta1 = 3
betas=expand.grid(beta0_est,beta1_est)
names(betas)=c("beta0_est","beta1_est")
SCE=array(NA,dim(betas)[1])
Sline=array(NA,dim(betas)[1])
plot(X,Y)
for(i in 1:dim(betas)[1]){
Y_est=betas$beta0_est[i] + (betas$beta1_est[i]*X)
lines(X,Y_est,col="red")
SCE[i]=sum(Y_est-Y)^2
}
resultados=data.frame(betas,SCE,Sline)
library(scatterplot3d)
require(plotly)
require(ggplot2)
plot_ly(
x=resultados$beta0_est,
y=resultados$beta1_est,
z=resultados$Sline,
size = .5)
modelo=lm(Y~X)
summary(modelo)
##
## Call:
## lm(formula = Y ~ X)
##
## Residuals:
## Min 1Q Median 3Q Max
## -26.644 -5.082 1.644 3.252 17.311
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.618 2.870 2.306 0.0267 *
## X 2.944 0.122 24.128 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 8.907 on 38 degrees of freedom
## Multiple R-squared: 0.9387, Adjusted R-squared: 0.9371
## F-statistic: 582.2 on 1 and 38 DF, p-value: < 2.2e-16
Se realiza la estimación por MCO utilizando la función lm, el método nos indica que el intercepto es 6.8 y el mínimo de la pendiente es 2.9
Indicador de ajuste o R2 es de 0.9
el error aleatorio nos evita que los valores de intercepción y valor mínimo de la pendiente no sean iguales a de Beta0 y Beta1