Esta práctica no necesita de ningún archivo de datos.
set.seed()
, con
un argumento entero.sample(x=0:9, size=3) # simula 3 números del 0 al 9, qué sale?
set.seed(seed=123) # establece la semilla
sample(x=0:9, size=3) # simula 3 números del 0 al 9, qué sale?
sample(x=0:9, size=3) # vuelve a simular, qué sale?
set.seed(seed=123) # ponemos misma semilla otra vez
sample(x=0:9, size=3) # obtenemos mismas simulaciones
sample(x=0:9, size=3) # y las siguientes también
sample()
:
x
: vector con los objetos (números, cadenas de texto,
etc.) a muestrear.size
: tamaño del muestreo. Por defecto es el tamaño del
vector x
.replace
: lógico (FALSE
por defecto). ¿Es
un muestreo con remplazo?prob
: vector proporcional a la probabilidad de los
objetos del vector x
(debe tener igual longitud). Por
defecto vale NULL
(que indicaría
equiprobabilidad).x
.# simular 1000 lanzamientos de un dado equilibrado
d = sample(x=1:6, size=1000, replace=TRUE) # prob, por defecto
d # vemos lo que ha salido
table(d) # vemos MEJOR lo que ha salido
table(d)/length(d) # ahora con frec. RELATIVAS
# simular 100 lanzamientos de una modeda trucada
# con probabilidad de cara igual a 0.7
m = sample(x=c('C', 'X'), size=100, replace=TRUE, prob=c(7,3))
m # vemos lo que ha salido
table(m) # vemos MEJOR lo que ha salido
table(m)/length(m) # frec. relativas
# simular elección de delegado y subsedelegado de clase
alumnos = 1:102 # tenemos listado para identificar cada uno
sample(x=alumnos, size=2) # replace y prob, por defecto
sample(x=alumnos, size=2) # ¿por qué son otros?
EJERCICIO 1:
1
sea doble que la probabilidad del X
y del
2
, que serían iguales entre sí. Antes de simular, establece
la semilla set.seed(1012)
.
c("1", "X", "2")
, sale 1, 1, 1, 2, 1, 1, 2, 2, X, 1, 2, X,
X, 1, X.set.seed(1012)
, y representa la muestra en una
tabla de frecuencias relativas. ¿Qué reflexión puedes hacer al ver las
frecuencias relativas?
c("Windows", "Linux", "MacOS")
, las frecuencias relativas
son Windows = \(0.5504\), Linux = \(0.3456\) y MacOS = \(0.104\), que se aproximan bastante a los
porcentajes que indica la población (como dice la ley de los grandes
números).FIN DE EJERCICIO 1
set.seed(123)
n = 1e5 # cantidad de simulaciones
dado1 = sample(x=1:6, size=n, replace=TRUE)
dado2 = sample(x=1:6, size=n, replace=TRUE)
suma = dado1 + dado2
head(dado1) # esto es solo para ver los primeros lamzamientes
head(dado2) # esto es solo para ver los primeros lamzamientes
head(suma) # esto es solo para ver las primeras suma
table(suma)/n # frecuencias relativas de los resultados posibles
\(X\) | 0 | 1 | 2 | 3 | 4 | 5 |
\(f(X)\) | 0.3 | 0.2 | 0.2 | 0.1 | 0.1 | 0.1 |
# ponemos nombres adecuados
x = 0:5 # valores de X
fx = c(0.3,0.2,0.2,0.1,0.1,0.1) # probabilidades (funcion f)
# moda: es la X con mayor probabilidad
x[ which(fx==max(fx)) ]
# P(X<3): sumar las probabilidades correspondientes
sum( fx[ x < 3 ] )
# muestra de tamaño 50
set.seed(1012) # ponemos una semilla cualquiera
m = sample(x=x, size=50, replace=TRUE, prob=fx)
table(m) # para verla mejor
EJERCICIO 2
Un equipo de fútbol A, independientemente de contra quién juegue, marca una cantidad de goles que puede ser 0, 1, 2 ó 3 con probabilidades respectivas de 0.2, 0.5, 0.2 y 0.1. Otro equipo de fútbol B, independientemente de contra quién juegue, marca una cantidad de goles que puede ser 0, 1, 2 ó 3 con probabilidades respectivas 0.3, 0.2, 0.3 y 0.2.
1012
solo antes de la primera simulación
1012
y con 1e5
simulaciones).FIN EJERCICIO 2
Modelo | Nombre R | Parámetros | Significado |
Binomial | binom |
size , prob |
Número de éxitos al hacer size intentos con
“probabilidad de éxito” prob |
Binomial negativo | nbinom |
size , prob |
Número de no-éxitos hasta encontrar size éxitos al
hacer intentos de “en pruebas de Bernoulli independientes de
parámetro”probabilidad de éxito” prob (ojo no
es el número de intentos, sino de “fracasos”) |
Hipergeométrico | hyper |
m , n , k |
Número de bolas éxito al extraer k bolas (sin remplazo)
de una urna con m bolas éxito y n bolas
no-éxito |
Poisson | pois |
lambda |
Número de ocurrencias en un proceso de Poisson de media (o
intensidad) lambda por unidad de intervalo (la media es
proporcional a la longitud del intervalo) |
Exponencial | exp |
rate |
Atención! Dos planteamientos posibles: (1) Exponencial
correspondiente a un proceso de Poisson de media rate ; (2)
Exponencial de media 1/rate |
Uniforme | unif |
min , max |
Uniforme en el intervalo [min , max ] |
Normal | norm |
mean , sd |
Normal de media mean y desviación típica
sd (la varianza es el cuadrado de la desviación
típica) |
\(\chi^2\) o Ji-cuadrado | chisq |
df |
Ji-cuadrado con df grados de libertad |
\(t\) de Student | t |
df |
\(t\) de Student con
df grados de libertad |
\(F\) de Snedecor | f |
df1 , df2 |
\(F\) de Snedecor con
df1 y df2 grados de libertad |
ProbabIlidad | Var. DISCRETA (binomial, binomial negativa, hipergeométrica, Poisson,…) | Var. CONTINUA (uniforme, exponencial, normal, Ji-cuadrado, \(t\) de Student, \(F\) de Snedecor,…) |
\(P(X=a)\) | \(f(a)\) | \(0\) |
\(P(X \neq a)\) | \(1 - f(a)\) | \(1\) |
\(P(X \leq a)\) | \(F(a)\) | \(F(a)\) |
\(P(X < a)\) | \(F(a-1)\) | \(F(a)\) |
\(P(X > a)\) | \(1 - F(a)\) | \(1 - F(a)\) |
\(P(X \geq a)\) | \(1 - F(a-1)\) | \(1 - F(a)\) |
\(P(a < X \leq b)\) | \(F(b) - F(a)\) | \(F(b) - F(a)\) |
\(P(a < X < b)\) | \(F(b-1) - F(a)\) | \(F(b) - F(a)\) |
\(P(a \leq X \leq b)\) | \(F(b) - F(a-1)\) | \(F(b) - F(a)\) |
\(P(a \leq X < b)\) | \(F(b-1) - F(a-1)\) | \(F(b) - F(a)\) |
d[NombreRModelo](x=
\(x\), NombreParametro1=ValorParametro1, etc)
dbinom(x=5, size=5, prob=0.25)
dpois(x=5, lambda=4.3)
dpois(x=6, lambda=4.5)
\(=
0.1281201\).dbinom(x=, size=, prob=)
dnbinom(x=, size=, prob=)
dhyper(x=, m=, n=, k=)
dpois(x=, lambda=)
dexp(x=, rate=)
dunif(x=, min=, max=)
dnorm(x=, mean=, sd=)
dchisq(x=, df=)
dt(x=, df=)
df(x=, df1=, df2=)
p[NombreRModelo](q=
\(x\), NombreParametro1=ValorParametro1, etc)
pbinom(q=5, size=5, prob=0.25)
pnorm(q=5, mean=4.3, sd=0.7)
pnorm(q=3.25, mean=2.97, sd=0.83) - pnorm(q=2.85, mean=2.97, sd=0.83)
\(= 0.1895513\).pbinom(q=, size=, prob=)
pnbinom(q=, size=, prob=)
phyper(q=, m=, n=, k=)
ppois(q=, lambda=)
pexp(q=, rate=)
punif(q=, min=, max=)
pnorm(q=, mean=, sd=)
pchisq(q=, df=)
pt(q=, df=)
pf(q=, df1=, df2=)
q[NombreRModelo](p=
\(p\), NombreParametro1=ValorParametro1, etc)
qnorm(p=0.95, mean=4.3, sd=0.7)
qexp(p=0.5, rate=1/10.0)
qbinom(p=, size=, prob=)
qnbinom(p=, size=, prob=)
qhyper(p=, m=, n=, k=)
qpois(p=, lambda=)
qexp(p=, rate=)
qunif(p=, min=, max=)
qnorm(p=, mean=, sd=)
qchisq(p=, df=)
qt(p=, df=)
qf(p=, df1=, df2=)
r[NombreRModelo](n=
\(n\), NombreParametro1=ValorParametro1, etc)
runif(n=20, min=0, max=10)
rpois(n=100, lambda=4)
nn
para el número de simulaciones, porque ya tiene un argumento
n
)rbinom(n=, size=, prob=)
rnbinom(n=, size=, prob=)
rhyper(nn=, m=, n=, k=)
rpois(n=, lambda=)
rexp(n=, rate=)
runif(n=, min=, max=)
rnorm(n=, mean=, sd=)
rchisq(n=, df=)
rt(n=, df=)
rf(n=, df1=, df2=)
1012
).pbinom(q=4, size=10, prob=0.75)
\(= 0.0197277\).dbinom(x=8, size=10, prob=0.75)
\(= 0.2815676\).qbinom(p=0.33, size=10, prob=0.75)
\(= 7\).rbinom(n=50, size=10, prob=0.75)
devuelve la
muestra.dpois(x=0, lambda=2.3*5)
\(= 0.0000101\).qnorm(p=0.95, mean=5, sd=sqrt(2))
\(= 7.3261743\).1 - phyper(q=0, m=4, n=6, k=2) =
\(0.6666667\).1012
.