Lectura de datos
# datos <- read.table("http://users.stat.ufl.edu/~winner/data/ereader1.dat")
#write.csv(datos, file = "experimento_lectura.csv", row.names = FALSE)
datos <- read.csv("experimento_lectura.csv")
names(datos) <- c("Dispositivo", "Iluminacion", "lectura")
str(datos)
## 'data.frame': 60 obs. of 3 variables:
## $ Dispositivo: int 1 1 1 1 1 1 1 1 1 1 ...
## $ Iluminacion: int 1 1 1 1 1 2 2 2 2 2 ...
## $ lectura : num 1656 1406 1797 1156 1295 ...
Depurando datos: conversión de las variables a factores.
datos$Dispositivo <- factor(datos$Dispositivo, labels = c("d1","d2", "d3"))
datos$Iluminacion <- factor(datos$Iluminacion, labels = c("200Lx", "500Lx", "1000Lx", "1500Lx"))
str(datos)
## 'data.frame': 60 obs. of 3 variables:
## $ Dispositivo: Factor w/ 3 levels "d1","d2","d3": 1 1 1 1 1 1 1 1 1 1 ...
## $ Iluminacion: Factor w/ 4 levels "200Lx","500Lx",..: 1 1 1 1 1 2 2 2 2 2 ...
## $ lectura : num 1656 1406 1797 1156 1295 ...
library(knitr)
kable(x = datos[1:15,], caption = "Datos experimento")
Datos experimento
d1 |
200Lx |
1656.26 |
d1 |
200Lx |
1405.92 |
d1 |
200Lx |
1797.21 |
d1 |
200Lx |
1155.96 |
d1 |
200Lx |
1295.44 |
d1 |
500Lx |
1022.32 |
d1 |
500Lx |
1538.07 |
d1 |
500Lx |
1444.46 |
d1 |
500Lx |
1257.76 |
d1 |
500Lx |
1667.19 |
d1 |
1000Lx |
1000.28 |
d1 |
1000Lx |
1142.75 |
d1 |
1000Lx |
1494.78 |
d1 |
1000Lx |
1117.59 |
d1 |
1000Lx |
713.07 |
# ejemplo de filtro de filas
d2500Lx <- datos[datos$Dispositivo == "d2" & datos$Iluminacion == "500Lx" ,]
kable(x = d2500Lx, caption = "Filtro d2500Lx")
Filtro d2500Lx
26 |
d2 |
500Lx |
1290.54 |
27 |
d2 |
500Lx |
1079.31 |
28 |
d2 |
500Lx |
741.65 |
29 |
d2 |
500Lx |
1395.44 |
30 |
d2 |
500Lx |
976.03 |
library(dplyr)
##
## 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
datos %>%
filter(Dispositivo == "d2" , Iluminacion == "500Lx") %>%
kable()
d2 |
500Lx |
1290.54 |
d2 |
500Lx |
1079.31 |
d2 |
500Lx |
741.65 |
d2 |
500Lx |
1395.44 |
d2 |
500Lx |
976.03 |
Análisis exploratorio
Frecuencias
Experimento balanceado tiene las mismas repeticiones.
table(datos$Dispositivo)
##
## d1 d2 d3
## 20 20 20
table(datos$Iluminacion)
##
## 200Lx 500Lx 1000Lx 1500Lx
## 15 15 15 15
table(datos$Dispositivo, datos$Iluminacion)
##
## 200Lx 500Lx 1000Lx 1500Lx
## d1 5 5 5 5
## d2 5 5 5 5
## d3 5 5 5 5
barplot(table(datos$Dispositivo), main = "Distribución por número de registros por dispositivo" , xlab = "Dispositivo", ylab = "Frecuencia")

Distribución del tiempo de lectura
summary(datos)
## Dispositivo Iluminacion lectura
## d1:20 200Lx :15 Min. : 543.8
## d2:20 500Lx :15 1st Qu.: 862.0
## d3:20 1000Lx:15 Median :1111.5
## 1500Lx:15 Mean :1099.7
## 3rd Qu.:1304.6
## Max. :1797.2
- Distribución del tiempo de lectura
hist(datos$lectura, main ="Distribución del tiempo de lectura\n(breaks = default)",
xlab = "Tiempo de lectura",
ylab = "Frecuencia",
col = "lightblue")

