AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / coding / Perguntas / 79137706
Accepted
user430997
user430997
Asked: 2024-10-29 22:41:39 +0800 CST2024-10-29 22:41:39 +0800 CST 2024-10-29 22:41:39 +0800 CST

Como vincular séries temporais em R?

  • 772

Este é o problema com o qual estou trabalhando.

Tenho essas duas saídas de modelos de séries temporais em R:

library(forecast)
library(dplyr)
set.seed(123)

dates <- seq(as.Date("2000-01-01"), by = "month", length.out = 100)
##################


values1 <- rnorm(100, mean = 100, sd = 100)
ts_data1 <- ts(values1, start = c(2000, 1), frequency = 12)
model1 <- auto.arima(ts_data1)

forecast_data1 <- forecast(model1, h = 12)
forecast_data1$class = 1

####################


values2 <- rnorm(100, mean = 200, sd = 100)
ts_data2 <- ts(values2, start = c(2000, 1), frequency = 12)
model2 <- auto.arima(ts_data2)

forecast_data2 <- forecast(model2, h = 12)
forecast_data2$class = 2

Estou tentando unir esses dois, por exemplo

 rbind(data.frame(forecast_data1), data.frame(forecast_data2))
          Point.Forecast        Lo.80    Hi.80       Lo.95    Hi.95
May 2008       116.88772   2.03451679 231.7409  -58.765094 292.5405
Jun 2008        84.77524 -30.07795384 199.6284  -90.877564 260.4281
Jul 2008        88.15699 -26.69621184 203.0102  -87.495822 263.8098
Aug 2008        97.84920 -17.00400178 212.7024  -77.803612 273.5020
Sep 2008       104.59216 -10.26103639 219.4454  -71.060647 280.2450
Oct 2008       123.46321   8.61001633 238.3164  -52.189594 299.1160
Nov 2008        80.16232 -34.69087853 195.0155  -95.490489 255.8151
Dec 2008       122.86121   8.00801357 237.7144  -52.791597 298.5140
Jan 2009        62.16134 -52.69186110 177.0145 -113.491472 237.8141
Feb 2009        76.41793 -38.43527070 191.2711  -99.234881 252.0707
Mar 2009       114.92293   0.06973034 229.7761  -60.729880 290.5757
Apr 2009       132.14088  17.28768324 246.9941  -43.511927 307.7937
May 20081      173.02664  50.54760673 295.5057  -14.288876 360.3422
Jun 20081      196.17783  73.69880321 318.6569    8.862321 383.4933
Jul 20081      181.38489  58.90585584 303.8639   -5.930626 368.7004
Aug 20081      196.21547  73.73644398 318.6945    8.899962 383.5310
Sep 20081      189.46162  66.98258965 311.9407    2.146107 376.7771
Oct 20081      200.14378  77.66475146 322.6228   12.828269 387.4593
Nov 20081      214.71057  92.23154347 337.1896   27.395061 402.0261
Dec 20081      151.90221  29.42317702 274.3812  -35.413305 339.2177
Jan 20091      176.64285  54.16381860 299.1219  -10.672664 363.9584
Feb 20091      211.48637  89.00734228 333.9654   24.170860 398.8019
Mar 20091      196.08048  73.60144798 318.5595    8.764966 383.3960
Apr 20091      210.85820  88.37916960 333.3372   23.542687 398.1737

Mas, por algum motivo, a variável de classe (ou seja, 1 ou 2) não está aparecendo para mostrar de qual modelo as previsões são.

Como posso consertar isso?

  • 2 2 respostas
  • 36 Views

