Saltar al contenido principal
LibreTexts Español

10.2: R y tiempo

  • Page ID
    149938
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Si medimos el mismo objeto varias veces, especialmente a intervalos regulares (muestreo), finalmente tendremos las series de tiempo, tipo específico de datos de medición. Si bien muchas opciones comunes de análisis de datos son aplicables a series temporales, existen múltiples métodos y parcelas específicas.

    Las series temporales suelen tener dos componentes, no aleatorios y aleatorios. El primero podría a su vez contener el componente estacional que se relaciona con el tiempo periódicamente, como temporadas del año o día y noche. La tendencia es la segunda parte del componente no aleatorio, es tanto no-aleatorio como no periódico.

    Si la serie temporal tiene el componente no aleatorio, los valores posteriores deben correlacionarse con valores anteriores. Esto es autocorrelación. La autocorrelación tiene rezagos, intervalos de tiempo donde la correlación es máxima. Estos rezagos podrían organizarse jerárquicamente.

    Diferentes series de tiempo podrían correlacionarse cruzadamente si están relacionadas.

    Si el objetivo es analizar las series de tiempo y (1) llenar los huecos dentro de (interpolación) o (2) hacer pronóstico (extrapolación), entonces es necesario crear el modelo de series de tiempo (por ejemplo, con la función arima ()).

    Pero antes del inicio, uno necesitará convertir el marco de datos ordinario o vector en series de tiempo. La conversión de fechas es probablemente lo más complicado:

    Código\(\PageIndex{1}\) (R):

    dates.df <- data.frame(dates=c("2011-01-01","2011-01-02", "2011-01-03","2011-01-04","2011-01-05"))
    str(dates.df$dates)
    dates.1 <- as.Date(dates.df$dates, "%Y-%m-%d")
    str(dates.1)

    En ese ejemplo, mostramos cómo usar la función.Data () para convertir un tipo a otro. En realidad, nuestra recomendación es usar la fecha totalmente numérica:

    Código\(\PageIndex{2}\) (R):

    d <- c(20130708, 19990203, 17650101)
    as.Date(as.character(d), "%Y%m%d")

    La ventaja de este sistema es que las fechas aquí son accesibles (por ejemplo, para ordenar) tanto como números como fechas.

    Y aquí está cómo crear series de tiempo del tipo regular:

    Código\(\PageIndex{3}\) (R):

    ts(1:10,            # sequence
    frequency = 4,      # by quartile
    start = c(1959, 2)) # start in the second quartile 1959

    (Si la serie temporal es irregular, es posible que uno quiera aplicar su () desde su paquete).

    Es posible convertir toda la matriz. En ese caso, cada columna se convertirá en la serie temporal:

    Código\(\PageIndex{4}\) (R):

    z <- ts(matrix(rnorm(30), 10, 3),
    start=c(1961, 1), # start in January 1961
    frequency=12) # by months
    class(z)

    La función plot genérica () “sabe” cómo mostrar las series de tiempo (Figura\(\PageIndex{1}\):

    Código\(\PageIndex{5}\) (R):

    z <- ts(matrix(rnorm(30), 10, 3), start=c(1961, 1), frequency=12) 
    plot(z,
    plot.type="single", # place all series on one plot
    lty=1:3)

    (También hay una función ts.plot () especializada.)

    Screen Shot 2019-02-01 a las 8.31.35 PM.png
    Figura\(\PageIndex{1}\) Tres series de tiempo con un tiempo común.

    Existen numerosos métodos analíticos aplicables a las series de tiempo. Mostraremos algunos de ellos sobre el ejemplo de observaciones “sin parar” sobre plantas carnívoras: rocío solar (Drosera rotundifolia). En la naturaleza, las hojas de rocío solar se abren y cierran constantemente con la esperanza de atrapar y luego digerir a la presa del insecto (Figura\(\PageIndex{2}\)). El archivo sundew.txt contiene resultados de observaciones relacionadas con la cuarta hoja de la segunda planta en el grupo observado. La condición foliar se observó cada 40 minutos, y hubo 36 observaciones por 24 horas. Intentaremos hacer la serie temporal a partir de la columna SHAPE la cual codifica la forma de hoja de hoja (1 plana, 2 cóncava), es el dato clasificado ya que es posible imaginar la SHAPE\(= 1.5\). Command file.show () revela esta estructura:

    Screen Shot 2019-02-01 a las 8.34.08 PM.png
    Figura\(\PageIndex{2}\) Sundew, Drosera rotundifolia. Estas plantas carnívoras conocen su tiempo para comer.

    HÚMEDO; FORMA
    2;
    1 1;
    1 1; 1
    ...

    Ahora podemos leer el archivo y comprobarlo:

    Código\(\PageIndex{6}\) (R):

    leaf <- read.table("data/sundew.txt", h=TRUE, sep=";")
    str(leaf)
    summary(leaf)

    Todo se ve bien, no hay errores visibles ni valores atípicos. Ahora convierte la variable SHAPE en series de tiempo:

    Código\(\PageIndex{7}\) (R):

    leaf <- read.table("data/sundew.txt", h=TRUE, sep=";")
    shape <- ts(leaf$SHAPE, frequency=36)

    Vamos a comprobarlo:

    Código\(\PageIndex{8}\) (R):

    leaf <- read.table("data/sundew.txt", h=TRUE, sep=";")
    shape <- ts(leaf$SHAPE, frequency=36)
    str(shape)

    Se ve perfecto porque nuestras observaciones duraron un poco más de 3 días. Ahora accede a la periodicidad de las series de tiempo (componente estacional) y echa un vistazo a la posible tendencia (Figura\(\PageIndex{3}\)):

    Código\(\PageIndex{9}\) (R):

    leaf <- read.table("data/sundew.txt", h=TRUE, sep=";")
    shape <- ts(leaf$SHAPE, frequency=36)
    (acf(shape, main=expression(italic("Drosera")*" leaf")))

    (Tenga en cuenta también cómo se utilizó expression () para hacer parte del título en cursiva, como es tradicional en biología.)

    Command acf () (función de autocorrelación) genera coeficientes de autocorrelación y también dibuja la gráfica de autocorrelación. En nuestro caso, la periodicidad significativa está ausente porque casi todos los picos se encuentran dentro del intervalo de confianza. Solo los primeros lucios de los árboles están afuera, estos corresponden con rezagos menores a 0.05 días (aproximadamente 1 hora o menos). Significa que dentro de una hora, la forma de la hoja permanecerá igual. En intervalos más grandes (tenemos periodo de 24 h), estas predicciones no son del todo posibles.

    Screen Shot 2019-02-01 a las 8.38.27 PM.png
    Figura Gráfica de\(\PageIndex{3}\) autocorrelación para la hoja de rocío solar.

    No obstante, hay una tendencia en los lucios: son mucho más pequeños a la derecha. Podría ser el signo de tendencia. Compruébalo (Figura\(\PageIndex{4}\)):

    Código\(\PageIndex{10}\) (R):

    leaf <- read.table("data/sundew.txt", h=TRUE, sep=";")
    shape <- ts(leaf$SHAPE, frequency=36)
    plot(stl(shape, s.window="periodic")$time.series, main="")

    Como ves, hay una tendencia a disminuir de SHAPE con el tiempo. Se utilizó la función stl () (STL— “Descomposición estacional de series de tiempo por Loess” para mostrar eso. STL segrega las series temporales en componentes estacionales (duración del día en nuestro caso), aleatorios y de tendencia.

    WET es el segundo personaje de nuestro conjunto de datos de sundew. Muestra la humedad de la hoja. ¿La humedad tiene la misma periodicidad y tendencia que la forma de la hoja?

    Screen Shot 2019-02-01 a las 8.40.47 PM.png
    Figura Gráfica de descomposición\(\PageIndex{4}\) estacional para la hoja de rocío solar. La posible tendencia se muestra en el medio.

    This page titled 10.2: R y tiempo is shared under a Public Domain license and was authored, remixed, and/or curated by Alexey Shipunov via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.