什么类型的数据是日期?

机器算法验证 造型 探索性数据分析 几何学 多变的
2022-04-20 23:19:00

根据耶鲁:

分类变量表示可以分为组的数据类型 (Lacey M,1997)

对我来说,日期不符合这个定义。它们是序数,因为一个日期比前一个日期大。它也是定量的,因为它可以添加,减去......等等。

我有兴趣将这些观察结果与样本中的其他变量相关联,因此我想进行预建模分析。

我的理解正确吗?

编辑:

谢谢您的回复。普遍的共识是,根据这些数据类型特征 ,日期可以被视为二项式计数数据: https ://en.wikipedia.org/wiki/Statistical_data_type#Simple_data_types 我试图在对数据的评论中加入解释-维基百科中的类型,但是,它似乎不符合人们的实际意思,我会重读。

编辑2: 给出问题的背景:我试图衡量各种过程随时间的影响,这些影响可能不是线性的,而是周期性的(例如季节)。观测值有日期 (dd/mm/yyyy),但这些日期仅相对于其他日期才有意义。

3个回答

这是一个棘手的问题,我个人觉得这个问题更多是关于语义和约定的。

让我们来看看基础知识。什么是日期?这只是我们给 86,400 秒周期的名称。根据定义,日期是从参考点(公元 1 年)开始计算的。如果您的问题与天数有关,您可以简单地将日期视为自然数。或者您可以将天数转换为秒数。并从公元 1 日的第一天开始计算秒数。换句话说,它是我们为特定数字范围赋予的“名称”。

您可以争辩说日期是一个类别变量,因为您可以将它们放在“星期日”、“星期一”等 7 个类别中。但它会达到目的吗?

或者您可以将日期视为数字范围(秒/分钟/小时),参考特定日期/时间点使用秒/分钟/小时。

我觉得这个问题没有一个普遍认可的答案,因为日期可以在各种应用程序中以多种方式使用。

最终,您必须考虑您正在查看的特定应用程序,然后接听电话。

日期不适合 不同测量级别的 Stevens 类型学https://en.wikipedia.org/wiki/Level_of_measurement#Ordinal_scale是正确的。日期当然是有序的,所以我们可以说日期是序数类型,但它们肯定不止于此。在这个意义上专门谈论天时,天文学家使用儒略天

我认为您的问题是我们可以为日期集(或更一般的日期/时间)赋予什么数学结构。那是关于时间的数学表示,我们通常以至少两种方式谈论时间:事件(“什么时候发生的事情”)和持续时间“平昌上届冬季奥运会持续了多长时间”?如果是开幕式的日期,是闭幕式的日期,则持续时间是所以我们可以取两个事件(日期)的差值;这种差异是持续时间。但是我们不能将两个事件(日期)相加,那么应该是什么意思?但冬奥会的中途是有意义的;这是平均所以平均值是有道理的!PQQPP+Q0.5P+0.5Q

这看起来像一个奇怪的数学结构,有两种对象“事件”和“持续时间”,操作仅在某些情况下定义,而不是全部。但它是一个非常有名的对象,一个仿射空间https://en.wikipedia.org/wiki/Affine_space

引入仿射空间的常用方法是说它是“我们忘记了原点”的向量空间。由于我们忘记了原点,任何结果取决于原点的操作都是无效的或未定义的。我们现在可以将“事件”(日期)定义为底层(1-dim)向量空间中的向量,我们可以用实线来识别它。但请注意,这种表示取决于来源的选择!我们必须记住,我们实际所做的任何事情都不能依赖于这个选择。

我们可以将“持续时间”表示为表示日期的向量之间的差异。很明显,冬奥会的持续时间并不取决于我们选择基督诞生的时间起源还是 1970 年 1 月 1 日(linux 中使用的时间起源)。事件的平均值也有意义:如果我们把事件写成,那么 P_i 的平均值一个事件使得 (在仿射几何中通常被称为重心。)注意在这里我们只是对持续时间求和,这是允许的。PiPiQ

i(PiQ)=0
Q

如果我们想在计算环境中实现某种表示日期的数据类型,它必须具有这些属性。让我们在 R 中看到:

 P <- as.Date("2018-2-9") # Starting date of Olympics
 Q <- as.Date("2018-2-25") # end date
 Q-P   # duration 
Time difference of 16 days
 Q+P
Error in `+.Date`(Q, P) : binary + is not defined for "Date" objects
 mean(c(P, Q))  # time midpoint of the games 
[1] "2018-02-17"
 weighted.mean(c(P, Q), c(1/4, 3/4))  # games 3/4-finnished.
[1] "2018-02-21"
 P+16  # 16 days after the opening ceremony 
[1] "2018-02-25"

这一切似乎都很好。

日期可以是有序的、分类的或两者兼而有之。这实际上取决于这些日期代表什么以及您试图用它们回答什么。

如果您的日期所代表的数据可以描述为经过的时间,那么我将使用序数。

例子:

  1. 如果您正在查看您的过程如何影响几十年来人口的增长,并且日期字段表示计算人口的日期,我会将此字段视为序数

  2. 一家公司的历史股价对股票的当前价值有多大影响?

  3. 随着时间的推移,一个过程对一个人的记忆的影响,其中日期字段是一个人参加记忆测试的日期和他们的分数。

如果您的日期所代表的数据可以描述为周期的一部分,那么我将使用分类。

例子:

  1. 如果您想确定您的流程是否对每个日历周的出生人数有影响,我会使用分类

  2. 星期几会影响股票价格的价值吗?

  3. 流程开始的月份是否会影响其结果。

查看这两个示例对,可以很容易地看出,查看过程对物种繁殖的影响的模型或查看对股票价格影响的模型很可能会将日期转换为分类日期和序数日期。

我相信,根据创建模型来回答什么问题以及数据代表什么,将极大地影响应该使用哪个(分类和/或序数)。