Je voudrais comprendre ce que fait le code suivant. La personne qui a écrit le code ne travaille plus ici et il est presque complètement sans papiers. Une personne qui pense que " c'est un modèle de régression logistique bayésienne " m'a demandé d'enquêter
bglm <- function(Y,X) {
# Y is a vector of binary responses
# X is a design matrix
fit <- glm.fit(X,Y, family = binomial(link = logit))
beta <- coef(fit)
fs <- summary.glm(fit)
M <- t(chol(fs$cov.unscaled))
betastar <- beta + M %*% rnorm(ncol(M))
p <- 1/(1 + exp(-(X %*% betastar)))
return(runif(length(p)) <= p)
}
Je peux voir qu'elle s'adapte à un modèle logistique, prend la transposition de la factorisation de Cholseky de la matrice de covariance estimée, la multiplie par un vecteur de tirages à partir de et est ensuite ajoutée aux estimations du modèle. Ceci est ensuite prémultiplié par la matrice de conception, le logit inverse de celui-ci est pris, comparé à un vecteur de tirages de U ( 0 , 1 ) et au vecteur binaire résultant retourné. Mais qu'est-ce que tout cela signifie statistiquement?
r
logistic
bayesian
generalized-linear-model
P Sellaz
la source
la source
Réponses:
Quel était l'intérêt de cette fonction:
je ne sais pas honnêtement. Cela aurait pu faire partie d'une routine bayésienne MCMC, mais cela n'aurait été qu'une seule pièce - vous auriez besoin de plus de code ailleurs pour réellement exécuter une analyse bayésienne. Je ne me sens pas suffisamment expert sur les méthodes bayésiennes pour commenter définitivement cela, mais la fonction ne me «sent» pas comme ce qui serait généralement utilisé.
Il aurait également pu être utilisé dans des analyses de puissance basées sur la simulation. (Voir ma réponse ici: Simulation de l'analyse de puissance de régression logistique - expériences conçues , pour des informations sur ce type de chose.) Il convient de noter que les analyses de puissance basées sur des données antérieures qui ne prennent pas en compte l'incertitude des estimations des paramètres sont souvent optimiste. (Je discute de ce point ici: taille d'effet souhaitée vs taille d'effet attendue .)
la source
beta
etM
), puis en créant de nombreuses simulations iid basées sur cet ajustement. (Les placer dans la même fonction entraînerait inutilement la répétition de l'ajustement à chaque fois, ce qui ralentirait considérablement les calculs.) À partir de ces simulations, on pourrait récupérer ( entre autres ) des intervalles de prédiction pour des combinaisons non linéaires ou très compliquées des réponses.