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))