R之广义线性模型

article/2025/8/19 18:11:32

R之广义线性模型

一、广义线性模型和glm()函数

  • 结果变量是类别型的。二值变量(比如:是/否、有效/无效、活着/死亡)和多分类变量(比如差/良好/优秀)都显然不是正态分布;
  • 结果变量是计数型的。(比如,一年内哮喘发生的次数,一生中流产的次数,一周交通事故的数目,每日酒水消耗的数量)。这类变量都是非负有限值,而且它们的均值和方差通常都是相关的(正态分布变量间不是如此,而是相互独立);
  • 广义线性模型扩展了线性模型的框架,它包含了非正态因变量的分析。

1、标准线性模型公式

现要对响应变量Y和p个预测变量X1…Xp间的关系进行建模。在标准线性模型中,可假设Y呈正态分布,关系的形式为:

在这里插入图片描述

该等式表明响应变量的条件均值是预测变量的线性组合。参数βj指一单位Xj的变化造成的Y预期的变化, β0指当所有预测变量都为0时Y的预期值。对于该等式,你可通俗地理解为:给定一系列X变量的值,赋予X变量合适的权重,然后将它们加起来,便可预测Y观测值分布的均值。

2、广义线性模型公式

上使中并没有对预测变量Xj做任何分布的假设。与Y不同,它们不需要呈正态分布。实际上,它们常为类别型变量(比如方差分析设计)。另外,对预测变量使用非线性函数也是允许的,比如你常会使用预测变量X2或者X1×X2,只要等式的参数(β0, β1, …, βp)为线性即可。广义线性模型公式为:

在这里插入图片描述

其中g(μY)是条件均值的函数(称为连接函数)。另外,你可放松Y为正态分布的假设,改为Y服从指数分布族中的一种分布即可。设定好连接函数和概率分布后,便可以通过最大似然估计的多次迭代推导出各参数值。

3、glm()函数

R中可通过glm()函数(还可用其他专门的函数)拟合广义线性模型。它的形式与lm()类似,只是多了一些参数。函数的基本形式为:

glm(formula, family=family(link=function), data=) 

表中列出了概率分布(family)和相应默认的连接函数(function)

在这里插入图片描述

4、lm()与glm()函数

标准线性模型也是广义线性模型的一个特例。如果令连接函数g(μY)=μY或恒等函数,并设定概率分布为正态(高斯)分布,那么:

glm(Y~X1+X2+X3, family=gaussian(link="identity"), data=mydata)

生成的结果与下列代码的结果相同:

lm(Y~X1+X2+X3, data=mydata) 

5、logistic回归模型

这也是广义线性模型中的一种

Logistic回归适用于二值响应变量(0和1),但rms包中可以进行等级资料回归。模型假设Y服从二项分布,线性模型的拟合形式为:

在这里插入图片描述

其中π=μY是Y的条件均值(即给定一系列X的值时Y=1的概率), (π/1–π)为Y=1时的优势比, log(π/1–π)为对数优势比,或logit。本例中, log(π/1–π)为连接函数,概率分布为二项分布,可用如下代码拟合Logistic回归模型:

glm(Y~X1+X2+X3, family=binomial(link="logit"), data=mydata) 
#假设有一个响应变量(Y)、三个预测变量(X1、 X2、 X3)和一个包含数据的数据框(mydata)

6、泊松回归模型

这也是广义线性模型中的一种

泊松回归适用于在给定时间内响应变量为事件发生数目的情形。它假设Y服从泊松分布,线性模型的拟合形式为:

在这里插入图片描述

其中λ是Y的均值(也等于方差)。此时,连接函数为log(λ),概率分布为泊松分布,可用如下代码拟合泊松回归模型:

glm(Y~X1+X2+X3, family=poisson(link="log"), data=mydata) 

7、可连用的函数

与分析标准线性模型时lm()连用的许多函数在glm()中都有对应的形式,其中一些常见的函数如下:

  • summary() 展示拟合模型的细节
  • coefficients()、 coef() 列出拟合模型的参数(截距项和斜率)
  • confint() 给出模型参数的置信区间(默认为95%)
  • residuals() 列出拟合模型的残差值
  • anova() 生成两个拟合模型的方差分析表
  • plot() 生成评价拟合模型的诊断图
  • predict() 用拟合模型对新数据集进行预测
  • deviance() 拟合模型的偏差
  • df.residual() 拟合模型的残差自由度

