Funciones en R

En R, cada distribución de probabilidad se nombra mediante una palabra clave o alias. Las palabras clave para las distribuciones más importantes son:

\[ \begin{array}{l|l|l|c} \text{Función} & \text{Significado} & \text{Uso}& \text{Observación}\\ \hline p & \text{probability} & \text{Calcula probabilidades acumuladas (cdf)} & \text{---}\\ q & \text{quantile} & \text{Calcula cuantiles (percentiles)} & \text{---}\\ d & \text{density} & \text{Calcula probabilidades puntuales} & \text{Sólo uso gráfico en el caso continuo}\\ r & \text{random} & \text{Genera datos aleatorios según una distribución específica} & \text{---}\\ \hline \end{array} \]

Distribución exponencial

curve(dexp(x), from=0, to=10)

#representa la densidad de una exponencial de media 1 entre 0 y 10

Distribución binomial

x <- rbinom(20, 1, 0.5)
x
##  [1] 0 0 1 0 0 1 1 0 1 0 0 0 0 1 0 0 1 1 1 1
#Genera 20 observaciones con distribución B(1,0.5)

Contando éxitos vs fracasos

table(x)
## x
##  0  1 
## 11  9

e.g. Distribución normal

si \(x\) es una variable aletoria, con distribución normal de media 3, y du desviación típica es de 0.5, la probabilidad de que \(x\) sea menor que 3.5 se calcula en R de esta forma:

pnorm(3.5, mean=3, sd=0.5)
## [1] 0.8413447

*Para calcular el cuantil 0.7 de una v.a. normal estándar Z, es decir, un valor X tal que

qnorm(0.7)
## [1] 0.5244005

*Para calcular el mismo cuantil, pero para una v.a. normal de media 0 y DT 0.5

qnorm(0.7, sd=0.5)
## [1] 0.2622003

El valor \(z_\alpha\) que aparece en muchas de las fórmulas para intervalos y contrastes se obtiene con el comando qnorm(1-alfa). Algunos ejemplos:

qnorm(0.975)
## [1] 1.959964

*Para generar una muestra de tamaño 100 de una población normal de media 10 y desviación típica 1 (y guardarla en un vector x):

x <- rnorm(100, mean=10, sd=1 )
x
##   [1]  9.092658 10.194819 10.105430  9.608681 12.102630 13.071040 10.803179
##   [8] 10.430358 11.139140 10.283080  9.691829  9.782230  9.035462 10.271889
##  [15] 11.201183 10.477530  9.428970 11.106828  9.944587  8.112976  8.351602
##  [22] 11.371662  9.050119 10.460631 10.336359 11.146929 10.080804 10.164381
##  [29] 10.445977  7.985866 11.438234 12.384131  8.937543 10.896202 10.417171
##  [36] 10.156130  9.998437 10.597399 11.862964 11.379010 10.505728  9.084885
##  [43] 11.542833 10.168579 11.847011 10.341875 10.411575 10.571142  8.682156
##  [50]  8.752842 10.155936  8.821437  9.009819  9.515394  9.024915  9.317636
##  [57]  9.563278 10.506593 10.802450 10.823698  8.711460  9.623004 11.280840
##  [64]  9.277867 11.424735 10.261907  8.658331 11.267342  8.356647  9.851481
##  [71] 12.456799  9.794047 10.318789  9.630258 10.108970 10.606431 11.138115
##  [78]  9.000179  9.678126  9.117303 11.281132  9.135670  8.118999 10.354997
##  [85] 10.006626  9.769722 10.512176  9.279305 10.258699 10.934490  9.470542
##  [92]  9.788853 10.709210 11.235098  9.936187 12.101099  9.066244 10.090069
##  [99]  8.431715  9.202141

*Para estimar el promedio de x

mean(x)
## [1] 10.13041

*Histograma de frecuencias

hist(x)

*Gráfico de cajas y bigote

