SAS回归返回0系数

SAS回归返回0系数,sas,regression,linear-regression,Sas,Regression,Linear Regression,我正在使用以下模型运行SAS回归: ods output ParameterEstimates=stock_params; proc reg data=REG_DATA; by SYMBOL DATE; model RETURN_SEC = market_premium; run; ods output close; 其中,RETURN_SEC是股票每秒的回报,market_premium是SPY指数的回报减去无风险利率(无风险利率非常接近于零,因为它处于第二

我正在使用以下模型运行SAS回归:

  ods output ParameterEstimates=stock_params;
  proc reg data=REG_DATA;
    by SYMBOL DATE; 
    model RETURN_SEC = market_premium;
  run;
  ods output close;
其中,RETURN_SEC是股票每秒的回报,market_premium是SPY指数的回报减去无风险利率(无风险利率非常接近于零,因为它处于第二个水平)

然而,我在市场溢价系数中得到了很多0(不是全部,而是相当多)。当我查看日志时,它显示:

NOTE: Model is not full rank. Least-squares solutions for the parameters are
      not unique. Some statistics will be misleading. A reported DF of 0 or B
      means that the estimate is biased.
NOTE: The following parameters have been set to 0, since the variables are a
      linear combination of other variables as shown.


                     market_premium =  - 19E-12 * Intercept
这很奇怪。我检查了数据,结果似乎很好(尽管很多数据包含0个返回秒,这是正常的,因为有时返回值不会在几秒钟内改变,而是在几分钟内改变)


同样让我困惑的是,为什么SAS会在市场溢价=-19E-12*截距时返回0的市场溢价系数。我的意思是,当SAS看到市场溢价是截距的标量倍时,它是否将截距视为唯一变量

这是否意味着可以忽略
market\u premium
,因为截距术语充分解释了这一点?(我还注意到,
19e-12
非常接近SAS中的精度下限,因此与0本身并没有太大区别……)如果截距项充分解释了这一点,那么返回秒基本上是一个常数?但这没有多大意义,除非收益率太小,无法估算。是的,我相信这基本上就是这个意思(尽管我不是统计学家)。你可能会更好地问这个问题,因为这似乎不是一个“如何在SAS中做到这一点”的问题,而是一个关于统计的一般性问题——除非你认为你做错了。我会说我不确定日期前的
是否合适;你真的希望每个日期都被单独分析吗?或者这更像是一个时间序列。实际上,这听起来更像是你可能有数据问题。您是否对数据进行了标准化和规范化?所有这些0的回报可能是一个问题,我可以肯定地看到。如果您的数据在第二级没有显示,那么您是否应该将其汇总到分钟级?使用ETS(
proc expand
或类似工具)来纠正错误。您的“日期”变量“by”很可能导致问题。这意味着您正分别尝试对每个符号和日期进行回归,这可能是不正确的(除非您对单个股票/日期组合有多个观察)。您应该使用时间序列过程将其转换为有效的时间序列,然后使用
proc arima
或其他ETS过程创建您的模型。这是否意味着可以忽略
market\u premium
,因为截距术语充分解释了这一点?(我还注意到,
19e-12
非常接近SAS中的精度下限,因此与0本身并没有太大区别……)如果截距项充分解释了这一点,那么返回秒基本上是一个常数?但这没有多大意义,除非收益率太小,无法估算。是的,我相信这基本上就是这个意思(尽管我不是统计学家)。你可能会更好地问这个问题,因为这似乎不是一个“如何在SAS中做到这一点”的问题,而是一个关于统计的一般性问题——除非你认为你做错了。我会说我不确定日期前的
是否合适;你真的希望每个日期都被单独分析吗?或者这更像是一个时间序列。实际上,这听起来更像是你可能有数据问题。您是否对数据进行了标准化和规范化?所有这些0的回报可能是一个问题,我可以肯定地看到。如果您的数据在第二级没有显示,那么您是否应该将其汇总到分钟级?使用ETS(
proc expand
或类似工具)来纠正错误。您的“日期”变量“by”很可能导致问题。这意味着您正分别尝试对每个符号和日期进行回归,这可能是不正确的(除非您对单个股票/日期组合有多个观察)。您应该使用时间序列程序将其转换为有效的时间序列,然后使用
proc-arima
或其他ETS程序创建模型。