当前位置: 首页 > 知识库问答 >
问题:

SAS中的PROC UCM:如何在每日数据系列中指定星期几和月份季节性

莫英喆
2023-03-14

我有从2014年1月1日到2015年12月31日的两年每日数据。我想使用此数据集预测未来365天。

*代码**

PROC UCM data=Mydata;                                                                                                                                                                                                                                      
id date interval=day; /*set the interval as day*/                                                                                                                                                                                                                                          
model Sold;
irregular;
level;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
slope ;                                                                                                                                                                                                                                                         
cycle period=365.24 rho=1 variance=0 noest=(rho period variance);                                                                                                                                                                                               
estimate;                                                                                                                                                                                                                                                       
forecast lead=365 OUTFOR=Ucmm.DATA;                                                                                                                                                                                                                             
run;

有一种趋势是基于一周中的哪一天和一年中的哪一个月。我如何具体说明?

我知道一周中的某一天可以设置为7。这个月我怎么能指定呢?因为有些月份有31天,有些月份有30天,而二月有28/29天。我如何解决这个问题?我知道可以使用季节来指定 命令。但是怎么做呢?


共有2个答案

狄彬彬
2023-03-14

月份假人的替代选项:Proc UCM有一个名为BLOCKSEASON的单独语句,位于SEASON语句之上。您可以为一周中的某一天指定一个7的季节,然后将365.24/12指定为块。

裴劲
2023-03-14

这是一个有趣的问题。对于快速解决方案,我建议在原始数据集中手动创建虚拟变量,您可以将其指定为输入变量。我确信有更好和更先进的方法使用赛季Splineseason语句来实现更好的估计,但是与其他ETS程序相比,我没有使用这个特定的过程。

data want;
    set have;
    array month[*] Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov;
    do i = 1 to dim(month);
         month[i] = (month(date) = i);
    end;

    drop i;
run;


proc ucm data=want;
     model Sold = Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov;
       irregular;
       level;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
       slope ;                                                                                                                                                                                                                                                         
       cycle period=365.24 rho=1 variance=0 noest=(rho period variance);                                                                                                                                                                                               
       estimate;                                                                                                                                                                                                                                                       
       forecast lead=365 OUTFOR=Ucmm.DATA;                                                                                                                                                                                                                             
run;
 类似资料:
  • 问题内容: 一年分为12个月。我们可以在四个星期内分解一个月。 在MySQL中,如何返回每月的星期几?(例如:第一周:2个条目,第二周:5个条目,第三周:3个条目;第四周:8个条目) 使用Week和WeekOfYear不能获得理想的结果,因为函数返回的是星期数YEAR,而不是月份。 问题答案: 我想说明的是,这可能不是分割数据的好方法-(请参阅注释),但这将使您尽可能地接近。

  • 问题内容: 我对Javascript不太了解,我发现的其他问题与日期操作有关,不仅是在需要时获取信息。 目的 我希望获得以下格式的日期: 2011年1月27日星期四17:42:21打印 到目前为止,我得到以下信息: 我现在需要知道如何获取星期几和一年中的月份(它们的名称)。 有没有一种简单的方法可以做到这一点,或者我应该考虑使用可以简单地使用和索引到正确值的数组? 问题答案: 是的,您需要数组。

  • 在给定年、月和周的情况下,是否有可能获得一周中第一个日期的DAYOFMONTH? 请注意,一周的第一个日期也可能是前一个月,甚至是前一年。 我知道这是可以通过编程实现的,至少使用java。时间、时间场等。。但我想在sql查询级别上这样做,因为当涉及周时,过程中会涉及两个额外的参数,即被视为一周的第一天的DayOfWeek和一个月内一周的最小天数。如果sql和api上的配置不完全相同,则可能会导致不

  • 我正在尝试提取每个月的最大日期,以便以后进行连接,以便在结果中提取与Transact-SQL for SQL Server中的此最大日期匹配(内部连接)的记录/行 主要问题是,在我转换日期之前的步骤中,这些日期分别与一个月的第一个星期日或第二个星期日减去1天或2天正好匹配。在那之后,我试着选择了一年中每周的最大日期(类似的行为),但它不起作用 我有这个选择每周的最大日期,没有问题 但对月份应用相同

  • 问题内容: 所以我的代码如下: 我正在做一个测试,看是否可以过滤月份,所以它只显示11月的日期,但这没有用。它给了我以下错误:AttributeError:’Int64Index’对象没有属性’month’。 如果我做 然后我得到类’pandas.tslib.Timestamp’,这使我相信存储在数据框中的对象类型是Timestamp对象。(我不确定之前的错误是“ Int64Index”来自何处)

  • 本文向大家介绍C#根据年月日计算星期几的函数,包括了C#根据年月日计算星期几的函数的使用技巧和注意事项,需要的朋友参考一下 DateTime.Now.ToString("dddd",new System.Globalization.CultureInfo("zh-cn")); 今天在网上看见一些关于 C#实现的根据年月日计算星期几 的介绍:  算法如下: 基姆拉尔森计算公式 W= (d+2*m+3