aiorazabala / qmethod

R package to analyse Q methodology data
GNU General Public License v2.0
34 stars 18 forks source link

How to define distribution (vector of numbers) for free distribution #358

Closed LineLou closed 5 years ago

LineLou commented 7 years ago

Hello, I've always used FactoMineR to conduct Q analysis, and I decided to get familiar with qmethod package. As the distribution was free, I put forced=FALSE, but I do not know how to define the vector of numbers for the argument 'distribution .. The cookbook says ' create a vector with the scores of the expected distribution', but I do not get what expected distribution, and thus which scores ?

Thank you for your help !

tilltnet commented 6 years ago

I am currently struggling with the same problem. I did some testing and as long as I provide any vector, that has as many entries as there are statements, qmethod() runs without complains. In the results, created with export.qm() only the values for 'Statement factor scores' differ, depending on what the values in the provided vector are.

I took a brief look at the code and saw that in the case of a forced distribution qmethod() uses dataset[, 1] as the value for the distribution argument. Would it make sense, to average the scores of each statetment for the whole dataset and use these values for the distribution?

aiorazabala commented 5 years ago

Hi, and sorry for the late reply. I've been responding this question by email, but missed this thread. I'll add this matter to update the instructions in the next release.

When the argument forced is set to FALSE, then the argument distro needs to be specified. For the argument distro, specify a numerical vector with as many elements as there are cells in your original distribution, and with the values of the columns. You need to repeat the values of the column, as many times as there are cells in that column. For example, for the distribution shown in Figure 1 in this paper at the R Journal, the argument distro should be:

c(-4, -4, 
  -3, -3, -3, 
  -2, -2, -2, -2, 
  -1, -1, -1, -1, -1, 
   0,  0,  0,  0,  0,
   1,  1,  1,  1,  1, 
   2,  2,  2,  2, 
   3,  3,  3, 
   4,  4  )

Or alternatively (a different way of getting the same vector):

c(rep(-4, 2), 
  rep(-3, 3),  
  rep(-2, 4),  
  rep(-1, 5),  
  rep( 0, 5),  
  rep( 1, 5),  
  rep( 2, 4),  
  rep( 3, 3),  
  rep( 4, 2))

This argument is only relevant for the calculation of factor (normalised) scores. All other values in the analysis (e.g. z-scores) are unaffected by this.

aiorazabala commented 4 years ago

This explanation is included in the documentation for qmethod() function in the next release.