Messagepar mor absa loum » 01 Mar 2016, 13:54
D'accord Vincent,
Supposons qu'on ait un vecteur Y de taille n=100 ( dans ce vecteur il n y a que des 0 et des 1). Et ces données sont issues d'un mélanges de deux modèles logistique:
n=100
d=3
K=2
X=matrix(nrow=n,ncol=d)
set.seed(1)
for(i in 1:n){
X[i,]=rnorm(d)
}
beta=matrix(nrow=d,ncol=K)
beta[,1]=c(2,3,1)
beta[,2]=c(-1,0,2)
Pr=rdirichlet(1,c(2.5,1.8))
Y=Sim_2_3(X,beta,Pr)
Avec la fonction Sim_2_3 ci-dessous:
Sim_2_3=function(X,beta,Pr){
n=nrow(X)
K=length(Pr)
Y=c()
for(i in 1:n){
Zi=rbinom(1,1,Pr[1])
if(Zi==1){
p_i1=exp(X[i,]%*%beta[,1])/(1+exp(X[i,]%*%beta[,1]))
Y[i]=rbinom(1,1,p_i1)
}else{
p_i2=exp(X[i,]%*%beta[,2])/(1+exp(X[i,]%*%beta[,2]))
Y[i]=rbinom(1,1,p_i2)
}
}
return(Y)
}
A partir de là on les données X (une matrice de taille n*d) et Y (un vecteur de taille n contenant un mélange de deux modèles logistique).
A partir de cette exemple, j'aimerai utiliser une fonction de R pour étudier le mélange et retrouver les beta (approximativement peut etre).
Cdt,
Mor.