Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R glm中的系数与loglm中的系数_R_Statistics_Glm - Fatal编程技术网

R glm中的系数与loglm中的系数

R glm中的系数与loglm中的系数,r,statistics,glm,R,Statistics,Glm,我用对数线性模型拟合了一个三维列联表(此处未提供,但如果有帮助的话,我可以),包括loglm和glm。 我得到的关于系数的两个结果是: > coefficients(nodnox_loglm_model) $`(Intercept)` [1] 10.18939 $w 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 -1.

我用对数线性模型拟合了一个三维列联表(此处未提供,但如果有帮助的话,我可以),包括loglm和glm。 我得到的关于系数的两个结果是:

> coefficients(nodnox_loglm_model)
$`(Intercept)`
[1] 10.18939

$w
       0.05         0.1        0.15         0.2        0.25         0.3        0.35         0.4        0.45 
-1.04596513 -0.41193617 -0.08840858  0.06407334 -0.06862606  0.02999039  0.17084795  0.45838071  0.35307375 
        0.5 
 0.53856982 

$s
          2           3           4           5 
 0.36697307  0.15164360 -0.48264571 -0.03597096 

我知道这两种方法有不同的数值过程-我不在乎-我想知道的是如何将glm系数与loglm系数联系起来

在来到stackoverflow之前,我在互联网上和搜索的文档中找到的都是这张便条:

glm系数表的工作原理与方差分析的总结相同 由lm生成:按字母顺序排列的级别(s2,w0.5)用作 截取,然后根据第一个级别测试所有后续级别 (因此,剩余系数与平均值不同,而不是 指他们自己)

然而,对我来说,这还不足以理解如何以loglm的形式从glm输出中获得系数。 现在,您的问题可能是:“为什么不直接使用loglm?” Loglm在我的例子中不起作用(这不是我在这里比较的那个,但是它有一个5维的表,其中有一些零。所以如果我在原始表上使用Loglm,它会给我所有的系数作为NaNs)。所以我坚持使用glm,我真的想得到loglm中的系数


非常感谢

似乎您有一个双向交叉表,其中包含10个级别的因子
w
和5个级别的因子
s
,在模型中没有交互作用。使用
glm()
,分类变量的默认编码方案是,系数中的第一组是参考水平,其余各组的相应参数是其与该参考的差异。
(截距)
估计值适用于所有组=其系数参考水平的单元格

使用
loglm()
,参数用于偏差编码,这意味着每组都有自己的参数,一个因子和的参数为零
(Intercept)
是添加到所有组效果的总平均值

在您的示例中,您可以告诉
glm()
使用偏差编码来获得与
loglm()
相同的参数估计值(请参见下面的示例),或者按照如下方式从治疗编码转换参数估计值:

  • w
    =0.05和
    s
    =2是参考单元格:
    glm()
    9.5104005=
    loglm()
    10.18939+-1.04596513+0.36697307
  • w
    =0.1和
    s
    =2是
    s
    的参考级别,但需要从
    w
    =0.1到参考
    w
    =0.05:
    glm()
    9.5104005+0.6340290=
    loglm()
    10.18939+-0.41193617+0.36697307之间的差异
  • w
    =0.1和
    s
    =3,但需要
    w
    =0.1与参考
    w
    =0.05之间的差异,以及
    s
    =3与参考
    s
    =2之间的差异:
    glm()
    9.5104005+0.6340290+-0.2153295=
    loglm()
    10.18939+-0.41193617+0.15164360,依此类推
使用偏差编码的
glm()
示例(
UCBAdmissions
是一个交叉表,其绝对频率内置在基本R中):

>库(MASS)#用于loglm()
>llmFit系数(llmFit)
$`(截取)`
[1] 5.177567
美元承认
承认拒绝
-0.2283697  0.2283697 
$性别
男女
0.1914342 -0.1914342 
$Dept
A B C D E F
0.23047857 -0.23631478  0.21427076  0.06663476 -0.23802565 -0.03704367 
>UCBdf glmFit系数(glmFit)
(拦截)许可性别1部门1部门2部门3部门4
5.17756677 -0.22836970  0.19143420  0.23047857 -0.23631478  0.21427076  0.06663476 
部门5
-0.23802565 

请注意,
glm()
没有列出通过一个因子的参数的零和约束完全确定(别名)的参数估计值。

如何获得由
零和约束完全确定的参数估计值?i、 例如,如果我没有弄错的话,参考类别的估计值?@mayca并不漂亮(缺少系数名称),但这是可行的:
ce
> coefficients(nodnox_glm_model)
(Intercept)          s3          s4          s5        w0.1       w0.15        w0.2       w0.25        w0.3 
  9.5104005  -0.2153295  -0.8496188  -0.4029440   0.6340290   0.9575566   1.1100385   0.9773391   1.0759555 
      w0.35        w0.4       w0.45        w0.5 
  1.2168131   1.5043458   1.3990389   1.5845350 
> library(MASS)                                # for loglm()
> llmFit <- loglm(~ Admit + Gender + Dept, data=UCBAdmissions)
> coef(llmFit)
$`(Intercept)`
[1] 5.177567

$Admit
  Admitted   Rejected 
-0.2283697  0.2283697 

$Gender
      Male     Female 
 0.1914342 -0.1914342 

$Dept
          A           B           C           D           E           F 
 0.23047857 -0.23631478  0.21427076  0.06663476 -0.23802565 -0.03704367 

> UCBdf <- as.data.frame(UCBAdmissions)  # convert to data frame for glm()
> glmFit <- glm(Freq ~ Admit + Gender + Dept, family=poisson(link="log"),
+               contrasts=list(Admit=contr.sum, Gender=contr.sum, Dept=contr.sum),
+               data=UCBdf)
> coef(glmFit)
(Intercept)      Admit1     Gender1       Dept1       Dept2       Dept3       Dept4 
 5.17756677 -0.22836970  0.19143420  0.23047857 -0.23631478  0.21427076  0.06663476 
      Dept5 
-0.23802565