人口普查的X12季节性调整计划,输入文件扩展名的问题

时间:2011-08-11 21:55:33

标签: r sas spss

我下载了位于此处的X12季节性调整计划:http://www.census.gov/srd/www/x12a/x12downv03_pc.html

我按照设置进行了设置。当我选择要输入的文件时,我有四个要导入的文件扩展名选项,分别是“.spc”“。mta”“。dta”和“。”

问题是我有excel中的数据,并且我已经通过搜索引擎进行了广泛搜索,但是我无法找到一种方法将excel中的数据转换为其中一种格式,因此我可以对数据进行季节性调整。感谢

ADDED:转换为dta文件后(由于下面留下的评论使用R),程序看起来像是将它也转换为.spc文件。任何人都有如何做到这一点的领导?感谢

3 个答案:

答案 0 :(得分:4)

我的第一反应是: (1)从像csv这样简单的东西中导出excel中的数据。 (2)将该数据导入R (3)使用R库“foreign”以.dta格式导出数据。

因此文件“test.csv”包含:

V1,V2
1,2
3,4
5,6

您可以执行以下操作来生成“test.dta”:

library(foreign)
testdata <- read.csv("test.csv")
write.dta(testdata,"test.dta")

Voila,.dta格式的数据。这会对你的工作有用吗?

答案 1 :(得分:4)

我只使用过X12的命令行版本,但听起来你可能正在使用windows界面?如果是这样,以下可能不完全准确,但它应该足够接近(我希望!)。

您引用的.dta和.mta文件只是包含要处理的规范文件或数据文件的文本列表的元文件;特别是 .dta使用的.dta文件不是Stata数据格式文件,就像Nathan基于R的答案所产生的那样。在使用软件调整单个时间序列之前,最好忽略使用元文件。

您可以使用制表符分隔的变量格式(年月/季度值)导出数据而不使用标题,并将其用作数据文件。您还可以使用由空格,制表符或换行符分隔的简单数据值列表,然后告诉X12ARIMA .spc文件中该系列的开始和结束日期是什么。

.spc文件不包含输入数据,它是一个规范文件告诉X12在哪里可以找到数据文件以及如何处理这些数据 - 您必须自己编写它们或者在赢得X-12。

理想情况下,您应该为每个要调整的时间序列编写单独的.spc文件;虽然你可以编写一个.spc文件来调用许多X12的自动选择和识别程序,但将这个过程视为一个黑盒通常不是一个好主意,并且.spc中的一些人工干预通常是必要的。质量调整(如果涉及季节性休息则必不可少)。我发现从适合您的计算环境开始的相当通用的骨架.spc文件开始,然后根据每个系列进行适当调整是有帮助的。

如果你真的想使用单个.spc文件来调整多个系列,那么你可以在.dta文件和单个.spc文件中提供数据文件列表,指示X12ARIMA如何调整它们,但要注意确保这适合您的数据!

该网站上的“PC上的X-12-ARIMA输入文件入门”文档可能是一个开始阅读的好地方,但您可能最终还是要查阅完整的参考文档(特别是章节) 3和7)。

编辑postscript:

英国国家统计局在线提供了X12ARIMA季节性调​​整指南草案here here (archive.org),值得一看。通过比人口普查局的文件更容易完成。

答案 2 :(得分:0)

瑞恩

这不优雅,但它可能对你有用。在这个例子中,我试图从Census文档中的Example 3.2复制spec文件。

将数据连接成一个文本字符串,然后使用SAVE AS命令下的MS-DOS(TXT)格式保存此单个文本字符串。要创建文本字符串,首先在列标题上方插入两个单元格,然后在第二个单元格中键入以下文本。

  

系列{标题=

接下来,在列标题中的文本前后插入双引号,如下所示:

  

“家电商店每月零售额”

在最后一个数据行的正下方,插入列出模型规范的文本行,如下所示:

)
start= 1972.jul}    
transform{function = log}
regression{variables=td}
indentify[diff=(0,1) sdiff=(0,1)}

所以你应该有以下内容:

<blank row>
series{title=
"Monthly Retail Sales of Household Appliance Stores"
530
529
...
592
590
start= 1972.jul}
transform{function = log}
regression{variables=td}
indentify{diff=(0,1) sdiff=(0,1)}

对于下一个说明,我假设文本*系列{title = *出现在单元格A2中,单元格B1为空。在单元格B2中,插入以下内容:

  

= CONCATENATE(B1,A2,“”)

然后将此公式复制到列中的每个单元格中,以将A列中的所有文本连接到B列末尾的单个单元格中。最后,使用PASTE SPECIAL / VALUE将最终单元格复制到新电子表格的单元格A1 ,并使用SAVE AS:* TXT(MS-DOS)保存此电子表格,但将扩展名更改为“.spc”。

祝你好运(从我读到的人口普查文件来看,你需要它)。