我试图对通过真实调查收集的数据进行逻辑回归。数据集包含聚合数据(即已作为微数据的总和导出),并包含以下列:
关于特征存在的从属Y变量(二进制:0,1)
三个解释性分类变量,即性别,年龄组和教育水平
在调查受访者中应用加权调整后,数值为千,反映了人口层面的抽样频率。
因此,我为10个国家的Y因变量(0,1)提供了人口统计变量(所有分类)的所有可能组合。更具体地说,如果运行以下内容,您可以看到我的数据集的格式: / p>
Country<-rep(c(paste("country",1:10,sep='_',each=36)
Y<-rep(0:1, each=18, len=360)
Sex<- rep(c("Females", "Males"), each=9, times=20)
Age<- rep(c("15-34", "35-54", "55+"), each=3, times=40)
Education<- rep(c("edu1", "edu2", "edu3"), len=360)
Value<- runif(360, 0.6, 100.56)
Freq<- floor(runif(360,1,150))
data<- data.frame(Country, Y, Sex, Age, Education, Value, Freq)
经过大量的研究,我选择首先运行逻辑回归,如下所示:
glm(Y~Age+Sex+Education+Country, weights=Value, data=data, family=binomial(logit))
但我有一个错误 - 警告信息:
Warning message:
In eval(expr, envir, enclos) : non-integer #successes in a binomial glm!
然后我将数据从长形式转换为宽形式,以便运行第二个逻辑,如下:
glm( cbind(ans1,ans0) ~ Age+Sex+Education+Country, data=data, family = binomial(logit))
但我也有错误 - 警告信息:
Warning message:
In eval(expr, envir, enclos) : non-integer counts in a binomial glm!
当某些类别组合中存在NA时,两种方式的结果完全不同。
所以,如果有人能回答以下任何问题,我将不胜感激:
有人知道我是用第一种还是第二种方式正确运行glm?我的问题是我不知道我是否可以使用加权数据运行逻辑回归。我应该使用例如样本中的频率吗?但是我没有使用权重......
为什么我在解释变量中有NAs的两种方式有不同的结果?
当我运行数值为千的glm和实际值,即乘以1000时,我有相同的OR但不同的标准错误,偏差,AIC等。哪个是正确的?如果我使用数千人口是不是错了?
提前谢谢!