Está en la página 1de 41

Manual Estadística

Created By

Stakeholders

Status Approved

A continuación se presenta un manual de R, abordando algunos ejercicios del libro que seguimos a lo largo del curso. Dichos
ejercicios se presentan con el respectivo enunciado del problema, el código en R y una captura de dicho código en R Studio.
Adicional, se entregará al profesor una carpeta con los códigos en .R

Capitulo 1- Descripción de datos


1.22

#Generamos el grafico de linea


a <-c(1,2,3,4,5,6,7,8,9,10)
m <-c(61.5,62.3,60.7,59.8,58.0,58.2,57.5,57.5,56.1,56.0)
#utilizamos la función plot para graficar
plot(a,m)

Manual Estadística 1
1.56

#capturamos los datos


row<-c(80, 70, 88, 70, 84, 66, 84, 82, 66, 42,
52, 72, 90, 70, 96, 84, 96, 86, 62, 78,
60, 82, 88, 54, 66, 66, 80, 88, 56 ,104,
84, 84, 60, 84, 88, 58, 72, 84, 68 ,74,

Manual Estadística 2
84, 72, 62, 90, 72, 84, 72, 110, 100, 58)
#a)
cat( "todos los numeros son pares porque se multiplicaron por dos")
#b) construimos una grafica de tallo y hojas
stem(row)
#c)
hist(row, main = "Histograma de frecuencias", # Frecuencia
ylab = "Frecuencia")
#d)
cat( "La distribución de los datos se ve centrada entre los valores 60-90, de ahí en fuera existen muy pocos valores.")

1.62

Manual Estadística 3
#capturamos los datos
row<-c(56, 89, 51, 79, 58, 82, 52, 88, 52, 78,
69, 75, 77, 53, 80, 54, 79, 74, 65, 78,
55, 87, 53, 85, 61, 93, 54, 76, 80, 81,
59, 86, 78, 71, 77, 89, 45, 93, 72, 71,
76, 94, 75, 50, 83, 82, 72, 77, 75, 65,
79, 72, 78, 77, 79, 72, 82, 74, 80, 49,
75, 78, 64, 80, 49, 49, 88, 51, 78, 85,
65, 75, 77, 69, 92, 91, 53, 86, 49, 79,
68, 87, 61, 81, 55, 93, 53, 84, 70, 73,
93, 50, 87, 77, 74, 89, 87, 76, 59, 80)

stem(row)

hist(row, main = "Histograma de frecuencias", # Frecuencia


ylab = "Frecuencia")

Capitulo 2 - Descripción de datos con medidas


2.3

# 2.3 Tenemos 10 mediciones


## Es decir n=10
n<-10
#definimos el arreglo de mediciones
x<-c(3,5,4,6,10,5,6,9,2,8)
#a) calcule la media

Manual Estadística 4
cal_media<-mean(x)
#imprimimos la media
cat( "La media es :", cal_media)
#b) calculamos la mediana
cal_mediana<-median(x)
cat( "La mediana es :", cal_mediana)
#c) calculamos la moda
### para este caso no hay una funcion definida en R
## por lo cual procederemos a definir la funcion find_mode
find_mode <- function(x) {
u <- unique(x)
tab <- tabulate(match(x, u))
u[tab == max(tab)]
}
## una vez definida la funcion , la aplicamos a nuestro vector

cal_moda<-find_mode(x)

#imprimimos la moda
cat( "La moda es :", cal_moda)

Manual Estadística 5
2.8

#2.8
## creamos un vector para capturar los precios de las 14 marcas diferentes de atun
atun_price<-c(0.99,1.92,1.23,0.85,0.65,0.53,1.41,1.112,0.63,0.67,0.69,0.60,0.60,0.66)
## a) Ahora encontramos el precio promedio
mean_price<-mean(atun_price)
cat("la media de precios es :" , mean_price)
#b) calculamos el precio mediano
median_price<-median(atun_price)
cat("la mediana de precios es :" , median_price)

#c)
cat("parece ser que la distribución si esta sesgada puesto que la mediana y la media estan un poco alejadas")

Manual Estadística 6
2.10

Manual Estadística 7
#2.10
#creamos el vector de mediciones
mediciones<-c(175,190,250,230,240,200,185,190,225,265)
#obtenemos la media
media_mediciones<-mean(mediciones)
#a) imprimimos la media
cat( "La media es :", cal_media)
#b) obtenemos la mediana
mediana_mediciones<-median(mediciones)
#imprimimos la mediana
cat( "La mediana es :", mediana_mediciones)
#c)
cat("Para describir los datos, la mejor opción es la mediana. Con esto nos evitamos outliers")

