1
$\begingroup$

I'm analysing a large dataset from a questionnaire with 560 respondents.

A cluster analysis performed based on coded free-text data resulted in 11 mutually exclusive clusters. Based on explanatory variables, I would like to test whether a person is more likely to belong to a specific cluster (11 categories) or not. The explanatory variables are categorical and ordinal.

A multinomial logistic regression seems to be the perfect solution. Creating contingency tables between the dependent variable and randomly chosen independent variable (IV with e.g. 7 categories) results in a 7x11 sized cont. table. Having 'only' 560 respondents this can lead to very small or zero cell counts. Therefore the result of the multinom ('nnet' package in R) regression contains sometimes very large estimates and associated standard errors. I read that these 0 cell counts can be replaced with 0.5 counts to make the analysis more reliable. I don't know how to do that though, since multinom does everything by itself.

My question is whether I should use another analysis design.

I thought of:

  • Structure equation modelling (SEM). Hard to perform with categorical data (lavaan).
  • Creation of clusters based on explanatory variables and subsequent descriptive analysis between the two types of clusters.
  • Single logistic regressions with 1 Cluster being the dependent variable but the same IVs.

Hereunder a sample of the dataset and the multinomial linear regression command and an example of a contingency table.

# ClusterAffiliation2               work_unit en_dyn_1 sex
1           Cluster11               Economics        6   w
2           Cluster10   Corporate Development        6   m
3           Cluster09            Distribution        4   m
4           Cluster08                Services        5   m
5           Cluster07              Production        5   m
6           Cluster07      Market and Clients        6   m

>mymodel <-multinom(ClusterAffiliation2~GF+en_dyn_1+sex,data=data)  
> class(ClusterAffiliation2)
[1] "factor"
> class(GF)
[1] "factor"
> class(en_dyn_1)
[1] "integer"
> class(sex)
[1] "factor"

        ClusterAffiliation
en_dyn_1 Cluster01 Cluster02 Cluster03 Cluster04 Cluster05 Cluster06 Cluster07 Cluster08 Cluster09 Cluster10 Cluster11
       1         1         0         0         0         0         0         0         1         0         0         0
       2         1         0         0         0         1         1         0         2         0         0         1
       3         0         0         1         0         1         3         7         2         1         1         8
       4         0         3         3         4         7         7        20         4         3         6        19
       5         1         9         6        17        21        22        70        18        21        31        47
       6         0         5         6         8        11        14        67         7         4        21        43
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.