majianthu的个人博客分享 http://blog.sciencenet.cn/u/majianthu

博文

欧洲人夏休起止时间分析

已有 500 次阅读 2026-8-22 14:58 |系统分类:科研笔记

引言

欧洲夏休是欧洲国家在夏季特有的传统长假制度。今年的夏休已经结束,欧洲又重新上线。

夏休刚开始时,我们提出基于R数据分析夏休的实际开始时间,利用基于Copula熵的变点检测分析copent算法包的下载数据,将下载量反映的R使用情况作为夏休前后工作情况进行对比分析。变点检测数据实验得出结论:夏休开始是在7月9日前后。

Copula熵变点检测算法分为单变点检测和多变点检测,前者假设只有一个变点,而后者假设有未知个数的多个变点,通过将单变点检测和二分割策略相结合的方式完成多个变点的检测,变点的个数无需指定,由算法自动检测得到。

copent算法包中实现了copula熵单变点和多变点检测算法,函数分别为cpd和mcpd。由于算法计算量较大,cpd函数实现采用了cpu并行计算技术,以提高算法时间效率。

前次检测夏休开始时间只需要单变点检测即可,而要同时检测开始和结束时间则需要利用多变点检测。

今天我们将利用基于Copula熵的多变点检测算法分析copent算法包的下载数据,希望同时得到夏休的开始和结束时间。

R数据实验

我们首先利用cranlogs算法包获得copent包从夏休开始前的6月1日到今天的下载量数据:

library(cranlogs)

dl2 = cran_downloads("copent", from = "2026-06-01", to = "2026-08-20")

然后,我们利用copent算法包中的Copula熵多变点检测算法mcpd函数分析下载量时间序列数据,由于算法是基于信息论的熵,因此算法的变点检测阈值参数thd无需调节,采用默认值即可:

library(copent)

mcpd1 = mcpd(dl2$count)

算法检测到的3个变点位置如下所示:

> mpos = mcpd1$pos

> mpos

[1]  9 38 67 

最后,将变点位置结果在下载量时序数据上绘制出来:

eu-summer2.png

根据上图所示结果,7、8月间有两个变点,分别对应夏休的开始和结束。欧洲夏休的开始时间在7月8日,与上次分析结果(7月9日)基本一致,夏休结束的时间在8月6日,夏休维持近1个月,与欧洲夏休的实际情况基本相符。从上图也可以看到,在变点给出夏休时段上,copent包的下载量明显低于夏休前后的时段,说明了变点检测结果的合理性。

结论

我们利用Copula熵多变点检测算法分析了copent包的下载量数据,得到了欧洲夏休的实际起止时间估计,与实际情况基本相符。

分析实验结果表明了Copula熵变点检测算法的有效性。

参考文献

  1. Ma, Jian. Change Point Detection with Copula Entropy based Two-Sample Test. arXiv preprint arXiv:2403.07892, 2024.

  2. Ma, Jian. copent: Estimating Copula Entropy and Transfer Entropy in R. arXiv preprint arXiv:2005.14025, 2020.



https://blog.sciencenet.cn/blog-3018268-1549062.html

上一篇:欧洲人夏休从哪天开始?-- 基于R数据的检测




    
收藏 IP: 123.118.217.*| 热度|

1 李志林

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2026-9-3 15:50

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部