2016-08-01 17 views
1

我使用包msm中的delthamethod來導出轉換變量的標準誤差。對擬合線性模型使用delthamethod {msm}時出錯:協方差應該是n×n矩陣

示例代碼:

require(msm) 

x1 <- 1:10 
x2 <- c(0,0,0,0,0,0,0,0,0,0) 
y <- c(1,3,3,4,5,7,7,8,9,10) 

m1 <- lm(y~x1+x2) 
summary(m1) 

deltamethod(~ (1-x1), coef(m1), vcov(m1)) 

我得到的錯誤是「協方差應該是一個3×3矩陣」。原因是1個變量沒有任何變化(x2始終爲零)並且在迴歸輸出中具有「NA」。

有沒有簡單的解決辦法呢?我知道我可以將變量保留下來,但我運行的每個參數大約需要1000個迴歸參數才能估計,NA變量(無變化)每次都是不同的變量。

回答

1

如何:

deltamethod(~(1-x1), na.omit(coef(m1)), vcov(m1)) 
# [1] 0.2949063 
+1

感謝,做工精細! – research111