2.15

Manual Estadística 8
#2.15
#creamos un vector con los valores del problema
n<-c(4,1,3,1,3,1,2,2)
#encontramos el rango
#a) calcular rango
rg=max (n, na.rm = TRUE ) - min (n, na.rm = TRUE )
#imprimimos el rango
cat( "El rango es :", rg)
#b) calculamos la media
media_n<-mean(n)
#imprimimos la media
cat( "La media es :", media_n)
# c) calculamos la varianza
var_n<-var(n)
#calculamos la sd
sd_n<-sd(n)
#imprimimos la s2
cat( "La S2 es :", var_n , " y la sd es : ",sd_n)

Manual Estadística 9
Capitulo 3 - Datos Bivariados
3.14

Manual Estadística 10
# 3.14
### a)

x<-c(1,2,3,4,5,6,7,8,9,10)
y<-c(61.5,62.3,60.7,59.8,58,58.2,57.5,57.5,56.1,56)
plot(x, y, main="Scatterplot",
xlab="X ", ylab="Y")

### b)
cat( "Podemos ver que hay un decremento de las medidas tomadas a traves de los años, y que parece haber correlación entre las variables de f

### c)

cor(x,y)

### d) y e)
#Se encontro la mejor linea de ajuste utilizando en R la función lm

plot(y ~ x)
abline(lm(y ~ x))

Manual Estadística 11
3.16

Manual Estadística 12
# 3.16
### Capturaremos los datapointsa usar y haremos el plot de sq_feet vs price in thounsands.
### Despues utilizaremos un modelo lineal en R -> lm() para encontrar la mejor linea que se ajuste a los datos y graficarla tambíen

feet<-c(1360,1940,1750,1550,1790,1750,2230,1600,1450,1870,2210,1480)

price<-c(278.5,375.7,339.5,329.8,295.6,310.3,460.5,305.2,288.6,365.7,425.3,268.8)

plot(price ~ feet)

abline(lm(price ~ feet))

## Podemos ver que la variable dependiente son los pies cuadrados de los living spaces, entre mas grande sea y aumente el sq foot , mayor se

3.36

Manual Estadística 13
#Definimos lo que ocuparemos
Graphy <-c(88,52,84,74,80,36,48,96)
Graphx <-c(70,58,85,82,70,40,85,85)
#Graficamos
plot(Graphy, Graphx, ylab="Midterm", xlab="Midterm 1")

Manual Estadística 14
Capitulo 4 - Probabilidad y distribuciones
4.5

install.packages("dplyr")
install.packages("gtools")
install.packages("knitr")

library(dplyr)
library(gtools)
library(knitr)
#2. Definir lista de los eventos simples en S.

S <- c(5,10,25,50)
##Cuál es la probabilidad de que la selección contenga la moneda de 50 centavos?
n <- length(S)
cuantas <- length(S[which(S==50)])
prob <- cuantas / n
paste("La probabilidad de que la selección contenga la moneda de 50 centavos es: 1 /",n, " o sea: ", prob, " o ", prob * 100, "%")
#¿Cuál es la probabilidad de que la suma total sacada sea igual a 60 centavos o más?
n <- length(S)
r <- 3
permuta <- permutations(n,r,S)
permuta <- data.frame(permuta) # Se convierte a data.frame

Manual Estadística 15
names(permuta) <- c('m1', 'm2', 'm3')
permuta <- mutate(permuta, suma = m1 + m2 + m3) # Genera nueva columna
paste("Número de casos posibles de permutaciones", nrow(permuta))
cuales <- filter(permuta, suma >= 60)
cuantas <- nrow(cuales)
paste("En ", cuantas, " ocasiones la suma es 60 o mas de ", nrow(permuta), " posibles ")
paste("La probabilidad de que la suma sea 60 o mas es del ", cuantas , "/", nrow(permuta), " o sea", cuantas / nrow(permuta), " que signific

4.13

Manual Estadística 16
##4.13
#sabemos que la compañia de té comparará su marca con otros dos competidores
# entonces nuestro espacio muestral queda como
A<-list('bueno','malo')
B<-list('bueno', 'malo')
C<-list('bueno','malo')
#entonces S queda como:
s<-(c(A,B,C))
s_s<-paste(s,collapse = ',')

cat("el espacio S es ;", s_s)

#Ahora , sabemos que tenemos que definir el experimento. Teniendo 3 marcas. Podemos obtener el factorial de 3
n_prob<-factorial(3)
#entonces la probabilidad de que el té tipo A quedé como el mas deseable o el menos deseable es
prob_a<-2/n_prob

cat("la probabilidad es de:",prob_a)

Manual Estadística 17
4.83

Manual Estadística 18
##4.83
x<-c(0,1,2,3,4)
p_x<-c(0.1,0.3,0.3,0.1)
#Sabemos que la probabilidad de x tiene que sumar 1
##por lo cual obtenemos nuestro valor p(3)
##a) la prob total es 1 , por lo cual lo restamos de la suma de p_x
p_3<-1-sum(p_x)
cat( "El valor de p(3) es :", p_3)

p_x<-c(0.1,0.3,0.3,p_3,0.1)
barplot(p_x, names.arg=x, ylim=c(0,5), ylab="p(x)", xlab="x")
# b) obtenemos la media multiplicando ambos vectores y sumando
media_x<-sum(x*p_x)
cat( "la media es :", media_x)
##c)obtenemos la varianza restando la media de cada valor de x, elevandolo
##al cuadrado y multiplicandolo por p_x
varianza_x=sum((p_x*((x-media_x)^2)))
cat( "la varianza es :", varianza_x)
## d) obtenemos la de sacandole la raiz a la varianza
de_x<-sqrt(varianza_x)
cat( "la de es :", de_x)
## calculamos la probabilidad >2 sumando p(3) + p(4)
prob_2<-0.2+0.1
cat( "la probabilidad >2 es :", prob_2)
## calculamos la probabilidad sumando p(3) + p(2) + p(1) + p(0)
prob_3<-0.2+0.3+0.3+0.1
cat( "la probabilidad <=3 es :", prob_3)

Manual Estadística 19
Capitulo 5 - Distribuciones discretas
5.45

#5.45
#sabemos uqe la distribucion de poisson
#es :P (X = k ) =μ∧k *e∧-μ /k!
#entonces tenemos un μ= 2
#Para (X = 2)
#a)
prob_eq2<-dpois(2, lambda = 2)

Manual Estadística 20
cat( "la probabilidad de que un niño sufra dos lesiones es :", prob_eq2)
#calculamos la probabilidad de que un niño sufra dos o mas lesiones
#b)
prob_meneq2<-1-ppois(2, lambda = 2) # 0.06708596
cat( "la probabilidad de que un niño sufra dos o mas lesiones es :", prob_meneq2)
#c)
prob_meneq1<-ppois(1, lambda = 2)
cat( "la probabilidad de que un niño sufra dos o mas lesiones es :", prob_meneq1)

5.47

Manual Estadística 21
#5.47
### sabemos que la variable aleatoria x sigue una distribucion de poisson
##declaramos mu como la media del suministro
mu<-2
##declaramos la maxima permisible por especimen de agua
mp<-5
###
## calculamos la probabilidad que x>5
## primero calculamos la probabilidad que x<=5
## restamos a 1 la probabilidad anterior
prob_max<-1-ppois(mp,lambda=mu)
cat( "la probabilidad que la cantidad exceda es :", prob_max)

5.56

Manual Estadística 22
#install.packages("gtools")
#install.packages("knitr")
library(gtools) # Para combinations() y permutations()
library(knitr) # Para kable()
#personas <- c("H1", "H2", "H3", "H4", "M1", "M2", "M3")
personas <- c("H1", "H2", "H3","M1", "M2")
posibles.elecciones <- combinations(5,2, personas)
#posibles.elecciones <- combinations(7,3, personas)
## para cero mujeres
cero <- 0
for (r in 1:n) {
if((substr(posibles.elecciones[r,1], 1,1) == "H" & substr(posibles.elecciones[r,2], 1,1) == "H")) {
cero <- cero + 1
}
}
## para una mujer
n <- nrow(posibles.elecciones)
una <- 0
for (r in 1:n) {
if((substr(posibles.elecciones[r,1], 1,1) == "H" & substr(posibles.elecciones[r,2], 1,1) == "M") | (substr(posibles.elecciones[r,1], 1,1)
una <- una + 1
}
}
# para dos mujeres
n <- nrow(posibles.elecciones)
dos <- 0
for (r in 1:n) {
if((substr(posibles.elecciones[r,1], 1,1) == "M" & substr(posibles.elecciones[r,2], 1,1) == "M") ) {
dos <- dos + 1
}
}
x <- c(0,1,2)
prob.x <- c(cero/n , una/n, dos/n)
## a) la función de probabilidad
x <- c(0,1,2)
prob.x <- c(cero/n , una/n, dos/n)
## determinamos el valor esperado
v.e <- sum(x * prob.x)
## determinamos la probabilidad acumulada
prob.acum.x <- c(sum(prob.x[1]), sum(prob.x[1:2]), sum(prob.x[1:3]))
#b) calculamos la varianza
var <- sum((x - v.e) ^ 2 * prob.x)
cat( "la varianza es :", var,'la media es:' ,v.e )
## c) creamos el histograma
barplot(height = prob.x, names.arg = x)

Manual Estadística 23
Capitulo 6 - Distribución normal de probabilidad
6.71

#Calculamos la probabilidad de que hay que las ventas excedan lo indicado


m <-1230
ds <-120
pnorm(1400, mean = m, sd=ds, lower.tail = FALSE)

#Ahora la prob de que en un dia no salgan perdidas ni ganancias


pnorm(1000, mean = m, sd=ds)

Manual Estadística 24
6.76

#6.76
#declaramos la variable del porcentaje de descendientes
declarado<-0.2
probado<-184/1000
n<-1000
# Para obtener el valor del estadístico
z <- (probado - declarado) / sqrt(declarado * (1 - declarado) / n)
pnorm(q=z) # Para obtener el valor-P

cat( "El estadistico de prueba es :", z)

Manual Estadística 25
Capitulo 7 - Distribuciones muestrales
7.34

Manual Estadística 26
#Calculamos la probabilidad
n <-31
mu <-5.97
sigma <-1.95
pnorm(6.5*n, mean = n*mu, sd=sigma*sqrt(n))

#Calculamos la probabilidad del promedio


pnorm(9.8*n, mean = n*mu, sd=sigma*sqrt(n), lower.tail = FALSE)

Manual Estadística 27
7.44

Manual Estadística 28
#7.44
#a)Tenemos que p es una distribucion normal con una media de 0.56 y unadesviacion estandar de 0.0159713.
#Podemos utilizar una binomial con 100experimentos y un 56% de probabilidad de exito
num<- 1000
prom<- 0.56
x<- seq(0,1,0.01)
desv_std<- sqrt(prom*(1 - prom) / num);
par(mfrow = c(1,2))
plot(x, dnorm(x, mean = prob, sd = desv_std), type = "l", main = "Normal", ylab = "y", col = "black")
plot(dbinom(0:num, size = num, prob = prob), type = "h", main = "Binomial", ylab = "y", col = "green")
#b)
pnorm(0.6, mean = prob, sd = desv_std, lower.tail = FALSE)
#c)
pnorm(0.6, mean = prob, sd = desv_std) - pnorm(0.5, mean = prob, sd = desv_std)
#d)
prob + desv_std
pnorm(0.7, mean = prob, sd = desv_std, lower.tail = FALSE)

Manual Estadística 29
Capitulo 8 - Estimación de muestras grandes

8.27

#8.27
# declaramos la muestra aleatoria n
n<-300
#declaramos los casos de exito
x<-253
#declaramos el intervalo de confianza que nos pide
conf<-0.90
## utilizamos prop test para encontrar el intervalo de confianza del 90%
prop.test(x, n,conf.level = conf, correct = TRUE)

Manual Estadística 30
8.57

#tenemos el siguiente problema


#definimos las variables como
n_simple<-c(56)
n_pean<-c(32)
r_simple<-(12
r_pean<-(8)
#entonces p_simple queda como
p_simple<-c(r_simple/n_simple)
p_pean<-c(r_pean/n_pean)
#entonces para el inciso a, el estimador queda como
p_estimator<-c(p_simple-p_pean)
stage_1<-c((p_simple*(1-p_simple))/n_simple)

Manual Estadística 31
stage_2<-c((p_pean*(1-p_pean))/n_pean)
ste<-c(sqrt((stage_1)+(stage_2)))
in_a<-c(p_estimator-(1.96(ste)))
in_b<-c(p_estimator+(1.96(ste)))
#ahora entonces el rango lo dejamos como el array de in_a,in_b
rang<-c(in_a,in_b)

8.61

Manual Estadística 32
## Para modelar el problema 8.64 declaramos las sig variables
#n muestral lo dejamos definido como el sig array
n<-c(500)
#ahora para la muestra de mujeres
women<-c(345)
#de igual forma para los hombres
men<-c(365)
#ahora pw lo definimos como la poblacion de mujeres entre n muestral
pw<-c(women/n)
#de igual forma pm sera igual a los hombres entre n
pm<-c(men/n)
#definimos q para cada grupo
qw<-c(1-pw)
qm<-c(1-pm)
#Ahora sacamos la metrica mean_m
mean_m<-c(pw-pm)
ste<-c(sqrt( ( (pw*qw)/(n)) + ( (pm*m)/(n))))
in_a<-c(mean_m-(2.58*ste))
in_b<-c(mean_m+(2.58*ste))
#entonces tenemos el intervalo definido
rang<-c(in_a,in_b)
print(rang)

Manual Estadística 33
Capitulo 9 - Pruebas de hipótesis de muestras grandes
9.34

#9.34
#declaramos la variable del porcentaje de descendientes
declarado<-0.75

Manual Estadística 34
probado<-58/100
n<-100
# Para obtener el valor del estadístico
z <- (probado - declarado) / sqrt(declarado * (1 - declarado) / n)
pnorm(q=z) # Para obtener el valor-P
alfa <- 0.01
#obtenemos el critico
critico <- qnorm(1-alfa)
cat( "El estadistico de prueba es :", z)

9.44

#9.44
#Tenemos dos muestras aleatorias independientes binomiales
n1<-280
n2<-350
#ahora declaramos los exitos para cada una
ne1<-132
ne2<-178
#calculamos p
pgen<-(ne1+ne2)/(n1+n2)

Manual Estadística 35
#calculamos q
qgen<-1-pgen
#calculamos p1-p2 con la formula
z<-((ne1/n1)-(ne2/n2))/sqrt((pgen*qgen)*((1/n1)+(1/n2)))
cat( "El estadistico de prueba es :", z)

Capitulo 10 - Estimación de muestras grandes


10.13

#Definimos los datos


man<-20.3
mde<-26.6
san<-5
sde<-7.4
n<-21
#Usamos prueba de hipotesis para determinar si hay suficiente evidencia que la media es menor a 25
m0<-25
t=(man-m0)/(san/sqrt(n))
t
#Construimos el intervalo de confianza
df<-20
ic<-c(mde-2.086*(sde/sqrt(n)),mde+2.086*(sde/sqrt(n)))
ic

Manual Estadística 36
10.16

#10.16
data<-c(148, 304, 300, 240, 368, 139, 203, 249, 265, 229,

Manual Estadística 37
303, 315, 174, 209, 253, 169, 170, 254, 212, 255,
262, 284, 275, 229, 261, 239, 254, 222, 273,299,
278, 227, 220, 260, 221, 247, 178, 204, 250,256,
305, 225, 306, 184, 242, 282, 311, 271, 276, 248)
#construimos el histograma
hist(data, main = "Histograma de frecuencias", # Frecuencia
ylab = "Frecuencia")
#hacemos t test con intervalo de confianza de 95
t.test(data, conf.level = 0.95)

Capitulo 11 - Análisis de Varianza

Manual Estadística 38
install.packages("reshape2")
library(reshape2)
library(ggplot2)
#declarate the data frame
df <- data.frame (first_column = c(112,92,124,89,97),
second_column = c(111,129,102,136,99),
third_column = c(140,121,130,106,NA),
fourth_column = c(101,116,105,126,119)
)

x <- melt(df)
## a) plot the box plots
plt <- ggplot(data = x, aes(x = variable, y = value))
plt + geom_boxplot() + theme_minimal() + labs(x = "Title", y = "x")

## b)
one.way<-aov(values ~ ind, stack(df))
summary(one.way)

##e
TukeyHSD(one.way, conf.level=.95)
plot(TukeyHSD(one.way, conf.level=.95), las = 2)

Manual Estadística 39
11.55

## Creamos el dataframe

df <- data.frame(capacitacion = rep(c('Capacitado', 'No Capacitado'), each = 8),


situacion = rep(c('Comun', 'Emergencia'), each = 4, times = 2),
calificacion = c(85,91,80,78,76,67,82,71,53,49,38,45,40,52,46,39))

## creamos el anova
md <- aov(calificacion ~ situacion * capacitacion, data = df)

Manual Estadística 40
## revisamos el summary

summary(md)

#e) graficamos el promedio


interaction.plot(x.factor = df$capacitacion, # x-axis variable
trace.factor = df$situacion, # variable for lines
response = df$calificacion, # y-axis variable
fun = mean, # metric to plot
ylab = "score",
xlab = "capacitacion",
col = c("pink", "blue"),
lty = 1, # linetype
lwd = 2, # line width
trace.label = "situacion")

Manual Estadística 41

También podría gustarte