簡體   English   中英

SAS和R之間的GLM伽瑪分布的標准誤差差異

[英]Standard errors discrepancies between SAS and R for GLM gamma distribution

我正在比較具有Gamma分布的模型的R和SAS的GLM輸出。 點估計是相同的,但是它們對標准誤差的估計不同,因此對p值的估計也不同。

有人知道為什么嗎? 我想知道R和SAS是否使用不同的方法來估計標准誤差? 也許MLE與時刻法?

R樣例代碼

set.seed(2)
test = data.table(y = rnorm(100, 1000, 100), x1 = rnorm(100, 50, 20), x2 = rgamma(100, 0.01))
model = summary(glm(formula = y ~ x1+x2 , family = Gamma(link = "log"), data = test))

使用此處生成的相同數據,我使用以下代碼在SAS中運行模型:

proc genmod data= test_data;
                model y =  x1 x2 /link= log dist= gamma;
    run;

R的輸出如下:

Call:
glm(formula = y ~ x1 + x2, family = Gamma(link = "log"), data = test)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-0.26213  -0.08456  -0.01033   0.08364   0.20878  

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  6.9210757  0.0324674 213.170   <2e-16 ***
x1          -0.0003371  0.0005985  -0.563    0.575    
x2           0.0234097  0.0627251   0.373    0.710    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for Gamma family taken to be 0.01376099)

    Null deviance: 1.3498  on 99  degrees of freedom
Residual deviance: 1.3436  on 97  degrees of freedom
AIC: 1240.6

Number of Fisher Scoring iterations: 4

SAS的輸出: 在此處輸入圖片說明

默認情況下,R以與sas / genmod / model選項scale = pearson相同的方式計算scale = 1 /色散參數。 比例參數的選擇會影響SE。 請參閱此處的文檔: https : //support.sas.com/documentation/cdl/en/statug/63033/HTML/default/viewer.htm#statug_genmod_sect022.htm

默認情況下,SAS / genmod給出shape參數的MLE。 假設擬合的伽瑪模型存儲在列表“ fit”中。 要在R中加載MASS庫,請輸入

gamma.shape(fit)

這給出了形狀參數alpha的MLE。 如果您再輸入

summary(fit, dispersion=1/gamma.shape(fit)$alpha))

摘要功能在計算SE時將使用alpha的MLE,並且它們將與SAS / genmod完全匹配。

我將對此另行發表文章。 雖然summary.glm給出正確的SE(使用指定的色散值),但不會打印正確的AIC值(它不使用指定的色散,而是使用根據Pearson殘差計算的值)。 差別很小,但我將其稱為錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM