Как смоделировать данные из модели logit
У меня есть логистическая регрессия, и я хотел бы генерировать смоделированные данные из кривой логита. Мой код ниже:
#Begin Code
require(gld)
runs<-100
num.trees<-500
p<-0.5
trial.1<-rgl(num.trees,1859.75592, 0.02179, -0.09578, 0.24264, param = "fkml", lambda5 = NULL)
trial.1 <- floor(trial.1/10)*10+1
minDecade <- min(trial.1)
maxDecade <- max(trial.1)
allDecades <- seq(minDecade-100, 2001, by=10)
x<-1:length(allDecades)
y<-sample(trial.1, p*num.trees)
binTrees <- rep(0,length(allDecades))
for (i in 1:length(allDecades)) {
binTrees[i] <- length(which(y==allDecades[i]))
}
binTrees
binTrees<-cumsum(binTrees)/sum(binTrees)
fit<-glm(binTrees~x,family=binomial(link='logit'))
plot(binTrees)
lines(fitted.values(fit))
#End Code
По сути, из этого последнего бита, как можно генерировать смоделированные данные из моей логистической регрессии? Кто-то, с кем я говорил, рекомендовал использовать для этого функцию CDF, но я не знаю, с чего начать. Моя цель состоит в том, чтобы воссоздать полный набор данных на основе моей подгоночной кривой.
Спасибо заранее за любые советы!
1 ответ
Как правило, вы будете рисовать из биномиального распределения, если вы выполняете симуляционный эксперимент с использованием логистической регрессии:
> set.seed(123)
> df1 <- data.frame(event=rbinom(n=20, size=1, prob=.4) )
> glm(event ~ . , df1, family="binomial")
Call: glm(formula = event ~ ., family = "binomial", data = df1)
Coefficients:
(Intercept)
-0.4055
Degrees of Freedom: 19 Total (i.e. Null); 19 Residual
Null Deviance: 26.92
Residual Deviance: 26.92 AIC: 28.92
> exp(-0.4055)/(1+exp(-0.4055))
[1] 0.3999916
> sum(df1$event)/length(df1$event)
[1] 0.4 # that degree of agreement with the simulated parameter is accidental.
Связь между вашим rgl
функциональный результат (основанный на неназванном пакете) и остальная часть кода кажутся неясными, поэтому было бы лучше, если бы вы описали на естественном естественном языке то, что вы надеетесь смоделировать.