using ANOVAN to analyse categorical data

Hello I have two climate data files, each of them is one column (temperature and moisture) and four plant types existence and absence results (0 for absence, 1 for existence), I made each variable in separate txt file in one column . I want to test the significance effect of the interaction of two predictors climate factors (temp and moisture) on the plan occurrence. for example: (temp*moisture)on plant1, and so on. I have used this code p=anovan (plant,{temp moisture}, 'model, 'interaction'); but it didn't work, I think the mistake is of my plants data which is zeros and ones. any suggestions plz. Regards

 Respuesta aceptada

Tom Lane
Tom Lane el 12 de Abr. de 2012
You should be able to adapt this for your logistic model:
load hald
[b,dev,st] = glmfit(ingredients,heat);
dataset(b, st.se, st.t, st.p, 'varnames',{'coef' 'se' 't' 'p'})

Más respuestas (2)

Tom Lane
Tom Lane el 7 de Abr. de 2012

0 votos

You could use a logistic regression to predict the probability of "existence" using predictors temp, moisture, temp.*moisture. You can fit this regression using glmfit, or in the most recent release using GeneralizedLinearModel.fit. The latter might be the easier of the two because it has a number of built-in features for plotting, model building, and diagnostics.
Other choices for binary data include knn classification, classification trees, and discriminant analysis.
Now, this would be for a single binary response or dependent variable. If you have four of them, you could do it four times.

2 comentarios

Yasmine
Yasmine el 8 de Abr. de 2012
hi Tom thank you so much
can you write me the code of using GeneralizedLinearMode in Matlab?
Daniel Shub
Daniel Shub el 9 de Abr. de 2012
In general we do not write code for people, but help them along.

Iniciar sesión para comentar.

Tom Lane
Tom Lane el 9 de Abr. de 2012
I don't mind supplying code comparing glmfit and the new feature, but of course you will have to adapt it for your own use. Here's an example where I fit a single binary response using a model with interactions:
a = rand(100,1); b = rand(100,1); y = binornd(1,max(a,b));
glmfit([a b a.*b],y,'binomial')
GeneralizedLinearModel.fit([a b],y,'interactions','distribution','binomial')

4 comentarios

Yasmine
Yasmine el 10 de Abr. de 2012
And you know what I've tried many other options for the
GeneralizedLinearModel.fit, but the program considers it as undefined variable.
Tom Lane
Tom Lane el 10 de Abr. de 2012
You should use glmfit then. GeneralizedLinearModel.fit is new in the R2012a version of MATLAB.
Yasmine
Yasmine el 11 de Abr. de 2012
Thanks Tom that is so helpful, BUT..I've got a coeffecients but not the P values, I need to test the significant of these veg distribution ..ANY SUGGESTIONS
Yasmine
Yasmine el 12 de Abr. de 2012
YES YES tom I've done it, I just want to ensure that the (st)values are the significancy values, right?
Thanks so much Tom

Iniciar sesión para comentar.

Categorías

Etiquetas

Preguntada:

el 6 de Abr. de 2012

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by