8、模型拟合和回归诊断

当评价模型的适用性时,你可以绘制初始响应变量的预测值与残差的图形

plot(predict(model, type="response"),residuals(model, type= "deviance"))

R可列出帽子值(hat value)、学生化残差值和Cook距离统计量的近似值。

plot(hatvalues(model))
plot(rstudent(model))
plot(cooks.distance(model))

还可以用其他方法,创建一个综合性的诊断图。在后面的图形中,横轴代表杠杆值,纵轴代表学生化残差值,而绘制的符号大小与Cook距离大小成正比。

library(car)
influencePlot(model) 

二、logistic回归模型

1、logistic回归模型概述

Logistic回归模型是一种概率模型,它是以某一事件发生与否的概率P为因变量,以影响P的因素为自变量建立的回归模型,分析某事件发生的概率与自变量之间的关系,是一种非线性回归模型

适用的资料类型:适用于因变量为二项或多项分类(有序、无序)的资料

2、logistic回归模型分类

条件logistic回归模型:适合于配对或配伍设计资料;

非条件logistic回归模型:适合于成组设计的统计资料;

**因变量可以是:**两项分类、无序多项分类、有序多项分类等

3、logistic回归模型结构

Logistic分布函数表达:

在这里插入图片描述

Y 的取值在- ∞~+ ∞之间,函数值F(y) 在0~ 1之间取值,且呈单调上升的S型曲线。可以将这一特征运用到临床医学和流行病学中描述事件发生的概率与影响因素的关系

logistic分布函数

在这里插入图片描述

logistic回归模型方程

在这里插入图片描述

利用Logistic分布函数的特征来表示在自变量X的作用下出现阳性结果或阴性结果的概率

阳性结果的概率记为: P( y=1|x),(在X 作用下,出现Y=1的概率)

出现阴性结果的概率为: Q( y=0|x), (在X 作用下,出现Y=0的概率)

注意: P+Q=1

4、只有一个自变量时,Logistic回归模型

在这里插入图片描述

式中, β0为回归线的截距, β是与X有关的参数,称回归系数

在这里插入图片描述

注意: P/Q称为事件的优势,流行病学中称为比值(odds)

5、多个自变量时,Logistic回归模型

在这里插入图片描述

在这里插入图片描述

不同自变量个数对比:

在这里插入图片描述

6、logit变换:将S型曲线转化为直线

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

其实变换之后这就是所谓的线性回归方程:

  • ln(P/Q)称为 logit§变换;
  • P/Q称为事件的优势,流行病学中称为比值(odds)

因此,优势的对数值与影响因素之间呈线性关系

比值比 或 优势比(odds ratio), 简记为 OR

暴露组的优势(比值)与非暴露组的优势(比值)之比,称优势比(比值比)(OR)。 OR用于说明暴露某因素引起疾病或死亡的危险度大小。

在这里插入图片描述

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g71MXU2a-1661506621835)(C:\Users\HP\AppData\Roaming\Typora\typora-user-images\1661062483513.png)]

7、案例1