boxplot(x)

  1. junto con la densidad de la población:
hist(x, freq=FALSE) # Freq=FALSE, para que el área del histograma sea 1
curve(dnorm(x, mean=10, sd=1), from=7, to=13, add=TRUE)

Ejercicios U2A6

  1. Si \(z\) es una variable con distribución normal estándar, calcula \(\mathbb{P}(-2.34 < Z < 4.78)\).
P= (pnorm(4.78) - pnorm(-2.34))
P
## [1] 0.9903573

\(\mathbb{P}=0.9903573\)

  1. Calcula el rango intercuartílico de una población normal estándar.
x= rnorm(12)
x
##  [1] -0.810016050  0.342077052 -0.043921113 -0.347066106  0.785545382
##  [6] -0.534975151 -0.877366953  0.008688831 -0.198728099 -1.747049818
## [11] -0.518350589 -1.251737750
IQR(x)
## [1] 0.7960851

\(\mathbb{IQR}=0.5442037\)

  1. Genera una muestra de tamaño 10 de una población normal estándar. ¿Cuál es la diferencia entre la media muestral y la poblacional? Repite el ejercicio 3 veces y anota las 3 diferencias.
x= rnorm(10, mean= 8, sd=0.4)
x
##  [1] 8.014620 8.174281 7.229931 8.361705 7.812515 7.293230 8.586932 8.292231
##  [9] 7.701314 7.760837
x= rnorm(10, mean= 8, sd=0.4)
x
##  [1] 7.951429 7.358748 7.238018 7.856478 8.069137 8.474557 7.517473 7.481018
##  [9] 8.292179 7.820415
x= rnorm(10, mean= 8, sd=0.4)
x
##  [1] 7.726818 7.844570 7.856282 7.693970 8.118805 7.359362 7.837107 8.479740
##  [9] 8.089092 7.517897

En este caso se consideran muestras de una población, por lo tanto todas tienen la misma media y desviación estándar, como podemos ver los datos varían en todas las muestras: la media poblacional es toda la totalidad de los datos para realizar la estimación, mientras que la media muestral se basa en una muestra significativa de esa población.

  1. Genera 1000 números con distribución de Poisson de parámetro \(\lambda = 1\) Representa el gráfico de barras de los números obtenidos. Calcula la media y la varianza de los números obtenidos. ¿Se parecen a los valores teóricos?
