#构建了dlnm模型,但是结果很奇怪,是我的模型没有统计学意义?还是有问题呢?
#代码如下:
temp1 <- data2[,c(33:397)]
colnames(temp1) <- paste("lag", 0:364, sep= "")
arglag <-equalknots(c( 0, 364), fun= "ns", df= 3, intercept= FALSE) ####
##非线性
cbTM1 <- crossbasis(temp1,lag=c( 0,364),argvar=list(fun= "ns",df= 3),arglag=list(knots=arglag))
summary(cbTM1)
model<-glm(XX ~ cbTM1+bmi+age,family = binomial(link = "logit"),data=data2)
summary(model)
AIC(model)
BIC(model)
##预测模型
pred.temp <- crosspred(cbTM1,model,by= 0.2,cumul = TRUE)
##最低点参考值
cen<-pred.temp$predvar[which.min(pred.temp$allfit)];cen
##重新预测模型
pred.temp <- crosspred(cbTM1,model,by= 0.2,cumul = TRUE,cen =cen)
par(mfrow=c( 1, 1),mai=c( 0.6, 0.6, 0.6, 0.6))
plot(pred.temp, zlab= "Effect", xlab= "DinuralTemperature (℃)",ylab= "Lag (days)")
par(mfrow=c( 1, 2),mai=c( 0.9, 0.9, 0.7, 0.7))
plot(pred.temp, "slices",var= 5,xlim=c( 0, 15),cex.main= 2.0,
ci.arg=list(density= 50,col=grey( 0.5)),
xlab= "Lag time, (day)",
ylab= "Effect at temperature 5℃",cex.lab= 1.8,
col= 1,lwd= 2)
plot(pred.temp, "slices",lag= 10,cex.main= 2.0,
ci.arg=list(density= 50,col=grey( 0.5)),
xlab= "DinuralTemperature (℃)",
ylab= "Change of XX at lag10",cex.lab= 1.8,
col= 1,lwd= 2)
par(mfrow=c( 1, 1),mai=c( 0.9, 0.9, 0.7, 0.7))
plot(pred.temp,lag=14,main= "Exposure–lag–response",cumul= TRUE,cex.main= 1.8,
xlab= "DinuralTemperature (℃)",ci.arg=list(density= 50,col=grey( 0.5)),col= 1,lwd= 2,
ylab= "Effect of XX",cex.lab= 1.5,lab=c( 8, 5, 5))
#结果如下
您好,关于你提出的构建了dlnm模型,但是结果很奇怪的问题,请问是哪里出了问题吗,还是报了什么错误呢,又或者结果不符合您的预期呢!
至于统计模型是否有意义,这是需要通过统计学检验来评估的。
首先,您在代码中使用了crossbasis()和crosspred()函数,它们是用于计算关于非线性效应的加权基函数,并为多项式和非线性模型生成预测的工具。然而,您需要确保这些函数的输入数据是合法的。例如,您需要确保您的变量是合理的,且与模型中的变量的单位是一致的。
另外,您使用了逻辑回归模型来分析数据,因此您需要确保您的因变量XX是二元的,并且您可以检查数据是否符合逻辑回归模型的其他要求,例如独立性假设和线性关系假设。
如果您检查了这些条件,并且模型的结果仍然很奇怪,则可以考虑使用其他诊断工具来检查模型的拟合情况,例如残差分布图,数据分布图以及拟合优度指标,如AIC和BIC。
如果您发现有任何关于模型的问题,则可以修改代码以解决问题
根据所提供的代码片断,很难确定你的模型有什么问题。你可以检查变量是否在模型中被正确指定,以及样本量是否足以拟合模型。此外,最好进行残差分析,以检查模型的拟合度,并确定是否存在任何可能影响模型结果的离群值或非线性关系。你还可以将你的模型与其他用于研究类似问题的模型进行比较,并使用AIC和BIC等统计指标评估模型的拟合度。如果有必要,你也可以咨询统计学家以获得进一步的帮助。
ggplot22包来代码代码使用来绘制可视化网络格式,并使用scale_fill_gradient函数来设置网络格式的颜色,从而实现可视化网络格式的效果。