R 执行glm时';性别';变量的后缀为值(M)

R 执行glm时';性别';变量的后缀为值(M),r,glm,R,Glm,当我在R中运行'glm'时,“性别”变量的后缀是M(对于男性)。它有什么特别的含义吗?或者我的代码中有什么错误 >as.formula('response ~ gender + age + var1 +var2+var3+var4') response ~ gender + age + var1 + var2 + var3 + var4 >model <- try(glm(formula = fmla, na.action=na.exclude , data = tmp

当我在R中运行'glm'时,“性别”变量的后缀是M(对于男性)。它有什么特别的含义吗?或者我的代码中有什么错误

>as.formula('response ~ gender + age + var1 +var2+var3+var4')
  response ~ gender + age + var1 + var2 + var3 + var4
>model <- try(glm(formula = fmla,   na.action=na.exclude , data = tmpData));
>summary(model) 
>    

                           Estimate Std. Error t value Pr(>|t|)    
(Intercept)                   27.5192512  0.7215193  38.141  < 2e-16 ***
genderM                       -3.1572328  0.3952508  -7.988 1.87e-15 ***
age                            0.0078203  0.0139269   0.562   0.5745    
var1                          -0.0007449  0.0004484  -1.661   0.0968 .  
var2                           0.0284026  0.0017356  16.365  < 2e-16 ***
var3                           0.0007293  0.0005172   1.410   0.1586    
var4                           0.0854644  0.0418632   2.042   0.0413 *  
>as.formula('response~gender+age+var1+var2+var3+var4')
反应~性别+年龄+var1+var2+var3+var4
>模型摘要(模型)
>    
估计标准误差t值Pr(>t)
(截距)27.5192512 0.7215193 38.141<2e-16***
genderM-3.1572328 0.3952508-7.988 1.87e-15***
年龄0.0078203 0.0139269 0.562 0.5745
var1-0.0007449 0.0004484-1.661 0.0968。
var2 0.0284026 0.0017356 16.365<2e-16***
var3 0.0007293 0.0005172 1.410 0.1586
var4 0.0854644 0.0418632 2.042 0.0413*

就好像你有一个虚拟的0-1变量,其中1代表
性别
M
(大概0代表
F
)。因此,您的意思是,考虑到其他变量,
gender
采用
M
值的案例的回答大约比
F
案例的回答低3

试试这个例子

require(reshape)
mdata <- melt(UCBAdmissions) 
glm(mdata$value ~ mdata$Gender + mdata$Admit + mdata$Dept)
require(重塑)

mdata就好像你有一个虚拟的0-1变量,其中1代表
性别
M
(大概0代表
F
)。因此,您的意思是,考虑到其他变量,
gender
采用
M
值的案例的回答大约比
F
案例的回答低3

试试这个例子

require(reshape)
mdata <- melt(UCBAdmissions) 
glm(mdata$value ~ mdata$Gender + mdata$Admit + mdata$Dept)
require(重塑)

mdata这是因为您将性别定义为一个因素(检查
class(gender)
的输出)
glm()
将参考水平以外的每一个因子水平(在
水平(性别)
中的第一个)视为模型中的虚拟二分变量(0或1),并为每个二分变量输出回归系数


如果你的因子有n个级别,你将有n-1个虚拟变量。如果您的因子只有两个级别(您可能有),那么您只会得到一个虚拟变量,并且系数与您有一个数字0或1变量时相同。

这是因为您将性别定义为一个因子(检查
类(性别)
的输出)
glm()
将参考水平以外的每一个因子水平(在
水平(性别)
中的第一个)视为模型中的虚拟二分变量(0或1),并为每个二分变量输出回归系数


如果你的因子有n个级别,你将有n-1个虚拟变量。如果您的因子只有两个级别(您可能有),那么您只会得到一个虚拟变量,并且系数与数字0或1变量相同。

线性模型中每个变量使用的对比系数由“对比度”属性确定,您可以使用
对比度()查看和更改该属性
功能,例如:

require(reshape)
mdata <- melt(UCBAdmissions)
contrasts(mdata$Gender)
glm(mdata$value ~ mdata$Gender + mdata$Admit + mdata$Dept)
contrasts(mdata$Gender) <- c(-0.5, 0.5) # Use "deviation coding" instead
glm(mdata$value ~ mdata$Gender + mdata$Admit + mdata$Dept)
require(重塑)

mdata线性模型中每个变量使用的对比系数由对比度属性确定,您可以使用
contrasts()
函数查看和更改该属性,例如:

require(reshape)
mdata <- melt(UCBAdmissions)
contrasts(mdata$Gender)
glm(mdata$value ~ mdata$Gender + mdata$Admit + mdata$Dept)
contrasts(mdata$Gender) <- c(-0.5, 0.5) # Use "deviation coding" instead
glm(mdata$value ~ mdata$Gender + mdata$Admit + mdata$Dept)
require(重塑)
mdata