pois <- rpois(1000, 1) 
pois
##    [1] 0 1 1 1 0 1 0 3 1 0 2 0 0 1 1 0 1 3 2 3 3 0 1 1 1 1 0 0 0 1 2 1 1 4 0 0 2
##   [38] 0 3 0 1 1 1 1 1 1 0 1 0 1 1 0 2 1 1 0 1 1 3 0 0 1 0 2 1 0 1 4 4 1 0 1 1 0
##   [75] 1 0 1 1 2 1 0 2 1 3 1 1 0 2 0 0 5 3 0 1 2 3 1 2 1 0 1 0 1 0 3 0 0 1 3 2 2
##  [112] 1 1 2 1 0 1 0 2 0 1 0 0 1 1 0 1 2 1 0 2 1 1 2 2 1 2 1 0 1 1 2 1 0 1 1 1 1
##  [149] 3 0 2 2 2 0 1 0 2 1 0 0 3 1 2 0 1 0 2 0 0 1 0 2 1 1 0 1 0 0 0 2 0 2 1 2 0
##  [186] 0 0 1 0 1 1 0 2 0 0 0 1 1 4 2 1 1 1 1 1 0 3 1 1 1 2 0 1 0 3 0 1 1 1 0 0 2
##  [223] 0 0 0 0 1 1 1 1 0 1 1 3 0 3 0 0 1 0 2 0 1 2 1 0 1 0 1 1 0 1 3 0 0 1 0 1 1
##  [260] 2 3 0 1 2 2 1 2 0 2 2 0 2 2 0 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 3 1 0 3 2
##  [297] 0 4 1 1 1 0 0 1 1 1 1 4 0 3 1 0 0 0 1 1 3 3 2 0 1 0 0 1 0 1 1 1 1 0 0 1 1
##  [334] 0 2 0 0 2 0 1 0 2 1 1 2 1 1 0 2 0 2 0 2 0 1 1 1 2 4 0 0 3 2 2 0 2 1 0 3 0
##  [371] 0 0 2 0 1 2 2 4 0 0 0 2 0 3 3 0 2 0 1 1 3 1 0 2 0 0 3 1 2 1 0 0 1 2 1 1 1
##  [408] 1 1 0 3 0 0 0 0 1 0 0 1 0 2 0 1 1 3 1 5 1 0 1 0 1 1 0 1 1 1 1 0 2 1 0 0 3
##  [445] 0 1 2 2 0 3 1 1 3 1 1 1 1 0 0 1 2 1 0 0 1 1 2 2 1 2 1 1 1 3 0 0 2 0 1 1 4
##  [482] 0 0 0 1 2 0 0 1 0 0 0 0 3 0 1 0 0 1 0 0 3 1 1 0 0 1 1 0 0 0 1 2 2 1 0 1 1
##  [519] 1 0 0 0 1 1 3 2 0 1 1 0 2 1 1 0 0 1 4 0 2 2 1 0 0 1 1 1 3 0 0 0 1 0 0 1 3
##  [556] 3 1 1 2 1 0 2 1 0 0 1 0 1 1 1 1 1 1 2 1 1 1 0 1 1 1 0 2 1 1 0 3 1 0 2 0 0
##  [593] 2 1 0 2 1 0 1 1 1 0 1 2 1 1 1 0 1 0 3 2 1 0 2 1 0 0 2 5 1 0 1 1 1 0 2 0 0
##  [630] 3 1 1 3 1 0 4 0 1 1 2 5 1 0 0 3 0 1 1 2 0 1 2 0 2 1 0 1 2 2 1 0 1 3 0 0 1
##  [667] 1 1 0 0 1 1 1 1 0 6 2 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1 0 1 0 0 2 0
##  [704] 0 1 1 1 1 0 1 0 2 2 3 2 0 2 1 1 3 1 2 0 0 0 2 1 0 1 2 0 0 0 2 3 4 0 2 1 2
##  [741] 1 1 1 1 0 0 2 1 2 3 0 0 0 1 1 0 1 0 0 0 2 1 1 1 1 2 2 0 1 1 2 0 2 0 0 1 0
##  [778] 0 0 1 0 1 2 2 0 1 1 0 4 0 1 1 1 2 2 0 0 0 1 1 0 1 1 1 0 2 4 1 0 0 1 2 1 3
##  [815] 1 1 1 3 0 0 1 0 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 1 2 0 1 2 0 0 0 0 1 1 2 4 1
##  [852] 2 0 0 1 0 2 0 1 2 2 2 1 0 3 1 0 1 1 3 1 4 1 1 2 3 1 2 0 0 2 2 1 0 2 1 1 1
##  [889] 1 0 2 0 0 0 2 1 0 2 1 1 0 1 3 1 0 2 2 1 1 1 3 0 1 0 0 1 2 3 1 1 0 0 4 1 0
##  [926] 0 1 1 2 1 4 0 1 2 0 0 0 2 2 1 0 0 4 1 1 1 0 1 1 1 2 1 1 1 3 3 1 1 0 2 1 3
##  [963] 1 0 0 2 3 1 1 1 2 2 1 2 1 0 2 0 0 0 0 3 1 0 0 2 0 0 2 3 1 1 0 2 1 0 0 2 1
## [1000] 2
hist(pois)

mean(pois)
## [1] 1.016
var(pois)
## [1] 1.046791

No se parecen a los datos teóricos.