问题标签 [sas-iml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
231 浏览

sas - SAS Proc IML 滚动窗口(循环)

我想将下面给出的这个工作模块修改为上面的一个,目的是为了代替使用从 1 到 m 的整个 p 样本,该模块将仅使用时间点 x 周围的前 18 个和后 18 个值。所以 p(x-18...x+18)。但我最终遇到了错误,无法真正理解问题出在哪里。帖子末尾带有整个命令行的错误消息。

错误信息:

0 投票
2 回答
163 浏览

optimization - SAS IML constraining a called function

How do I properly constrain this minimizing function? Mincvf(cvf1) should minimize cvf1 with respect to h and I want to set so that h>=0.4

However I get lots of:

Which happens because losing of precision when h approaches 0 and "le" in "mhatx2" approaches 0. At value h=0.4, le is ~0.08 so I just artificially picked that as a lower bound which is still precise enough.

Also this output of "outer" subroutine, ttt which is vector of h fitted for the rolling windows, still provides values below the constraint 0.4. Why?

0 投票
2 回答
1660 浏览

sas - 使用 SAS/IML 中生成的向量作为宏变量

我正在编写一个宏,它将运行 PROC MIXED,使用 PARMS 语句将 1 级残差方差固定为接近零的值。我正在尝试使用 SAS/IML 为 PARMS 语句生成大部分起始值,例如:

如果没有 PROC MIXED 代码中的 PARMS 语句,该代码可以正常工作。然而,当我按原样运行代码时,SAS 显然将文字字符串 'start_vector[label=""]' 放在 PARMS 之后,而不是列出 IML 生成的值。

如何避免此错误并让 SAS 将 START_VECTOR 中包含的值指定为 PARMS 语句的起始值?

0 投票
2 回答
64 浏览

sas - 根据辅助数据集中的值和匹配条件输入主数据集中的缺失值

我对SAS的理解非常初级。我正在尝试做这样的事情,我需要帮助。

我有一个包含 20,000 个观察值的主数据集 A,其中 Col1 存储 CITY,Col2 存储 MILES。Col2 包含大量缺失数据。如下图所示。

我有另一个辅助数据集 B,它有大约 5000 个观察值,与数据集 A 非常相似,其中 Col1 存储 CITY,Col2 存储 MILES。然而,在这个数据集 B 中,Col2 不包含缺失数据。

我的目标是通过匹配 col1 中的城市名称,根据数据集 B 中的英里数来填充数据集 A 中缺失的英里数。

在此示例中,我试图通过匹配两个数据集之间的 Col1(城市名称)来从数据集 B 中填充数据集 A 中的 321.45 和类似的 176.34。

我在 SAS 中需要帮助

0 投票
2 回答
308 浏览

sas - 使用 Weibull 分布的 SAS Randgen 调用

我正在尝试在 proc IML 中使用 call randgen 来创建 10 个随机数,这些随机数遵循具有某些参数的 Weibull 分布。这是我正在使用的代码(显然会有不止一个循环,但我现在只是在测试):

对于此示例,Ntimes = 10,alpha[i] = 4.5985111,beta[i] = 131.79508。我的问题是 10 个迭代/随机数中的每一个都返回为 1。我在 R 中使用了具有相同参数的 rweibull 函数并得到了有意义的结果,所以我认为它与 SAS 或我的代码有关,而不是参数的问题。我是否正确使用了 Randgen 调用?有谁知道为什么结果会这样出来?

0 投票
2 回答
205 浏览

sas - SAS/IML:如何在 RANDNORMAL 中使用单个方差分量

这是一个编程问题,但我会先给你一些统计背景知识。这个问题是指混合效应位置尺度模型(即异质方差)的数据模拟的一部分。我正在尝试使用 IML 中的 RANDNORMAL 函数来模拟两个 MVN 方差分量。因为两个方差分量都是异质的,所以 RANDNORMAL 使用的方差会因人而异。因此,我需要 IML 来选择特定的行(例如,第 1 行 = 人 1)并在移动到下一行之前使用 RANDNORMAL 函数,依此类推。

我下面的示例代码适用于 2 人。我使用 DO 循环遍历每个人的特定方差分量(VC1 和 VC2)。我收到错误消息:“模块 RANDNORMAL 在退出之前的调用之前再次调用。” 我假设我需要在 DO 循环中使用某种 BREAK 或 EXIT 函数,但我没有尝试过工作。

任何帮助表示赞赏。哦,我正在使用 SAS 9.4。

0 投票
1 回答
370 浏览

sas - 填充矩阵 proc iml SAS

我有两列(c1,c2)的 ax 矩阵。我想修复第一列(c1),将 10 列添加到 X 矩阵中,每列都有值 C2+m、C2+m...C2+m,m 是一个随机整数。最后矩阵将是:

C1, C2+m, C2+m, C2+m...C2+m;

代码:

有人可以帮我解决这个问题。。谢谢

0 投票
1 回答
343 浏览

macros - SAS 简单宏 - 错误

为什么这个非常简单的宏程序:

给出错误?:

0 投票
2 回答
102 浏览

sas - proc IML 中的代码重用:通过将向量名称指定为字符串来访问向量的内容

在用户定义模块中的 SAS 系统的 proc IML 中,我希望能够通过将向量的名称作为参数来访问向量中的数据。

例如,在下面的代码中,名为“test”的模块构建了两个字符串“x_vec1”和“x_vec2”,但不打印这两个向量的内容,而是打印它们的名称(我认为提交块产生相同的结果)。

这个概念很容易使用宏通过在宏中调用 IML 来实现,但我想纯粹在 IML 中完成它以保持代码“干净”。虽然 IML 非常适合统计工作,但我需要的不仅仅是这些——我需要通过一个类似于宏变量的概念来保​​持我的代码简短,该宏变量可以在运行时在函数中解析。

0 投票
1 回答
1208 浏览

sas - 如何在 SAS 中使用 IML 在两个矩阵之间进行乘法运算

我在从 EXCEL 导入下面有名为 input_data 的数据集。

我在下面还有另一个名为 p 的数据集

我想做的是使用 SAS 在 IML 中进行矩阵操作。

我已经有一些代码,但最终的计算出错了。有人可以帮帮我吗?