我尽力在网上搜索我的问题的答案,但一直找不到。也许我不是以正确的方式提问,或者我的问题可能无法解决......好吧,这里什么都没有!
在SAS中运行回归时,可以进行向后或向前选择,从而消除所有无关紧要的变量,这很好,但仅仅因为变量的p值≤0.05,这并不一定意味着结果是对的。
例如,我在SAS中进行回归,因变量是由于疾病导致的死亡人数,而自变量是医生的数量。结果显着,p≤0.05,但系数表明,随着医生数量的增加,死亡人数也会增加。这可能是虚假回归的结果,但因果关系是错误的,但SAS只是一台计算机,并且不知道哪种方式会导致因果关系。 (当然也可能是这样,更多的医生=由于其他一些因素造成的死亡人数更多,但现在让我们忽略这一点。)
我的问题是:是否有可能进行回归然后告诉SAS它必须进行向后/向前消除,但根据我设定的一些规则,它还必须排除不符合这些规则的变量?例如。如果死亡人数增加,随着医生人数的增加,排除可变数量的医生?那是什么
我真的希望,有人可以帮助我,因为我使用超过50个变量运行了多年的回归,如果我不必自己完成所有结果,那就太棒了。
谢谢:)
答案 0 :(得分:0)
我不认为这是可能的或推荐的。如前所述,SAS是一台计算机,无法知道哪些回归结果是虚假的。如果更多的医生=更多的医疗程序=更多死亡怎么办?显然,您需要对每种情况应用专家意见,但上述情况同样合理。
你还提到了文档的份额'如果我正确的话,这不是实际的数字吗?因此,它也可能是如何计算该度量的工件。
如果您想要排除一组特定的规则,那么这些规则是可能的。但是你必须首先定义所有这些规则并对它们有一定程度的确定性。
答案 1 :(得分:0)
如果您需要指定不寻常的参数选择标准,您可以随时通过强力推动自己的机器学习:对数据进行分区,在宏循环中的所有分区上运行不同的回归模型,并使用类似AIC
的内容选择最好的模型。
但是,除非您是机器学习专家,否则最好从proc glmselect
开始。
SAS可以在glmselect
程序中进行前向选择和后向消除,例如:
proc gmlselect data=...;
model ... / select=forward;
...
也可以将两种方法结合起来 - 即在宏循环中运行多次proc glmselect
迭代,每次迭代都有不同的模型规范,然后选择最佳结果。