我正在尝试基于二进制数据创建逻辑回归图作为因变量(直接离开= 0或1)。自变量是连续数据(危险提示的持续时间),计数数据(危险提示时间)和分类数据(处理:蔗糖或章鱼胺):
AnimalID Time Duration Treatment Daytime DirectLeave
1 1039.6 1.1 sucrose mornings 1
2 1116.5 7.6 OA mornings 0
3 359.9 2.4 sucrose afternoon 0
4 594.2 27.3 OA afternoon 1
5 951.4 10.5 OA mornings 1
6 612.4 3.8 sucrose afternoon 0
到目前为止,我能够创建两个图(下图),其中一条拟合线用于整个数据集:
library(car)
data_animal <- read.table("DirLeave_DurSorted.txt",header=T)
# Plot for relationship between immediate leave of animal and the time of danger cue presentation
pufftimegraph<-glm(DirLea ~ Time , family=binomial(link=logit), data=data_animal)
summary(pufftimegraph)
Anova(pufftimegraph)
data_animal$fitted<-pufftimegraph$fitted
dummy<-(data_animal$Time)
dummy<-sort(dummy)
print(dummy)
plot(data_animal$DirLea~data_animal$Time, xlab ="Time of the presentation of the danger cue", ylab="Proportion of wasps leaving the patch")
lines(data_animal$Time,(1/(1+(1/exp(0.0011188*data_Maxi$Time+-0.0174130)))), col="black")
# Plot for relationship between immediate leave of animal and duration of danger cue
durgraph<-glm(DirLea ~ Dur , family=binomial(link=logit), data=data_animal)
summary(durgraph)
Anova(durgraph)
data_animal$fitteddur<-durgraph$fitted
print(data_animal$fitteddur)
plot(data_animal$DirLea~data_animal$Dur, xlab ="Duration of the danger cue [s]", ylab="Proportion of wasps leaving the patch")
lines(data_animal$Dur,(1/(1+(1/exp(0.15020*data_animal$Dur+-1.00618)))), col="black")
然而,我的研究目的是显示两种治疗方法之间的差异。我知道我需要两个类别的斜率和截距值,即蔗糖和章鱼胺,但Anova()
仅为整个数据集提供一个值。
所以,我想创建两个合适的线条图:每个治疗一个。是否可以这样做,如果是这样的话?
答案 0 :(得分:0)
此处的模型不依赖于治疗类型,因此无论如何都不会从同一模型中获得不同的曲线。要比较治疗之间的比较,您必须在模型中包含依赖于治疗的术语,或者将模型拟合到数据的子集。
将模型DirLea ~ Time
与模型DirLea ~ Dur
进行比较也很困难,因为它们不是嵌套的。根据您的实验设计以及两个变量是否具有任何相关性,这两个模型可能会捕获不同的效果或相同的效果
假设您开始使用的模型包含您要比较的所有内容:
model <- glm(DirLea ~ (Time + Dur)*treatment,
data=data_animal, family = binomial(link=logit))
您可以通过将人工数据提供给predict
来构建任意拟合线,并使用subset
提取数据的相关子集。在这里,将蔗糖处理和危险提示的数据图固定为某个值:
sucrose.line <- expand.grid(treatment = "sucrose",
Time = seq(100, 1200, length=50)
Dur=mean(animal_data$Dur))
sucrose.line$fitted <- predict(model, sucrose.line)
lines(fitted ~ Time, data = sucrose.line,
xlab ="Time of the presentation of the danger cue",
ylab="Proportion of wasps leaving the patch")