SAS搜索变量的值
SAS search for value of variable
我对 SAS 比较陌生,编程经验有限。我需要编写代码来搜索将形成相等性的特定变量的值。例如,我需要找到使以下代数方程成立的 k 的值:
A = B + {[(C - k(B)] / (1+k)} + {[(D - k(E)] / (1+k)^2},等等
在这个等式中,我知道A、B、C、D等的值,需要搜索一个符合等式的k值(贴现率)。
这是我尝试使用的过程模型代码:
proc model data = test noprint;
p = bv0 + ((e1 - (k * bv0)) / (1+k)) + ((e2 - (k * bv1)) / ((1+k)**2)) + ((e3 - (k * bv2)) / ((1+k)**3)) + ((e3 - k *(bv2)) * (1+g)) / (((1+k)**3) * (k - g));
ENDOGENOUS k;
solve k / out = est;
run;
当我 运行 此代码时,我收到以下错误消息:
警告:模型中未定义方程。 (检查是否缺少 VAR 或 ENDOGENOUS 语句。)
错误:以下求解变量未出现在任何要求解的方程中:k
任何人都可以提供任何帮助都很棒!谢谢!
如果 p
应该是方程的名称,请尝试在 p
之前添加 eq.
前缀。如果p
是一个变量,右边的表达式应该等于,那么把p
换成eq.equation1
,把-p
放在右边。
我对 SAS 比较陌生,编程经验有限。我需要编写代码来搜索将形成相等性的特定变量的值。例如,我需要找到使以下代数方程成立的 k 的值:
A = B + {[(C - k(B)] / (1+k)} + {[(D - k(E)] / (1+k)^2},等等
在这个等式中,我知道A、B、C、D等的值,需要搜索一个符合等式的k值(贴现率)。
这是我尝试使用的过程模型代码:
proc model data = test noprint;
p = bv0 + ((e1 - (k * bv0)) / (1+k)) + ((e2 - (k * bv1)) / ((1+k)**2)) + ((e3 - (k * bv2)) / ((1+k)**3)) + ((e3 - k *(bv2)) * (1+g)) / (((1+k)**3) * (k - g));
ENDOGENOUS k;
solve k / out = est;
run;
当我 运行 此代码时,我收到以下错误消息:
警告:模型中未定义方程。 (检查是否缺少 VAR 或 ENDOGENOUS 语句。) 错误:以下求解变量未出现在任何要求解的方程中:k
任何人都可以提供任何帮助都很棒!谢谢!
如果 p
应该是方程的名称,请尝试在 p
之前添加 eq.
前缀。如果p
是一个变量,右边的表达式应该等于,那么把p
换成eq.equation1
,把-p
放在右边。