Lectura de datos

  • Luego de tomar las mediciones y enviarlas a su correo o almacenarlas directamente desde el celular a su computador, es necesario importar dichos registros a R.
# Lectura de datos luz
df_luz <- read.csv(file = "Prueba 1 Grabaci_n 1.csv")

# Lectura de datos sonido
df_sonido <- read.csv(file = "Experimento sin t_tulo Grabaci_n 1.csv")

Edición de nombres de variables

  • Opcional: por facilidad de manejo se editan los nombres de las variables.
# Editando nombres de luz
names(df_luz) <- c("Tiempo", "Luz")

# Editando nombres de sonido
names(df_sonido) <- c("Tiempo", "Sonido")
# Primeros 10 datos de luz
head(df_luz, n = 10)
##         Tiempo Luz
## 1  1.55068e+12  92
## 2  1.55068e+12  92
## 3  1.55068e+12  92
## 4  1.55068e+12  92
## 5  1.55068e+12  92
## 6  1.55068e+12  92
## 7  1.55068e+12  92
## 8  1.55068e+12  92
## 9  1.55068e+12  92
## 10 1.55068e+12  92
# Primeros 10 datos de sonido
head(df_sonido, n = 10)
##         Tiempo   Sonido
## 1  1.55068e+12 37.78540
## 2  1.55068e+12 35.88001
## 3  1.55068e+12 34.93326
## 4  1.55068e+12 39.93568
## 5  1.55068e+12 38.63764
## 6  1.55068e+12 37.45524
## 7  1.55068e+12 34.65991
## 8  1.55068e+12 34.04971
## 9  1.55068e+12 35.73324
## 10 1.55068e+12 39.71950
# Estructura interna de datos sonido
str(df_sonido)
## 'data.frame':    343 obs. of  2 variables:
##  $ Tiempo: num  1.55e+12 1.55e+12 1.55e+12 1.55e+12 1.55e+12 ...
##  $ Sonido: num  37.8 35.9 34.9 39.9 38.6 ...

Conversión a formato fecha

  • La primera variable de las bases de datos obtenidas con Science Journal indica el tiempo o momento de medición en milisegundos.
  • En R es posible convertir dicha variable que está en formato numérico a formato fecha con la función as.POSIXct().
# Conversión a formato fecha
df_sonido$Tiempo <- as.POSIXct(df_sonido$Tiempo/1000, origin = "1970-01-01")

# Estructura interna
str(df_sonido)
## 'data.frame':    343 obs. of  2 variables:
##  $ Tiempo: POSIXct, format: "2019-02-20 11:21:38" "2019-02-20 11:21:38" ...
##  $ Sonido: num  37.8 35.9 34.9 39.9 38.6 ...

Gráfico de series temporales

Con graphics

  • Gráfico 1: puntos:
plot(x = df_sonido$Tiempo, y = df_sonido$Sonido,
     xlab = "Tiempo (hora: 11:-- am)\n20 de febrero",
     ylab = "Decibeles",
     main = "Serie temporal de decibeles de sonido")

  • Gráfico 2: líneas:
plot(x = df_sonido$Tiempo, y = df_sonido$Sonido, type = "l",
     xlab = "Tiempo (hora: 11:-- am)\n20 de febrero",
     ylab = "Decibeles",
     main = "Serie temporal de decibeles de sonido")

  • Gráfico 3: líneas y puntos:
plot(x = df_sonido$Tiempo, y = df_sonido$Sonido, type = "o",
     xlab = "Tiempo (hora: 11:-- am)\n20 de febrero",
     ylab = "Decibeles",
     main = "Serie temporal de decibeles de sonido")

Con ggplot2

# Instalar y cargar biblioteca ggplot2
library(ggplot2)
  • Gráfico 1: puntos:
ggplot(data = df_sonido, mapping = aes(x = Tiempo, y = Sonido)) +
  geom_point() +
  labs(x = "Tiempo (hora: 11:-- am)\n20 de febrero", y = "Decibeles",
       title = "Serie temporal de decibeles de sonido")

  • Gráfico 2: líneas:
ggplot(data = df_sonido, mapping = aes(x = Tiempo, y = Sonido)) +
  geom_line() +
  labs(x = "Tiempo (hora: 11:-- am)\n20 de febrero", y = "Decibeles",
       title = "Serie temporal de decibeles de sonido")

  • Gráfico 3: líneas y puntos:
ggplot(data = df_sonido, mapping = aes(x = Tiempo, y = Sonido)) +
  geom_point() +
  geom_line() +
  labs(x = "Tiempo (hora: 11:-- am)\n20 de febrero", y = "Decibeles",
       title = "Serie temporal de decibeles de sonido")

Distribución del sonido (decibeles)

Con graphics

hist(df_sonido$Sonido, xlab = "Decibeles",
     ylab = "Frecuencia", main = "Distribución de decibeles de sonido",
     col = "forestgreen")
abline(v = mean(df_sonido$Sonido), lwd = 1.5, col = "blue")

Con ggplot2

ggplot(data = df_sonido, mapping = aes(x = Sonido)) +
  geom_histogram(fill = "forestgreen", color = "black") +
  geom_vline(xintercept = mean(df_sonido$Sonido), lwd = 0.8, color = "blue") +
  labs(x = "Decibeles", y = "Frecuencia",
       title = "Distribución de decibeles de sonido")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Resumen de datos temporales

  • Promedio de decibeles de sonido:
mean(df_sonido$Sonido)
## [1] 37.18139
  • Desviación estándar de decibeles de sonido:
sd(df_sonido$Sonido)
## [1] 4.667552
  • Mediana de decibeles de sonido:
median(df_sonido$Sonido)
## [1] 35.81795
  • Mínimo de decibeles de sonido:
min(df_sonido$Sonido)
## [1] 31.84132
  • Máximo de decibeles de sonido:
max(df_sonido$Sonido)
## [1] 58.69666
  • Cuartil 3 (percentil 75 - decil 7.5) de decibeles de sonido:
quantile(df_sonido$Sonido, probs = 0.75)
##      75% 
## 37.50652
  • Percentil 98 de decibeles de sonido:
quantile(df_sonido$Sonido, probs = 0.98)
##     98% 
## 52.7892
  • Resumen general de decibeles de sonido:
summary(df_sonido$Sonido)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   31.84   34.64   35.82   37.18   37.51   58.70

Ejemplo de base de datos

  • Suponga lo siguiente:
    • Se va a comparar el nivel de sonido en horas de la mañana vs horas de la tarde.
    • Las mediciones se harán de lunes a viernes durante 3 semanas.
    • Cada día se tomarán tres medidas en la mañana y tres medidas en la tarde.
    • Se tendrán como variables respuesta el promedio y el percentil 98 de decibeles de sonido.