2017-09-04 196 views
0

我使用Proc GLM来拟合一个基本的固定效应模型,我想得到方差/协方差矩阵。我知道如果你使用proc reg的模型,这是非常重要的,但是我适合的模型对每个班级的成员(超过50名班级成员)有一个单独的坡度,因此我不想为它们编码虚拟变量。Proc GLM的方差协方差矩阵

有没有什么办法通过proc glm从拟合中得到方差协方差矩阵。

下面是一个组成数据和我的代码的例子。我想获得估计值的方差 - 协方差矩阵。

data example; 
    input price cat time x2 x3; 
    cards; 
    5000 1 1 5.4 50 
    6000 1 2 6 45 
    3000 1 3 7  60 
    4000 2 1 5 50 
    4500 2 2 5.4 75 
    4786 3 1 6 33 
    6500 3 2 5.8 36 
    1010 3 3 4 41 
;;;; 
run; 


proc glm data=example PLOTS(UNPACK)=DIAGNOSTIC; 
    class cat; 
    model price= cat time x2 x3/ noint solution; 
run; 

我得到每个类别的参数估计值(这些人基本上是多余参数),然后我感兴趣的估算时间,X2和X3的协方差矩阵。

感谢

回答

0

你需要输出添加到文件:(我在目的丝网印刷被禁用,但随时为您需要启用它)

proc glm data=example noprint; 
    class cat; 
    model price= cat time x2 x3/noint solution ; 
    **output out= from_glm COVRATIO = Cov ;** 
run; quit; 

所得到:

price cat time x2 x3 COV 
5000 1 1 5.4 50 597.2565 
6000 1 2 6 45 8.312725 
3000 1 3 7 60 0.0493 
.... 

编辑:更新了输出语句。

更多关于关键字看到https://support.sas.com/documentation/cdl/en/statug/63033/HTML/default/viewer.htm#statug_glm_sect020.htm

希望这是你追求的。

+0

这只是创建一个相同的数据集,而不是给出方差 - 协方差矩阵。 –

+0

@RobertMontgomery Whops。确实。我认为语法是outPut out = zz Covratio = Var_name。我会更新答案。 – pinegulf