Datos
y <- c(16.68, 11.50, 12.03, 14.88, 13.75, 18.11, 8, 17.83, 79.24, 21.50, 40.33,
21, 13.50, 19.75, 24, 29, 15.35, 19, 9.50, 35.10, 17.90, 52.32, 18.75,
19.83, 10.75)
x1 <- c(7, 3, 3, 4, 6, 7, 2, 7, 30, 5, 16, 10, 4, 6, 9, 10, 6, 7, 3, 17, 10, 26,
9, 8, 4)
datos <- data.frame(y,x1)
datos
## y x1
## 1 16.68 7
## 2 11.50 3
## 3 12.03 3
## 4 14.88 4
## 5 13.75 6
## 6 18.11 7
## 7 8.00 2
## 8 17.83 7
## 9 79.24 30
## 10 21.50 5
## 11 40.33 16
## 12 21.00 10
## 13 13.50 4
## 14 19.75 6
## 15 24.00 9
## 16 29.00 10
## 17 15.35 6
## 18 19.00 7
## 19 9.50 3
## 20 35.10 17
## 21 17.90 10
## 22 52.32 26
## 23 18.75 9
## 24 19.83 8
## 25 10.75 4
Ajuste del modelo
mod <- lm(y ~ x1, data=datos)
mod
##
## Call:
## lm(formula = y ~ x1, data = datos)
##
## Coefficients:
## (Intercept) x1
## 3.321 2.176
summary(mod)
##
## Call:
## lm(formula = y ~ x1, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -7.5811 -1.8739 -0.3493 2.1807 10.6342
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.321 1.371 2.422 0.0237 *
## x1 2.176 0.124 17.546 8.22e-15 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.181 on 23 degrees of freedom
## Multiple R-squared: 0.9305, Adjusted R-squared: 0.9275
## F-statistic: 307.8 on 1 and 23 DF, p-value: 8.22e-15
Muestra aleatoria
library("dplyr")
## Warning: package 'dplyr' was built under R version 3.5.1
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
simu1000datos <- function(nmuestras){
total.coefs <- data.frame()
for (i in 1:1000){
daleatorios <- sample_n(datos, nmuestras) #Saca nmuestras en filas de "datos" aleatoriamente
mod <- lm(y ~ x1, data=daleatorios)
intercepto <- mod$coefficients[1]
pendiente <- mod$coefficients[2]
sigma2 <- summary(mod)$sigma
R2 <- summary(mod)$r.squared
a <- data.frame(intercepto, pendiente, sigma2, R2)
total.coefs <- rbind(total.coefs, a)
}
total.coefs
}
Calculando las muestras aleatorias para n= 5,3,10,15
muestrade5 <- simu1000datos(5)
muestrade3 <- simu1000datos(3)
muestrade10 <- simu1000datos(10)
muestrade15 <- simu1000datos(15)
head(simu1000datos(5))
## intercepto pendiente sigma2 R2
## (Intercept) 4.518099 2.482643 3.242415 0.9905920
## (Intercept)1 5.822148 1.887693 3.235737 0.9737358
## (Intercept)2 3.069421 2.481316 2.028731 0.9498712
## (Intercept)3 3.792321 2.383393 2.193548 0.9463233
## (Intercept)4 6.380000 1.323667 1.971114 0.8184971
## (Intercept)5 6.276190 1.780952 5.271840 0.3899087
head(simu1000datos(3))
## intercepto pendiente sigma2 R2
## (Intercept) 2.767857 2.803571 0.6013378 0.9902378
## (Intercept)1 -1.427391 2.688913 1.0111627 0.9995992
## (Intercept)2 3.494302 2.176163 1.4223143 0.9853173
## (Intercept)3 5.248876 1.804145 1.5911972 0.9972749
## (Intercept)4 7.358333 1.364167 2.9203510 0.8396645
## (Intercept)5 14.050000 0.540000 2.1920310 0.2669270
head(simu1000datos(10))
## intercepto pendiente sigma2 R2
## (Intercept) 5.8096835 1.766804 3.901179 0.9189794
## (Intercept)1 6.9408970 1.498747 2.525507 0.8558780
## (Intercept)2 4.1083436 2.067262 3.976366 0.8315375
## (Intercept)3 -0.2684436 2.491471 3.967928 0.9693854
## (Intercept)4 6.0615246 1.767166 1.979361 0.9755287
## (Intercept)5 0.7748448 2.524908 3.577750 0.9751990
head(simu1000datos(15))
## intercepto pendiente sigma2 R2
## (Intercept) 1.994657 2.504656 3.253515 0.9656647
## (Intercept)1 5.083548 1.797097 2.599230 0.9492246
## (Intercept)2 3.157678 2.204160 4.296870 0.9562463
## (Intercept)3 1.635246 2.481344 4.009620 0.9472859
## (Intercept)4 4.281250 1.935417 2.770600 0.9112695
## (Intercept)5 4.233216 2.204902 4.594495 0.9420728
Intercepto
intercepto5 <- density(muestrade5$intercepto)
intercepto3 <- density(muestrade3$intercepto)
intercepto10 <- density(muestrade10$intercepto)
intercepto15 <- density(muestrade15$intercepto)
aux<-sum(muestrade5$intercepto,muestrade3$intercepto,muestrade10[,1],muestrade15[,1])/4000
plot(intercepto5, col=1, lwd=3, ylim=c(0,0.3), main = "Distribución de densidad del intercepto")
lines(intercepto3, col=2, lwd=3)
lines(intercepto10, col=3, lwd=3)
lines(intercepto15, col=4, lwd=3)
abline(v=aux,lwd=3, col=8)
legend(10,.30, legend=c('n = 5','n = 3','n = 10','n = 15','Promedio = 4.68812'), lty=c(1,1,1,1,1), col=c(1,2,3,4,8))

R2
R25 <- density(simu1000datos(5)$R2)
R23 <- density(simu1000datos(3)$R2)
R210 <- density(simu1000datos(10)$R2)
R215 <- density(simu1000datos(15)$R2)
aux<-sum(muestrade5$R2,muestrade3$R2,muestrade3$R2,muestrade15$R2)/4000
plot(R25, col=1, lwd=3, ylim=c(0,30), main = "Distribución de densidad del R2")
lines(R23, col=2, lwd=3)
lines(R210, col=3, lwd=3)
lines(R215, col=4, lwd=3)
abline(v=aux,lwd=3, col=8)
legend(15,.2, legend=c('n = 5','n = 3','n = 10','n = 15','Promedio = 0.8622311'), lty=c(1,1,1,1,1), col=c(1,2,3,4,8))

sigma
sigma5 <- density(simu1000datos(5)$sigma)
sigma3 <- density(simu1000datos(3)$sigma)
sigma10 <- density(simu1000datos(10)$sigma)
sigma15 <- density(simu1000datos(15)$sigma)
aux<-sum(muestrade5$sigma,muestrade3$sigma,muestrade3$sigma,muestrade15$sigma)/4000
plot(sigma5, col=1, lwd=3, ylim=c(0,1), main = "Distribución de densidad de sigma")
lines(sigma3, col=2, lwd=3)
lines(sigma10, col=3, lwd=3)
lines(sigma15, col=4, lwd=3)
abline(v=aux,lwd=3, col=8)
legend(5,.9, legend=c('n = 5','n = 3','n = 10','n = 15','Promedio = 3.046377'), lty=c(1,1,1,1,1), col=c(1,2,3,4,8))
