【问题标题】:How to run Time Series Regression with years, countries, and multiple values in R?如何在 R 中使用年份、国家和多个值运行时间序列回归?
【发布时间】:2022-12-10 16:06:21
【问题描述】:

我想我知道我需要做什么,我只是不知道如何让它发挥作用。

数据示例: data

我有几十年的这种格式的 excel 数据,我上传到 R。我相信我需要以某种方式将它转换为时间序列或日期格式,但保留国家/地区作为类别,以便我可以运行以下回归: y~x1+x2; x1 ~ x2; y ~ x1

任何人都可以共享可以帮助我完成此任务的代码/程序包吗?感觉很简单,但是找了几个小时也没找到例子。是否也建议使用 ggplot 生成带有这些数据的图形?

我尝试将其转换为 as.xts,但这没有用,可能是因为我理解不佳和国家列。我失败的尝试如下:

modelts=as.xts(model1[,-1],order.by=as.Date(model1[,1],format='%m%d%Y'))

【问题讨论】:

    标签: r categories multivariate-time-series


    【解决方案1】:

    要将 R 中的数据转换为时间序列格式,可以使用 ts() 函数。此函数采用以下参数:

    数据值向量 数据的频率(例如每年、每月、每天等的观察次数) 数据开始时间 下面是一个示例,说明如何使用 ts() 函数将数据转换为时间序列格式:

    # Convert the data to a time series object
    model_ts <- ts(model1[, -1], frequency = 12, start = c(1970, 1))
    
    # Print the time series object
    print(model_ts)
    

    在此示例中,model1 是包含您的数据的数据框,而 ts() 函数用于从第二列开始的值(不包括包含日期的第一列)中的值创建时间序列对象。数据的频率指定为 12(每月数据),起始时间设置为 1970-01。

    将数据转换为时间序列格式后,您可以使用 lm() 函数将线性回归模型拟合到您的数据。例如,要拟合一个回归模型,其中 y 是因变量,x1 和 x2 是自变量,您可以使用以下代码:

    # Fit a linear regression model to the data
    model <- lm(y ~ x1 + x2, data = model_ts)
    
    # Print the model summary
    summary(model)
    

    要可视化您的数据和回归模型的结果,您可以使用 R 中的 ggplot2 包。该包提供了广泛的绘图函数,可用于创建高质量的数据可视化。下面是一个示例,说明如何使用 ggplot2 包创建数据的散点图:

    # Load the ggplot2 package
    library(ggplot2)
    
    # Create a scatterplot of the data
    ggplot(data = model_ts, aes(x = x1, y = y)) +
      geom_point()
    

    此代码使用 ggplot2 包中的 ggplot() 和 geom_point() 函数创建数据中 x1 和 y 变量的散点图。然后,您可以通过添加额外的层并使用 ggplot2 包提供的函数修改绘图外观来进一步自定义绘图。

    【讨论】:

      猜你喜欢
      • 2018-08-19
      • 2020-06-15
      • 2021-12-27
      • 2021-12-25
      • 2019-02-10
      • 1970-01-01
      • 2021-03-14
      • 2021-08-15
      • 2020-07-12
      相关资源
      最近更新 更多