ziP
位于 mgcv
包(package)。 说明
系列与 gam
或 bam
一起使用,当零概率的互补对数对数线性依赖于泊松参数的对数时,实现零膨胀泊松数据的回归。请务必小心使用,请注意,仅仅具有许多零响应观测值并不表示零膨胀:问题是在给定指定模型的情况下是否有太多零。
这种模型实际上仅适用于没有任何协变量有助于解释数据中的零的情况。如果您的协变量预测哪些观测值可能具有零均值,那么在此基础上添加零膨胀模型可能会导致可识别性问题。可识别性问题可能会导致拟合失败,或者导致线性预测变量或预测值出现荒谬的值。
用法
ziP(theta = NULL, link = "identity",b=0)
参数
theta |
控制零通胀率的均值线性变换的斜率和截距的 2 个参数。如果提供则视为固定参数( 和 ),否则进行估计。 |
link |
链接函数:目前仅支持 |
b |
非负常数,指定零通胀率对线性预测变量的最小依赖性。 |
细节
零计数的概率由 theta
参数与平滑参数一起进行估计。从零开始增加 b
参数可以大大减少可识别性问题,特别是当非零数据很少时。 给出,而计数的概率 由截断的泊松概率函数 给出。线性预测器给出 ,而 和 。
该模型的拟合值为泊松参数的对数。将 predict
函数与 type=="response"
结合使用以获得预测的预期响应。请注意,模型摘要中报告的 theta 参数为 和 。
这些模型应该经过非常仔细的检查,特别是在拟合尚未收敛的情况下。建立具有可识别性问题的模型非常容易,特别是如果数据不是真正的零膨胀,而只是有许多零,因为协变量空间的某些部分的均值非常低。请参阅示例以了解一些明显的检查。认真对待收敛警告。
值
类 extended.family
的对象。
警告
零膨胀模型通常是over-used。数据中存在大量零本身并不意味着通货膨胀为零。 *考虑到模型平均值*,有太多零可能意味着零通胀。
例子
rzip <- function(gamma,theta= c(-2,.3)) {
## generate zero inflated Poisson random variables, where
## lambda = exp(gamma), eta = theta[1] + exp(theta[2])*gamma
## and 1-p = exp(-exp(eta)).
y <- gamma; n <- length(y)
lambda <- exp(gamma)
eta <- theta[1] + exp(theta[2])*gamma
p <- 1- exp(-exp(eta))
ind <- p > runif(n)
y[!ind] <- 0
np <- sum(ind)
## generate from zero truncated Poisson, given presence...
y[ind] <- qpois(runif(np,dpois(0,lambda[ind]),1),lambda[ind])
y
}
library(mgcv)
## Simulate some ziP data...
set.seed(1);n<-400
dat <- gamSim(1,n=n)
dat$y <- rzip(dat$f/4-1)
b <- gam(y~s(x0)+s(x1)+s(x2)+s(x3),family=ziP(),data=dat)
b$outer.info ## check convergence!!
b
plot(b,pages=1)
plot(b,pages=1,unconditional=TRUE) ## add s.p. uncertainty
gam.check(b)
## more checking...
## 1. If the zero inflation rate becomes decoupled from the linear predictor,
## it is possible for the linear predictor to be almost unbounded in regions
## containing many zeroes. So examine if the range of predicted values
## is sane for the zero cases?
range(predict(b,type="response")[b$y==0])
## 2. Further plots...
par(mfrow=c(2,2))
plot(predict(b,type="response"),residuals(b))
plot(predict(b,type="response"),b$y);abline(0,1,col=2)
plot(b$linear.predictors,b$y)
qq.gam(b,rep=20,level=1)
## 3. Refit fixing the theta parameters at their estimated values, to check we
## get essentially the same fit...
thb <- b$family$getTheta()
b0 <- gam(y~s(x0)+s(x1)+s(x2)+s(x3),family=ziP(theta=thb),data=dat)
b;b0
## Example fit forcing minimum linkage of prob present and
## linear predictor. Can fix some identifiability problems.
b2 <- gam(y~s(x0)+s(x1)+s(x2)+s(x3),family=ziP(b=.3),data=dat)
作者
Simon N. Wood simon.wood@r-project.org
参考
Wood, S.N., N. Pya and B. Saefken (2016), Smoothing parameter and model selection for general smooth models. Journal of the American Statistical Association 111, 1548-1575 doi:10.1080/01621459.2016.1180986
也可以看看
相关用法
- R ziplss 零膨胀(跨栏)泊松位置比例模型系列
- R vcov.gam 从 GAM 拟合中提取参数(估计器)协方差矩阵
- R gam.check 拟合 gam 模型的一些诊断
- R null.space.dimension TPRS 未惩罚函数空间的基础
- R gam.reparam 寻找平方根惩罚的稳定正交重新参数化。
- R extract.lme.cov 从 lme 对象中提取数据协方差矩阵
- R scat 用于重尾数据的 GAM 缩放 t 系列
- R choldrop 删除并排名第一 Cholesky 因子更新
- R smooth.construct.cr.smooth.spec GAM 中的惩罚三次回归样条
- R bandchol 带对角矩阵的 Choleski 分解
- R gam.side GAM 的可识别性边条件
- R cox.ph 附加 Cox 比例风险模型
- R mgcv.parallel mgcv 中的并行计算。
- R gamm 广义加性混合模型
- R pdTens 实现张量积平滑的 pdMat 类的函数
- R Predict.matrix GAM 中平滑项的预测方法
- R Predict.matrix.soap.film 皂膜光滑度预测矩阵
- R smooth.construct.bs.smooth.spec GAM 中的惩罚 B 样条
- R gamlss.gH 计算回归系数的对数似然导数
- R plot.gam 默认 GAM 绘图
- R mvn 多元正态加性模型
- R gfam 分组家庭
- R smooth.construct GAM 中平滑项的构造函数
- R pcls 惩罚约束最小二乘拟合
- R gam.fit3 使用 GCV、UBRE/AIC 或 RE/ML 导数计算进行 P-IRLS GAM 估计
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 GAM zero-inflated (hurdle) Poisson regression family。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。