以AER包中的数据框Affairs为例,我们将通过探究婚外情的数据来阐述Logistic回归分析的过程。首次使用该数据前,请确保已下载和安装了此软件包(使用install.packages(“AER”)

婚外情数据取自1969年(Psychology Today)所做一个非常有代表性的调查。该数据从601个参与者收集了9个变量,包括一年来婚外私通的频率以及参与者性别、年龄、婚龄、是否有小孩、宗教信仰程度(5分制, 1分表示反对, 5分表示非常信仰)、学历、职业(逆向编号的戈登7种分类),还有对婚姻自我评分(5分制, 1表示非常不幸福, 5表示非常幸福)

Affairs$ynaffair[Affairs$affairs > 0] <- 1 #有就是1
Affairs$ynaffair[Affairs$affairs == 0] <- 0
Affairs$ynaffair <- factor(Affairs$ynaffair, levels=c(0,1),labels=c("No","Yes"))
table(Affairs$ynaffair)# fit full model
fit.full <- glm(ynaffair ~ gender + age + yearsmarried + children + religiousness + education + occupation +rating,data=Affairs,family=binomial())
summary(fit.full)fit.reduced <- glm(ynaffair ~ age + yearsmarried + religiousness + rating, data=Affairs, family=binomial())
summary(fit.reduced)# compare models
anova(fit.reduced, fit.full, test="Chisq")coef(fit.reduced)
exp(coef(fit.reduced)) #算OR值
confint(fit.reduced) #算OR值
exp(-0.07006400)#算OR值的95%CI,把上步计算出的的值取反对数

是否还要其他解决思路?

在婚外情的例子中,婚外偷腥的次数被二值化为一个“是/否”的响应变量,这是因为我们最感兴趣的是在过去一年中调查对象是否有过一次婚外情。如果兴趣转移到量上(过去一年中婚外情的次数),便可直接对计数型数据进行分析。分析计数型数据的一种流行方法是泊松回归

想看评分对婚外情的影响:

testdata <- data.frame(rating = c(1, 2, 3, 4, 5),age = mean(Affairs$age),yearsmarried = mean(Affairs$yearsmarried),religiousness = mean(Affairs$religiousness)) #其余变量取均值
testdata$prob <- predict(fit.reduced, newdata=testdata, type="response")
testdata

看年龄对婚外情影响:

testdata <- data.frame(rating = mean(Affairs$rating),age = seq(17, 57, 10), yearsmarried = mean(Affairs$yearsmarried),religiousness = mean(Affairs$religiousness))
testdata$prob <- predict(fit.reduced, newdata=testdata, type="response")
testdata

这里还有一段不是太明白,如果有大佬指点一下非常感激:

fit <- glm(ynaffair ~ age + yearsmarried + religiousness +rating, family = binomial(), data = Affairs)
fit.od <- glm(ynaffair ~ age + yearsmarried + religiousness +rating, family = quasibinomial(), data = Affairs)
pchisq(summary(fit.od)$dispersion * fit$df.residual,  fit$df.residual, lower = F)

7.1变量筛选方式

  • 用Enter法把所有自变量全纳入(不做筛选)
  • 用逐步回归筛选自变量(SPSS软件包括6种筛选方式)
  • 先做单因素Logistic回归, p<0.1纳入最后的回归方程

最终筛选出影响新生儿体重的独立影响因素

8、案例2

表11-5 是一个研究吸烟、饮酒与食管癌关系的病例-对照研究资料,试作Logistic 回归分析。设y=1 表示患有食管癌, y=0 表示未患食管癌。令x1=1 表示吸烟, x1=0 表示不吸烟: x2=1表示饮酒, x2=0 表示不饮酒

在这里插入图片描述

Example11_4  <- read.table ("example11_4.csv", header=TRUE, sep=",")
attach(Example11_4)fit1 <- glm(y~ x1 + x2, family= binomial(), data=Example11_4)
summary(fit1)
coefficients(fit1)
exp(coefficients(fit1))
exp (confint(fit1)) #默认赋值大的与赋值小的相比fit2 <- glm(y~ x1 + x2 + x1:x2 ,  family= binomial(), data=Example11_4)
summary(fit2)
coefficients(fit2)
exp(coefficients(fit2))
exp (confint(fit2))

若想探究吸烟与饮酒的交互作用:

本例分析吸烟、饮酒危险因素对患食管癌的影响程度以及它们的交互影响程度。设y=1 表示患有食管癌, y=0 表示未患食管癌。令x1=1 表示吸烟, x1=0 表示不吸烟: x2=1表示饮酒, X2=0 表示不饮酒。这样, x1和x2的交叉水平有4 个,建立4 个哑变量分别代表这4 个水平,记为x11、 x10 、 x01、 x00,它们表示4 种不同的生活方式,即x11表示既吸烟又饮酒, X10表示吸烟但不饮酒, x01 表示不吸烟但饮酒, x00表示既不吸烟又不饮酒。将前3 个哑变量放进模型, 则可得到前3 种生活方式相对于最后一种生活方式患食管癌的相对危险度。

Example11_4$x11  <- ifelse (x1==1 & x2==1, 1, 0)
Example11_4$x10  <- ifelse (x1==1 & x2==0, 1, 0)
Example11_4$x01  <- ifelse (x1==0 & x2==1, 1, 0)
Example11_4$x00  <- ifelse (x1==0 & x2==0, 1, 0)fit3 <- glm(y~ x11 + x10 + x01, family= binomial(), data=Example11_4)
summary(fit3)
coefficients(fit3)
exp(coefficients(fit3))
exp(confint(fit3))
detach (Example11_4)

9、案例3

例11-5 为了探讨冠心病发生的有关危险因素, 对26例冠心病病人和28例对照者进行病例-对照研究,各因素的说明及资料见表11-6 和表11-7 。试用Logistic逐步回归分析方法筛选危险因素。

在这里插入图片描述
在这里插入图片描述

Example11_5 <- read.table ("example11_5.csv", header=TRUE, sep=",")
attach(Example11_5)
fullfit <- glm(y~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 ,  family= binomial(), data=Example11_5)
summary(fullfit)
nothing <- glm(y~ 1, family= binomial(), data=Example11_5)#建立一个空模型
summary(nothing)
bothways <- step(nothing, list(lower=formula(nothing), upper=formula(fullfit)),  direction="both")
fit1 <- glm(y~ x6 + x5 + x8 + x1 + x2 ,  family= binomial(), data=Example11_5)#逐步法找到的最优选择
summary(fit1)
fit2 <- glm(y~ x6 + x5 + x8 + x1, family= binomial(), data=Example11_5)
summary(fit2)
coefficients(fit2)
exp(coefficients(fit2))
exp (confint(fit2))
detach (Example11_5)

10、案例4

例11-6 某研究机构为了研究胃癌与饮酒的相关关系,收集了病例对照资料如表11-9 所示,其中D 和D’ 分别表示患有胃癌和未患有胃癌, E 和E’ 分别表示饮酒和不饮酒。试用条件Logistic回归模型分析饮酒对胃癌的影响。

在这里插入图片描述

本例是一个配对资料

#install.packages("survival")
library(survival)
Example11_6  <- read.table ("example11_6.csv", header=TRUE, sep=",")
attach(Example11_6)
model <- clogit(outcome~ exposure+ strata(id)) #strata指对子号
summary(model)
detach(Example11_6)

11、R中扩展的Logistic回归及其变种

稳健Logistic回归 robust包中的glmRob()函数可用来拟合稳健的广义线性模型,包括稳健Logistic回归。当拟合Logistic回归模型数据出现离群点和强影响点时,稳健Logistic回归便可派上用场。

多项分布回归 若响应变量包含两个以上的无序类别(比如,已婚/寡居/离婚),便可使用mlogit包中的mlogit()函数拟合多项Logistic回归。

序数Logistic回归 若响应变量是一组有序的类别(比如,信用风险为差/良/好),便可使用rms包中的lrm()函数拟合序数Logistic回归

三、logistic回归模型列线图绘制

1、临床预测模型的本质

科研预测模型是通过已知来预测未知,而模型就是一个复杂的公式。也就是把已知的东西通过这个模型的计算来预测未知的东西。

临床预测模型的本质就是通过回归建模分析,回归的本质就是发现规律。回归是量化刻画, X多大程度上影响Y。尤其是多元线性、 Logistic、 Cox回归分析等。

模型的验证也体现着较高技术难度。模型效能评价是统计分析、数据建模、课题设计的关键所在。2、

2、临床预测模型验证步骤

在这里插入图片描述

3、临床预测模型类研究思路

在这里插入图片描述

举一个例子:

临床上有多个心血管疾病风险预测工具: Framingham、 QRISK、 PROCAM、ASSIGN评分。 Heart发表综述《Graphics and Statistics for Cardiology:Clinical Prediction Rules》 以心血管风险评分(CVD risk factor)为例探讨如何借助图形优势构建疾病的预测模型,并提出了6个重要步骤 :

  1. 选择一组预测变量作为潜在CVD影响因素纳入到风险评分中
  2. 选择一个合适的统计模型来分析预测变量和CVD之间的关系
  3. 从已有的预测变量中,选择足够重要的变量纳入到风险评分中构造风险评分模型
  4. 评价风险评分模型
  5. 在临床实践中解释风险评分的使用。

在这里插入图片描述

4、TRIPOD声明: 临床预测模型分类

  • 既往没有模型:为了解决一个全新的问题,展示自己好也就够了
  • 既往已有模型:评价这两个模型的优劣
  • 改进现有的模型:增加其他预测指标或更新现有指标

在这里插入图片描述

5、列线图案例1

还是上方的案例

library(foreign) 
library(rms)mydata<-read.spss("lweight.sav")
mydata<-as.data.frame(mydata) #转成数据框结构
head(mydata)mydata$low <- ifelse(mydata$low =="低出生体重",1,0)
mydata$race1 <- ifelse(mydata$race =="白种人",1,0)
mydata$race2 <- ifelse(mydata$race =="黑种人",1,0)
mydata$race3 <- ifelse(mydata$race =="其他种族",1,0)attach(mydata)
dd<-datadist(mydata) #打包数据集
options(datadist='dd')fit1<-lrm(low~age+ftv+ht+lwt+ptl+smoke+ui+race1+race2,data=mydata,x=T,y=T)
fit1
summary(fit1)
nom1 <- nomogram(fit1, fun=plogis,fun.at=c(.001, .01, .05, seq(.1,.9, by=.1), .95, .99, .999),lp=F, funlabel="Low weight rate")#画列线图
plot(nom1)
cal1 <- calibrate(fit1, method='boot', B=1000)
plot(cal1,xlim=c(0,1.0),ylim=c(0,1.0))

在这里插入图片描述

列线图的解读:每个变量对应分值相加后,总分值对应最下面的比例,就是发生概率

如果把种族因子化:

mydata$race <- as.factor(ifelse(mydata$race=="白种人", "白种人","黑人及其他种族"))dd<-datadist(mydata)
options(datadist='dd')fit2<-lrm(low~age+ftv+ht+lwt+ptl+smoke+ui+race,data=mydata,x=T,y=T)
fit2
summary(fit2)nom2 <- nomogram(fit2, fun=plogis,fun.at=c(.001, .01, .05, seq(.1,.9, by=.1), .95, .99, .999),lp=F, funlabel="Low weight rate")
plot(nom2)
cal2 <- calibrate(fit2, method='boot', B=1000)
plot(cal2,xlim=c(0,1.0),ylim=c(0,1.0))

把筛选出的变量再拟合一个模型:

fit3<-lrm(low~ht+lwt+ptl+smoke+race,data=mydata,x=T,y=T)
fit3
summary(fit3)nom3 <- nomogram(fit3, fun=plogis,fun.at=c(.001, .01, .05, seq(.1,.9, by=.1), .95, .99, .999),lp=F, funlabel="Low weight rate")
plot(nom3)
cal3 <- calibrate(fit3, method='boot', B=1000)#画校正曲线
plot(cal3,xlim=c(0,1.0),ylim=c(0,1.0))

在这里插入图片描述

在这里插入图片描述

四、logistic回归模型:C-Statistics 计算

R中如何计算C-Statistics

  • rms包中lrm函数拟合logistic回归模型,模型参数可直接读取C, Dxy
  • ROCR包中performance函数计算AUC
  • Hmisc包中的somers2函数直接计算C, Dxy
library(foreign) 
library(rms)mydata<-read.spss("lweight.sav")
mydata<-as.data.frame(mydata)#变成数据框格式
head(mydata)mydata$low <- ifelse(mydata$low =="低出生体重",1,0) #设置哑变量
mydata$race1 <- ifelse(mydata$race =="白种人",1,0)
mydata$race2 <- ifelse(mydata$race =="黑种人",1,0)
mydata$race3 <- ifelse(mydata$race =="其他种族",1,0)attach(mydata)
dd<-datadist(mydata) #打包数据
options(datadist='dd')fit1<-lrm(low~age+ftv+ht+lwt+ptl+smoke+ui+race1+race2,data=mydata,x=T,y=T)
fit1 #直接读取模型中Rank Discrim.参数 Cmydata$predvalue<-predict(fit1)
library(ROCR)
pred <- prediction(mydata$predvalue, mydata$low)
auc <- performance(pred,"auc")
auc #auc即是C-statistics#library(Hmisc)
somers2(mydata$predvalue, mydata$low) #somers2 {Hmisc}

五、logistic回归模型:亚组分析森林图绘制

在这里插入图片描述

化疗药物的反应率

ResponseNo.of patientsOR(95% CI)
Overall14721.66(1.28,2.15)1.661.282.15
Clinical stage
Advanced9511.67(1.23,2.26)1.671.232.26
non-advanced5211.67(1.05,2.66)1.671.052.66
ctDNA assays
qPCR12801.73(1.30,2.29)1.731.32.29
ARMS1921.58(0.50,5.04)1.580.55.04
Ethnicity
Asian3261.93(0.84,4.43)1.930.844.43
Caucasian11461.57(1.20,2.06)1.571.22.06
library(forestplot)
rs_forest <- read.csv('rs_forest.csv',header = FALSE)
# 读入数据的时候大家一定要把header设置成FALSE,保证第一行不被当作列名称。
# tiff('Figure 1.tiff',height = 1600,width = 2400,res= 300)
forestplot(labeltext = as.matrix(rs_forest[,1:3]),#设置用于文本展示的列,此处我们用数据的前三列作为文本,在图中展示mean = rs_forest$V4, #设置均值lower = rs_forest$V5, #设置均值的lowlimits限upper = rs_forest$V6, #设置均值的uplimits限is.summary = c(T,T,T,F,F,T,F,F,T,F,F),#该参数接受一个逻辑向量,用于定义数据中的每一行是否是汇总值,若是,则在对应位置设置为TRUE,若否,则设置为FALSE;设置为TRUE的行则以粗体出现zero = 1, #设置参照值,此处我们展示的是OR值,故参照值是1,而不是0boxsize = 0.4, #设置点估计的方形大小lineheight = unit(10,'mm'),#设置图形中的行距colgap = unit(3,'mm'),#设置图形中的列间距lwd.zero = 2,#设置参考线的粗细lwd.ci = 1.5,#设置区间估计线的粗细col=fpColors(box='#458B00', summary= "#8B008B",lines = 'black',zero = '#7AC5CD'),#使用fpColors()函数定义图形元素的颜色,从左至右分别对应点估计方形,汇总值,区间估计线,参考线xlab="The estimates",#设置x轴标签graph.pos = 3)#设置森林图的位置,此处设置为3,则出现在第三列

六、泊松回归模型

为阐述泊松回归模型的拟合过程,并探讨一些可能出现的问题,我们使用robust程辑包中的Breslow癫痫数据集(Breslow, 1993)。特别地,我们将讨论在治疗初期的8周内,抗癫痫药物对癫痫发病数的影响。请提前安装robust包。

我们就遭受轻微或严重间歇性癫痫的病人的年龄和癫痫发病数收集了数据,包含病人被随机分配到药物组或者安剂组前8周和随机分配后8周两种情况。响应变量为sumY(随机化后8周内癫痫发病数),预测变量为治疗条件(Trt)、年龄(Age)和前8周内的基础癫痫发病数。

# look at dataset
data(breslow.dat, package="robust")
names(breslow.dat)
summary(breslow.dat[c(6, 7, 8, 10)])# plot distribution of post-treatment seizure counts
opar <- par(no.readonly=TRUE)
par(mfrow=c(1, 2))
attach(breslow.dat)
hist(sumY, breaks=20, xlab="Seizure Count", main="Distribution of Seizures")
boxplot(sumY ~ Trt, xlab="Treatment", main="Group Comparisons")
par(opar)# fit regression
fit <- glm(sumY ~ Base + Age + Trt, data=breslow.dat, family=poisson())
summary(fit)# interpret model parameters
coef(fit)
exp(coef(fit))# evaluate overdispersion
deviance(fit)/df.residual(fit)
library(qcc)
qcc.overdispersion.test(breslow.dat$sumY, type="poisson")# fit model with quasipoisson
fit.od <- glm(sumY ~ Base + Age + Trt, data=breslow.dat,family=quasipoisson())
summary(fit.od)

结果解释:

在泊松回归中,年龄的回归参数为0.0227,表明保持其他预测变量不变,年龄增加1岁,癫痫发病数的对数均值将相应增加0.03。截距项即当预测变量都为0时,癫痫发病数的对数均值。由于不可能为0岁,且调查对象的基础癫痫发病数均不为0,因此本例中截距项没有意义。通常在因变量的初始尺度(癫痫发病数而非发病数的对数)上解释回归系数比较容易。为此,需要指数化回归系数。

指数化后,保持其他变量不变,年龄增加1岁,期望的癫痫发病数将乘以1.023。这意味着年龄的增加与较高的癫痫发病数相关联。更为重要的是, 1单位Trt的变化(即从安慰剂到治疗组),期望的癫痫发病数将乘以0.86,也就是说,保持基础癫痫发病数和年龄不变,服药组相对于安慰剂组癫痫发病数降低了20%。


http://chatgpt.dhexx.cn/article/SjVWZgNp.shtml

相关文章

第5章 广义与一般线性模型

第1章 多元统计分析概述 第2章 多元数据的数学表达 第3章 多元数据的直观表示 第4章 多元相关与回归分析 第5章 广义与一般线性模型 5.1 模型的选择5.2 广义线性模型5.3 一般线性模型 第6章 判别分析及R使用 第7章 聚类分析及R使用 第8章 主成分分析及R使用 第9章 因子分析及…

广义线性模型

今天我来介绍一种在机器学习中应用的比较多的模型&#xff0c;叫做广义线性模型&#xff08;GLM&#xff09;。这种模型是把自变量的线性预测 函数当作因变量的估计值。在机器学习中&#xff0c;有很多模型都是基于广义线性模型的&#xff0c;比如传统的线性回归模型&#xff…

广义线性模型(Generalized Linear Model)

转载于&#xff1a;广义线性模型&#xff08;Generalized Linear Model&#xff09; - 肉鹅阿笨 - 博客园 (cnblogs.com) 1.指数分布族 我们在建模的时候&#xff0c;关心的目标变量Y可能服从很多种分布。像线性回归&#xff0c;我们会假设目标变量Y服从正态分布&#xff0c;而…

R|广义线性模型知识点归纳

本文分为两个部分: (1)广义线性模型的分类及其运用场景; (2) 相关R代码。需要说明的是&#xff0c;参考资料是上课课件&#xff0c;根据本人理解整理&#xff0c;如果有不对的地方&#xff0c;欢迎探讨&#xff01; 目录 引言 1. 广义线性模型 &#xff08;1&#xff09;二…

IOS CoreData 多表查询(上)

在网上搜索了下&#xff0c;发现只有部分讲解CoreData关系的&#xff0c;但对多表之间的查询并没有相应的介绍。 因此操作自己写了个。 先创建几个表。 1、部门表&#xff1a;department dp_id Integer primary key dp_deptname varchar(20) //使用coredata实体创建时用…

iOS CoreData详解(五)多线程

原创blog&#xff0c;转载请注明出处 blog.csdn.net/hello_hwc 欢迎关注我的iOS SDK详解专栏&#xff0c;这里有很多基础的文章 http://blog.csdn.net/column/details/huangwenchen-ios-sdk.html 前言&#xff1a;很多小的App只需要一个ManagedContext在主线程就可以了&…

CoreData在Xcode 8 中的使用

如需转载&#xff0c;请注明出处 在Xode8之前&#xff0c;CoreData的使用是非常方便的&#xff0c;先创建一个DataModel , ,然后创建NSManagedObject SubClass,都是一个界面上操作&#xff0c;非常方便&#xff0c;但是更新过Xcode 8后&#xff0c;CoreData的创建需要进行一…

CoreData

Core Data数据持久化是对SQLite的一个升级&#xff0c;它是ios集成的&#xff0c;在说Core Data之前&#xff0c;我们先说说在CoreData中使用的几个类。&#xff08;1&#xff09;NSManagedObjectModel(被管理的对象模型) 相当于实体&#xff0c;不过它包含 了实体间的关系(2)N…

Core Data详解

转载于&#xff1a;程序媛与程序猿 7.1. 什么是Core Data Core Data是一个Cocoa框架&#xff0c;用于为管理对象图提供基础实现&#xff0c;以及为多种文件格式的持久化提供支持。管理对象图包含的工作如撤销&#xff08;undo&#xff09;和重做&#xff08;redo&#xff…

Coredata的版本升级

在开发的后期&#xff0c;可能因为完善和修复功能&#xff0c;需要对Coredata数据库表进行修改&#xff0c;这样就需要对CoreData进行版本升级。 比如你修改了DB字段以后&#xff0c;用户在旧版本上升级为新版本时会crash. 因为升级只升级了应用app,没有升级目录下的数据据db文…

在建好的项目中加入CoreData

这几天在做一个ios的小项目&#xff0c;项目中需要对数据进行基本的增删改查操作。于是就想用一把CoreData。但在创建项目初期&#xff0c;没有包含进CoreData。于是就在已建好的项目中加入CoreData。由于第一次用CoreData&#xff0c;各方面还不是很熟悉&#xff0c;在网上爬文…

CoreData的简单使用

简介 Core Data是iOS5之后才出现的一个框架&#xff0c;它提供了对象-关系映射(ORM)的功能&#xff0c;即能够将OC对象转化成数据&#xff0c;保存在SQLite数据库文件中&#xff0c;也能够将保存在数据库中的数据还原成OC对象。在此数据操作期间&#xff0c;我们不需要编写任何…

数据持久化(五)之CoreData

简单的说,Core Data就是可以存储到磁盘的对象图,[...]Core Data可以帮我们做很多任务作.它可以作为软件的整个模型层。它不仅仅在磁盘上存储数据&#xff0c;也把我们需要的数据对象读取到内存中。 ——Marcus Zarra, Core Data Core Data是Mac OS X中Cocoa API的一部分&#…

coredata 详解

原文&#xff1a;Core Data Overview&#xff0c;感谢CocoaChina翻译组帮忙校对。 Core Data可能是OS X和iOS里面最容易被误解的框架之一了&#xff0c;为了帮助大家理解&#xff0c;我们将快速的研究Core Data&#xff0c;让大家对它有一个初步的了解&#xff0c;对于想要正确…

Core Data 详解

Core Data是一个Cocoa框架&#xff0c;用于为管理对象图提供基础实现&#xff0c;以及为多种文件格式的持久化提供支持。管理对象图包含的工作如撤销&#xff08;undo&#xff09;和重做&#xff08;redo&#xff09;、有效性检查、以及保证对象关系的完整性等。对象的持久化意…

Core Data概述

昨晚熬夜看发布会(本以为屌丝终于能买得起苹果了&#xff0c;谁知道。。。)&#xff0c;因为看不了视频直播&#xff0c;所以就正好有空就把www.objc.io最新的一篇文章翻译了一下&#xff0c;同时感谢CocoaChina翻译组提供校对&#xff0c;以下为正文&#xff1a; Core Data可能…

CoreData 的使用

CoreData其实就是Apple为开发者提供的便捷数据存储方式&#xff0c;本质是对sqlite数据库的操作&#xff0c;操作的数据量为中到大量。 操作数据库&#xff0c;还有FMDB第三方库&#xff0c;相比于FMDB&#xff0c;CoreData要更简单&#xff0c;更方便。 集成CoreData: 1,创…

Core Data的使用

初步看了一下Core Data这个东西&#xff0c;本想早一点写这篇东西的&#xff0c;不过各种俗事缠身&#xff0c;又觉得自己对于Core Data机制了解的还不够深&#xff0c;动笔就慢了几天。不过今天盘点一下&#xff0c;觉得可以说一点东西出来就先说一点吧。 Core Data到底是个什…

CoreData简单使用

苹果的CoreData框架&#xff08;不限于&#xff09;提供了一种数据持久化解决方案&#xff0c;它基于如下结构&#xff08;图片来源苹果官网&#xff09;&#xff1a; 其中涉及了几个概念&#xff1a; NSManagedObject: 数据库中一条记录在内存的实例。 NSManagedObjectConte…

ios中的coredata的使用

Core Data数据持久化是对SQLite的一个升级&#xff0c;它是ios集成的&#xff0c;在说Core Data之前&#xff0c;我们先说说在CoreData中使用的几个类。 &#xff08;1&#xff09;NSManagedObjectModel(被管理的对象模型) 相当于实体&#xff0c;不过它包含 了实体间的关系 (2…