- ¿Cuál es la probabilidad de que una pesona elegida al azar, dedique un tiempo de lectura, de máximo 1231?
# probabilidad con pnorm a la izquierda
pnorm(q = 1231 , mean = mean(datos$lectura), sd = sd(datos$lectura))
## [1] 0.6615547
# probabilidad con pnorm a la derecha
1 - pnorm(q = 1231 , mean = mean(datos$lectura), sd = sd(datos$lectura))
## [1] 0.3384453
pnorm(q = 1231 , mean = mean(datos$lectura), sd = sd(datos$lectura) , lower.tail = FALSE)
## [1] 0.3384453
# obteniendo el mismo vaor de la tabla
valor_estandarizado <- (1231 - mean(datos$lectura))/(sd(datos$lectura))
valor_estandarizado
## [1] 0.41671
pnorm(q = valor_estandarizado, mean = 0, sd = 1)
## [1] 0.6615547
qnorm(p = 0.6615547, mean = 0, sd = 1)
## [1] 0.4167099
hist(datos$lectura, main ="Distribución del tiempo de lectura\n(breaks = 30)",
xlab = "Tiempo de lectura",
ylab = "Frecuencia",
col = "lightblue",
breaks = 30)

hist(datos$lectura, main ="Distribución del tiempo de lectura\n(breaks = 50",
xlab = "Tiempo de lectura",
ylab = "Frecuencia",
col = "lightblue",
breaks = 50)

hist(datos$lectura, main ="Distribución del tiempo de lectura\n(breaks = 100)",
xlab = "Tiempo de lectura",
ylab = "Frecuencia",
col = "lightblue",
breaks = 100)

Tiempo de lectura por dispositivo
tapply(datos$lectura , datos$Dispositivo, mean)
## d1 d2 d3
## 1252.825 1032.199 1013.999
kable(aggregate(datos$lectura, list(datos$Dispositivo), mean))
d1 |
1252.825 |
d2 |
1032.199 |
d3 |
1013.999 |
min(datos$lectura)
## [1] 543.75
max(datos$lectura)
## [1] 1797.21
res_disp <- tapply(datos$lectura, datos$Dispositivo, function(x){
list(media = mean(x) , de = sd(x), minimo = min(x), maximo = max(x),
mediana = median(x)
)
})
- resumen para dispositivo 1 (d1)
res_disp$`1`
## NULL
- resumen para dispositivo 2 (d2)
res_disp$`2`
## NULL
- resumen para dispositivo 3 (d3)
res_disp$`3`
## NULL
datos %>%
group_by(Dispositivo) %>%
summarise(media = mean(lectura), de = sd(lectura), minimo = min(lectura),
maximo = max(lectura) , mediana = median(lectura)) %>%
kable(digits = 2 , caption = "medidas descriptivas por dispositivo")
medidas descriptivas por dispositivo
d1 |
1252.83 |
305.62 |
572.08 |
1797.21 |
1233.12 |
d2 |
1032.20 |
307.44 |
551.34 |
1588.64 |
1085.92 |
d3 |
1014.00 |
288.58 |
543.75 |
1530.75 |
969.51 |
Tiempo de lectura por iluminación.
datos %>%
group_by(Iluminacion) %>%
summarise(media = mean(lectura), de = sd(lectura), minimo = min(lectura),
maximo = max(lectura) , mediana = median(lectura)) %>%
kable(digits = 2 , caption = "medidas descriptivas por dispositivo")
medidas descriptivas por dispositivo
200Lx |
1306.9 |
276.55 |
862.69 |
1797.21 |
1295.44 |
500Lx |
1194.9 |
276.74 |
741.65 |
1667.19 |
1233.46 |
1000Lx |
970.7 |
279.57 |
543.75 |
1494.78 |
991.76 |
1500Lx |
926.2 |
285.55 |
551.34 |
1304.63 |
894.61 |
Tiempo de lectura por dispositivo e iluminación.
datos %>%
group_by(Dispositivo, Iluminacion) %>%
summarise(media = mean(lectura), de = sd(lectura), minimo = min(lectura),
maximo = max(lectura) , mediana = median(lectura)) %>%
kable(digits = 2 , caption = "medidas descriptivas por dispositivo")
medidas descriptivas por dispositivo
d1 |
200Lx |
1462.16 |
262.04 |
1155.96 |
1797.21 |
1405.92 |
d1 |
500Lx |
1385.96 |
252.15 |
1022.32 |
1667.19 |
1444.46 |
d1 |
1000Lx |
1093.69 |
281.71 |
713.07 |
1494.78 |
1117.59 |
d1 |
1500Lx |
1069.49 |
285.44 |
572.08 |
1276.09 |
1195.20 |
d2 |
200Lx |
1250.19 |
297.53 |
862.69 |
1588.64 |
1203.72 |
d2 |
500Lx |
1096.59 |
258.72 |
741.65 |
1395.44 |
1079.31 |
d2 |
1000Lx |
914.01 |
298.14 |
634.06 |
1308.35 |
860.09 |
d2 |
1500Lx |
868.01 |
298.11 |
551.34 |
1218.54 |
894.61 |
d3 |
200Lx |
1208.35 |
253.37 |
947.27 |
1530.75 |
1125.51 |
d3 |
500Lx |
1102.15 |
262.81 |
797.31 |
1462.59 |
1105.44 |
d3 |
1000Lx |
904.40 |
277.29 |
543.75 |
1304.59 |
869.63 |
d3 |
1500Lx |
841.10 |
275.86 |
597.72 |
1304.63 |
815.47 |
datos %>%
group_by(Iluminacion, Dispositivo) %>%
summarise(media = mean(lectura), de = sd(lectura), minimo = min(lectura),
maximo = max(lectura) , mediana = median(lectura)) %>%
kable(digits = 2 , caption = "medidas descriptivas por dispositivo")
medidas descriptivas por dispositivo
200Lx |
d1 |
1462.16 |
262.04 |
1155.96 |
1797.21 |
1405.92 |
200Lx |
d2 |
1250.19 |
297.53 |
862.69 |
1588.64 |
1203.72 |
200Lx |
d3 |
1208.35 |
253.37 |
947.27 |
1530.75 |
1125.51 |
500Lx |
d1 |
1385.96 |
252.15 |
1022.32 |
1667.19 |
1444.46 |
500Lx |
d2 |
1096.59 |
258.72 |
741.65 |
1395.44 |
1079.31 |
500Lx |
d3 |
1102.15 |
262.81 |
797.31 |
1462.59 |
1105.44 |
1000Lx |
d1 |
1093.69 |
281.71 |
713.07 |
1494.78 |
1117.59 |
1000Lx |
d2 |
914.01 |
298.14 |
634.06 |
1308.35 |
860.09 |
1000Lx |
d3 |
904.40 |
277.29 |
543.75 |
1304.59 |
869.63 |
1500Lx |
d1 |
1069.49 |
285.44 |
572.08 |
1276.09 |
1195.20 |
1500Lx |
d2 |
868.01 |
298.11 |
551.34 |
1218.54 |
894.61 |
1500Lx |
d3 |
841.10 |
275.86 |
597.72 |
1304.63 |
815.47 |
Análisis gráfico
Distribución del tiempo de lectura
par(mfrow = c(1,2))
hist(datos$lectura , main = "distribución tiempo.lectura" ,
xlab = " Tiempo de lectura",
ylab = "Frecuencia")
boxplot(datos$lectura , main = "distribución tiempo.lectura",
xlab = "",
ylab = "Tiempo de lectura")

