求大神帮忙用R语言自己写一个GLM广义线性模型的函数

Python022

求大神帮忙用R语言自己写一个GLM广义线性模型的函数,第1张

请教如何实现广义线性模型GLM作图

1、广义线性模型GLM很简单,举个例子,药物的疗效和服用药物的剂量有关。这个相关性可能是多种多样的,可能是简单线性关系(发烧时吃一片药退烧0.1度,两片药退烧0.2度,以此类推;这种情况就是一般线性模型),也可能是比较复杂的其他关系,如指数关系(一片药退烧0.1度,两片药退烧0.4度),对数关系等等。这些复杂的关系一般都可以通过一系列数学变换变成线性关系,以此统称为广义线性模型。

2、广义线性混合模型GLMM比较复杂,GLM要求观测值误差是随机的,而GLMM则要求误差值并非随机,而是呈一定分布的。举个例子,我们认为疗效可能与服药时间相关,但是这个相关并不是简简单单的疗效随着服药时间的变化而改变。更可能的是疗效的随机波动的程度与服药时间有关。比如说,在早上10:00的时候,所有人基本上都处于半饱状态,此时吃药,相同剂量药物效果都差不多。但在中午的时候,有的人还没吃饭, 有的人吃过饭了,有的人喝了酒,结果酒精和药物起了反应,有的人喝了醋,醋又和药物起了另一种反应。显然,中午吃药会导致药物疗效的随机误差非常大。这种疗效的随机误差(而非疗效本身)随着时间的变化而变化,并呈一定分布的情况,必须用广义线性混合模型了。

R本身是一门统计语言,主要用于统计分析,前面的语法部分算是基础,接下来开始进入统计模型应用。首先从最常用的回归分析说起。

有关线性回归分析模型的基本假定需要注意:1)关于随机干扰项的高斯-马尔科夫定理;2)关于自变量的:不存在共线性;3)关于模型的:模型设定正确。

用 glm 函数建立广义线性模型,用参数 family 指定分布类型,logistic模型指定为binomial

用 predict 函数进行预测, predict(model, data, type = 'response'

此外,还可以用 mlogit 包中的 mlogit 函数做多分类变量logistic回归, rms 包中的 lrm 函数做顺序变量logistic回归, glmnet 包中的 glmnet 函数做基于正则化的logistic回归