2016-01-20 110 views
0

我很新的R.我試圖複製一個SAS PROC CALIS它計算使用的代碼SEM聯立方程:轉換PROC CALIS SAS到lavaan [R包

proc calis te data= data ucov AUGMENT outest = estimate outstat=mdl_stat_final2 MAXITER = 10000 tech= QUANEW method=ML print privec; 
       lineqs sales = a v1 + b v2 + c v3 + d v4 + e v5+ e1, 
         v2 = f v3 + g v4 + e2, 
         v4 = i v3 + j v5 + e3; 
       STD e1 = Var_e1, 
        e2 = Var_e2, 
        e3 = Var_e3; 
       ods output 
        TotalEffects = total 
        IndirectEffects = indirect 
        TValues = tval 
       ; 
     run; 

我已經使用了lavaan包此用途:

require(lavaan) 
eqn <- 'Sales ~ a*v1 + b*v2 + C*v3 + d*v4 + e*v5 
      v2 ~ f*v3 + g*v4 
      v4 ~ i*v3 + j*v5 ' 

fit.eqn <- sem(eqn,data= data) 

我從R得到的估計值與SAS結果不同。是否需要應用其他條件才能獲得與SAS相同的結果?有沒有其他軟件包可以用來複制R中的SAS代碼?

@thelatemail:估計值的主要差異是當R給出正的估計值,而SAS的估計值是負值時,反之亦然。從R和SAS的估計如下:

Sales ~  Estimate from R Estimate from SAS 
    v1 (a)  2.562       1.094 
    v2 (b)  0.127       0.109 
    v3 (C)  0.016      -0.011 
    v4 (d)  -0.242      -0.260 
    v5 (d)  0.428      -0.053 
v2 ~    
    v3 (f)  0.032       0.071 
    v4 (g)  -0.264       0.816 
    v5 (d) no estimate    0.852 
v4 ~    
    v3 (i)  0.021       0.031 
    v5 (j)  0.756       1.044 
+1

結果如何不同?主要差異或者邊緣周圍的微小變化? – thelatemail

回答

1

我覺得你的模型語法可能是原因。你能指定你的模型結構嗎?什麼是lv和ov?同樣在R中,〜表示對該變量進行迴歸。如果您在=符號的左側有lv,則需要使用=〜而不是〜。