2

关于在散点图上计算趋势线的帖子(如何计算图表的趋势线?)非常有帮助,但我很好奇如何在 x 轴为 a 的图表上找到趋势线DateTime 字段,而不是整数。例如,考虑随时间绘制邮件列表订阅者数量图表的情况:

1 月 1 日:100 名订阅者
1 月 2 日:105 名订阅者
1 月 5 日:120 名订阅者
1 月 10 日:117 名订阅者
等...

我遇到的问题是找出其中的“运行”(delta x)部分......因为间隔不会均匀分布,我们不能只假设每次测量之间只有一个时间单位. 我有一种预感,我必须计算出某种规模,但我被困在那里。

谁能解释当 x 轴是 DateTime 字段时如何计算趋势线?(如果您发布代码示例,C#、VB.NET 或 Java 将不胜感激!)

4

4 回答 4

3

您始终可以将日期转换为整数

网络给出了这个例子:

DateTime given = new DateTime(2008, 7, 31, 10, 0, 0);
TimeSpan t = given.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0));
long unixTime = (long) t.TotalSeconds;
于 2009-06-17T16:02:31.220 回答
1

你必须做一种线性插值。您需要将日期和时间转换为线性比例。好消息是你可以选择这个规模。因此,请计算自您的情节开始以来已经过去了多少分钟、几秒钟或几小时。然后,您可以将其用作“运行”部分。

在您的示例中,我们可以休息几天:

1 月 1 日:0 天,100 位订阅者 1 月 2 日:1 天,105 位订阅者 1 月 5 日:4 天,120 位订阅者 1 月 10 日:9 天,117 位订阅者

于 2009-06-17T16:03:42.687 回答
0

即使您的样本间隔不均匀,您的趋势线仍然可以有一个恒定的“运行”。

例如,您可以选择 1 周的间隔。在这种情况下,取 1 月 1、2 和 5 日的平均订阅人数,并在 1 月 7 日绘制一个点。接下来取 1 月 10 日和 13 日的平均值,并在 1 月 14 日绘制一个点。等等。

如果您有大量历史数据,请使用 1 个月的间隔,或者每季度更适合您的数据。

于 2009-06-17T16:10:05.633 回答
0

指定一个起始日期并将其视为 x = 1。如果您想更具体,请选择小时或 8 小时周期。

The first day:
jan 1, 2006 -> x = 1
45 days later
February 13th?? -> x = 45
2 years later:
jan 1, 2008 -> x = 730
于 2009-06-17T16:22:31.483 回答