2 respostas

  • Voted
  1. Stefano Barbi
    2024-10-29T22:58:03+08:002024-10-29T22:58:03+08:00

    Quando você converte o objeto de previsão para um data frame, o classslot é perdido. Você deve adicionar o classslot após a conversão. por exemplo

    > forecast_data2 <- data.frame(forecast(model2, h = 12))
    > 
    > forecast_data2$class = 2
    
    > > forecast_data2
             Point.Forecast    Lo.80    Hi.80      Lo.95    Hi.95 class
    May 2008       173.0266 50.54761 295.5057 -14.288876 360.3422     2
    Jun 2008       196.1778 73.69880 318.6569   8.862321 383.4933     2
    Jul 2008       181.3849 58.90586 303.8639  -5.930626 368.7004     2
    Aug 2008       196.2155 73.73644 318.6945   8.899962 383.5310     2
    Sep 2008       189.4616 66.98259 311.9407   2.146107 376.7771     2
    Oct 2008       200.1438 77.66475 322.6228  12.828269 387.4593     2
    Nov 2008       214.7106 92.23154 337.1896  27.395061 402.0261     2
    Dec 2008       151.9022 29.42318 274.3812 -35.413305 339.2177     2
    Jan 2009       176.6428 54.16382 299.1219 -10.672664 363.9584     2
    Feb 2009       211.4864 89.00734 333.9654  24.170860 398.8019     2
    Mar 2009       196.0805 73.60145 318.5595   8.764966 383.3960     2
    Apr 2009       210.8582 88.37917 333.3372  23.542687 398.1737     2
    
    • 1
  2. Best Answer
    Grzegorz Sapijaszko
    2024-10-29T22:58:08+08:002024-10-29T22:58:08+08:00

    Converta o forecastobjeto em data.frame antes de adicionar classa coluna, como:

    dates <- seq(as.Date("2000-01-01"), by = "month", length.out = 100)
    values1 <- rnorm(100, mean = 100, sd = 100)
    ts_data1 <- ts(values1, start = c(2000, 1), frequency = 12)
    model1 <- auto.arima(ts_data1)
    
    forecast_data1 <- forecast(model1, h = 12)
    forecast_data1$class = 1
    
    class(forecast_data1)
    #> [1] "forecast"
    
    forecast_data1 <- forecast_data1 |>
      as.data.frame()
    
    forecast_data1$class = 1
    

    Então o mesmo para o 2º:

    forecast_data2 <- forecast(model2, h = 12)
    
    forecast_data2 <- forecast_data2 |>
      as.data.frame()
    forecast_data2$class = 2
    
    rbind(forecast_data1, forecast_data2)
    #>           Point Forecast        Lo 80    Hi 80       Lo 95    Hi 95 class
    #> May 2008       116.88772   2.03451679 231.7409  -58.765094 292.5405     1
    #> Jun 2008        84.77524 -30.07795384 199.6284  -90.877564 260.4281     1
    #> Jul 2008        88.15699 -26.69621184 203.0102  -87.495822 263.8098     1
    #> Aug 2008        97.84920 -17.00400178 212.7024  -77.803612 273.5020     1
    #> Sep 2008       104.59216 -10.26103639 219.4454  -71.060647 280.2450     1
    #> Oct 2008       123.46321   8.61001633 238.3164  -52.189594 299.1160     1
    #> Nov 2008        80.16232 -34.69087853 195.0155  -95.490489 255.8151     1
    #> Dec 2008       122.86121   8.00801357 237.7144  -52.791597 298.5140     1
    #> Jan 2009        62.16134 -52.69186110 177.0145 -113.491472 237.8141     1
    #> Feb 2009        76.41793 -38.43527070 191.2711  -99.234881 252.0707     1
    #> Mar 2009       114.92293   0.06973034 229.7761  -60.729880 290.5757     1
    #> Apr 2009       132.14088  17.28768324 246.9941  -43.511927 307.7937     1
    #> May 20081      173.02664  50.54760673 295.5057  -14.288876 360.3422     2
    #> Jun 20081      196.17783  73.69880321 318.6569    8.862321 383.4933     2
    #> Jul 20081      181.38489  58.90585584 303.8639   -5.930626 368.7004     2
    #> Aug 20081      196.21547  73.73644398 318.6945    8.899962 383.5310     2
    #> Sep 20081      189.46162  66.98258965 311.9407    2.146107 376.7771     2
    #> Oct 20081      200.14378  77.66475146 322.6228   12.828269 387.4593     2
    #> Nov 20081      214.71057  92.23154347 337.1896   27.395061 402.0261     2
    #> Dec 20081      151.90221  29.42317702 274.3812  -35.413305 339.2177     2
    #> Jan 20091      176.64285  54.16381860 299.1219  -10.672664 363.9584     2
    #> Feb 20091      211.48637  89.00734228 333.9654   24.170860 398.8019     2
    #> Mar 20091      196.08048  73.60144798 318.5595    8.764966 383.3960     2
    #> Apr 20091      210.85820  88.37916960 333.3372   23.542687 398.1737     2
    

    Criado em 2024-10-29 com reprex v2.1.0

    • 1

relate perguntas

  • Adicionar número de série para atividade de cópia ao blob

  • A fonte dinâmica do empacotador duplica artefatos

  • Selecione linhas por grupo com 1s consecutivos

  • Lista de chamada de API de gráfico subscritoSkus estados Privilégios insuficientes enquanto os privilégios são concedidos

  • Função para criar DFs separados com base no valor da coluna

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Por que esse código Java simples e pequeno roda 30x mais rápido em todas as JVMs Graal, mas não em nenhuma JVM Oracle?

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Quando devo usar um std::inplace_vector em vez de um std::vector?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Marko Smith

    Estou tentando fazer o jogo pacman usando apenas o módulo Turtle Random e Math

    • 1 respostas
  • Martin Hope
    Aleksandr Dubinsky Por que a correspondência de padrões com o switch no InetAddress falha com 'não cobre todos os valores de entrada possíveis'? 2024-12-23 06:56:21 +0800 CST
  • Martin Hope
    Phillip Borge Por que esse código Java simples e pequeno roda 30x mais rápido em todas as JVMs Graal, mas não em nenhuma JVM Oracle? 2024-12-12 20:46:46 +0800 CST
  • Martin Hope
    Oodini Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores? 2024-12-12 06:27:11 +0800 CST
  • Martin Hope
    sleeptightAnsiC `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso? 2024-11-09 07:18:53 +0800 CST
  • Martin Hope
    The Mad Gamer Quando devo usar um std::inplace_vector em vez de um std::vector? 2024-10-29 23:01:00 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST
  • Martin Hope
    MarkB Por que o GCC gera código que executa condicionalmente uma implementação SIMD? 2024-02-17 06:17:14 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve