2016-07-29 1 views
1

J'ai un peu de temps pour les données d'événement, pas de covariables. J'essayais d'y intégrer une distribution de Weibull. J'ai donc le code suivant. Tout semble bien jusqu'à ce que je charge mes initiales. Il dit "cette chaîne contient des variables non initialisées". Mais je ne comprends pas. Je pense que Weibull dist n'a que 2 paramètres, et je les ai déjà tous spécifiés. Pourriez-vous s'il vous plaît conseiller? Merci!Un modèle simple dans Winbugs mais il dit "Cette chaîne contient des variables non initialisées"

model 
{ 
    for(i in 1 : N) {      
      t[i] ~ dweib(r, mu)I(t.cen[i],) 
    } 
    mu ~ dexp(0.001) 
    r ~ dexp(0.001) 
} 
# Data 
list(
t.cen=c(0,3.91,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21.95,23.98,33.08), 
t=c(2.34,NA,5.16,5.63,6.17,6.8,7.03,8.05,8.13,8.36,8.83,10.16, 
10.55,10.94,11.48,11.95,13.05,13.59,16.02,20.08,NA,NA, 
NA), 
N=23 
) 
# Initial values 
list(
r=3,mu=3 
) 

Répondre

0

Les autres variables non initialisées sont les valeurs (NA) manquantes dans le vecteur de t. Rappelez-vous que le langage BUGS ne fait aucune distinction entre les données et les paramètres, et que fournir quelque chose en tant que données avec la valeur NA équivaut à ne pas le fournir en tant que donnée.

+0

Merci pour votre réponse! Alors, comment dois-je résoudre cela? Devrais-je cliquer sur "geninits" pour que les BUGS génèrent des initiales pour moi? J'ai peur qu'il essaie de générer ces valeurs NA ... – user3669725

+0

Oui, la meilleure solution est probablement d'utiliser gen inits, en supposant que WinBUGS est assez intelligent pour générer des valeurs initiales qui satisfont la contrainte de censure d'intervalle. Sinon, vous devrez spécifier vos propres valeurs initiales pour le vecteur de t, en vous assurant que les valeurs observées de t correspondent aux valeurs initiales de NA. Une fois l'échantillonneur en marche, il oubliera rapidement les valeurs initiales, peu importe comment vous le faites. –

+0

Merci beaucoup! Je vais utiliser gen inits. – user3669725