2017-09-06 7 views
0

Je voudrais calculer des erreurs standard de contrastes dans un modèle linéaire à effets mixtes (fitlme) dans MATLAB.Calculer l'erreur standard de contraste en utilisant un modèle à effets mixtes linéaire (fitlme) dans MATLAB

y = randn(100,1); 
area = randi([1 3],100,1); 
mea = randi([1 3],100,1); 
sub = randi([1 5],100,1); 

data = array2table([area mea sub y],'VariableNames',{'area','mea','sub','y'}); 
data.area = nominal(data.area,{'A','B','C'}); 
data.mea = nominal(data.mea,{'Baseline','+1h','+8h'}); 
data.sub = nominal(data.sub); 

lme = fitlme(data,'y~area*mea+(1|sub)') 

% Plot Area A on three measurements 
coefv = table2array(dataset2table(lme.Coefficients(:,2))); 
bar([coefv(1),sum(coefv([1 4])),sum(coefv([1 5]))]) 

Le calcul des moyens de contraste, par ex. area1-measurement1 vs area1-measurement2 par rapport à area1-measurement3 peut être fait en additionnant les paramètres de coefficients associés. Cependant, quelqu'un sait-il comment calculer les erreurs-types associées?

Je sais qu'un test d'hypothèse peut être effectué par coefTest (lme, H), mais seules les valeurs p peuvent être extraites.

Un exemple pour la zone A est indiqué ci-dessous:

Example

+0

Est-ce la question sur le calcul ou tracer? – m7913d

+0

calculer les erreurs standard liées aux trois contrastes – Alexm

Répondre

0

J'ai résolu ce problème!

Matlab utilise la fonction 'predict' pour estimer les contrastes. Pour trouver des intervalles de confiance pour la zone A, à mesure + 8h dans cet exemple particulier l'utilisation:

dsnew = dataset(); 
dsnew.area = nominal('A'); 
dsnew.mea = nominal('+8h'); 
dsnew.sub = nominal(1); 

[yh yCI] = predict(lme,dsnew,'Conditional',false) 

Un résultat est présenté ci-dessous:

enter image description here