library(ggplot2)
ggplot(data = datos, mapping = aes(x = lectura)) +
geom_histogram(color = "black",
fill = "lightblue") +
labs(x = "Tiempo de lectura",
y = "Frecuencias",
title = "Distribución del tiempo de lectura")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

ggplot(data = datos, mapping = aes(y = lectura)) +
geom_boxplot(color = "blue",
fill = "lightblue") +
labs(x = "Frecuencias",
y = "Tiempo de lectura",
title = "Distribución del tiempo de lectura")

Tiempo de lectura por dispositivo
library(ggplot2)
ggplot(data = datos , aes(x = Dispositivo , y = lectura)) +
geom_boxplot()+
labs(x = "Dispositivo",
y = "Tiempo de lectura",
title = "Distribución del tiempo de lectura por dispositivo")

ggplot(data = datos , aes(x = lectura , fill = Dispositivo)) +
geom_density(alpha = 0.35)+
labs(x = "Tiempo de lectura",
y = "Frecuencia",
title = "Distribución del tiempo de lectura por dispositivo")

ggplot(data = datos , aes(x = lectura , fill = Dispositivo)) +
geom_histogram(color = "black" , bins = 20, binwidth = 100)+
labs(x = "Tiempo de lectura",
y = "Frecuencia",
title = "Distribución del tiempo de lectura por dispositivo")

library(ggplot2)
ggplot(data = datos , aes(x = Iluminacion , y = lectura)) +
geom_boxplot()+
labs(x = "Iluminacion",
y = "Tiempo de lectura",
title = "Distribución del tiempo de lectura por iluminación")

ggplot(data = datos , aes(x = lectura , fill = Iluminacion)) +
geom_density(alpha = 0.35)+
labs(x = "Tiempo de lectura",
y = "Frecuencia",
title = "Distribución del tiempo de lectura por iluminación")

ggplot(data = datos , aes(x = lectura , fill = Iluminacion)) +
geom_histogram(color = "black" , bins = 20, binwidth = 100)+
labs(x = "Tiempo de lectura",
y = "Frecuencia",
title = "Distribución del tiempo de lectura por iluminación")

Tiempo de lectura por dispositivo e iluminación
library(ggplot2)
ggplot(data = datos , aes(x = Dispositivo , y = lectura , fill = Iluminacion)) +
geom_boxplot()

interaction.plot(datos$Dispositivo , datos$Iluminacion , datos$lectura,
mean)
