朱莉娅 |如何对 TimeArray 数据集执行线性回归

Posted

技术标签:

【中文标题】朱莉娅 |如何对 TimeArray 数据集执行线性回归【英文标题】:Julia | How to perform a linear regression on a TimeArray dataset 【发布时间】:2016-12-21 05:39:19 【问题描述】:

我有一个TimeArray 类型的数据集,我想执行线性回归。但是,julia 目前似乎不支持TimeArray 类型的回归方法。

我可以将数据下载为DataFrame 而不是TimeArray 并使用GLM 包,但TimeArray 时间戳对于以后的其他分析非常有用。我想直接对TimeArray 数据集执行线性回归。

编辑1:下面给出一个简单的例子:

julia> using TimeSeries

       dates = collect(Date(1999,1,1):Date(1999,1,31))

       # Dependent variable
       y  = TimeArray(dates, rand(length(dates)))

       # Explanatory variables 
       x1 = TimeArray(dates, rand(length(dates))) # Explanatory variable 1
       x2 = TimeArray(dates, rand(length(dates))) # Explanatory variable 2
       x  = rename(merge(x1,x2), ["x1", "x2"])    # Merge x1 and x2 into a single TimeArray

       # Linear regression
       coefs = linreg(x, y) # Yields a method error since linreg does not support the TimeArray type. 

有没有人找到解决此问题的解决方案或解决方法?

【问题讨论】:

只是我的 2 美分:如果您发布一个包含数据的最小示例以及您所设想的/您尝试过的代码不起作用,那么您更有可能得到可能想要修补的人并弄清楚。就像现在一样,有人将这个问题作为一般性问题来回答的唯一方法是,如果某人在最近的过去遇到并解决了确切相同的问题,这种可能性要小得多. 另外,为什么你不能在 DataFrame 版本上进行分析,并简单地保存时间戳以供以后分析? 有关实施 Tasos 建议的更多详细信息,请参见此处:***.com/help/mcve 线性回归只使用值,而不是时间戳,对吧? 我不确定这是否不是您想要的,但coefs = linreg(x.values,y.values) 似乎对我有用 【参考方案1】:

TimeArray 类型似乎有一个.values 字段,您可以使用该字段以正确的顺序获取与数组关联的值。因此,您可以使用以下方法执行线性回归:

coefs = linreg(x.values,y.values)

【讨论】:

如果您喜欢冒险,您甚至可以为使用 .values 字段的 TimeArray 类型定义一个新的 linreg 方法 :)

以上是关于朱莉娅 |如何对 TimeArray 数据集执行线性回归的主要内容,如果未能解决你的问题,请参考以下文章

尽管数据集上有多线程设置,但 TF 时间线显示串行执行

错误:未找到参数名称,尝试了 df.Data 但它不起作用?? (朱莉娅)

原子设计:如何设计组件体系

如何对具有三个不同类别的 3 个圆形数据集执行光谱聚类

如何在 Python 中对包含 TRUE/FALSE 值的数据集执行聚类?

如何编写一个循环,其中数据集被拆分,每个拆分的趋势线斜率在 R 中给出