Introduction to fcmfd

Introduction

The fcmfd package implements fuzzy clustering for ordinal Likert-type data using triangular fuzzy numbers (TFNs).

Example Dataset

data(sim_likert7)

head(sim_likert7)
#>   Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12
#> 1  2  2  3  2  2  3  2  1  2   2   2   2
#> 2  2  2  2  3  2  1  2  2  2   2   2   2
#> 3  2  1  2  2  2  3  2  2  2   2   2   2
#> 4  2  2  2  2  2  2  1  3  2   2   2   2
#> 5  2  2  2  2  2  3  2  3  1   2   2   2
#> 6  2  2  2  2  2  2  2  2  2   3   2   1

Running the Clustering Algorithm

result <- fcmTFN(
  data = sim_likert7,
  option = "B",
  k_values = 2:6
)
#> Running k = 2 
#> Running k = 3 
#> Running k = 4 
#> Running k = 5 
#> Running k = 6

summary(result)
#> 
#> Fuzzy C-Means Clustering for TFN
#> ---------------------------------
#> 
#> Optimal number of clusters (k):  3 
#> 
#> Weights:
#> wc = 0.61997 
#> ws = 0.38003 
#> 
#> Iterations: 11 
#> 
#> Scale configuration:
#> Type   : symmetric 
#> Option : B 
#> 
#> Xie-Beni values:
#> k = 2 : 0.067732 
#> k = 3 : 0.044298 
#> k = 4 : 4.477249e+14 
#> k = 5 : 4.077275e+15 
#> k = 6 : 3.137093e+15

Cluster Assignment

clusters <- cluster_assignment(result)

table(clusters)
#> clusters
#>   1   2   3 
#> 100 100 100

Prototype Interpretation

prototype_matrix(result)
#>         Cluster_1 Cluster_2 Cluster_3
#> Var1_l   3.007430  1.080729  4.969121
#> Var1_c   3.061097  1.133164  5.060103
#> Var1_r   2.970013  1.140116  5.059868
#> Var2_l   3.007920  1.080556  5.029623
#> Var2_c   3.061827  1.102351  4.957240
#> Var2_r   3.006383  1.112967  4.945130
#> Var3_l   2.972091  1.110017  5.017653
#> Var3_c   3.027725  1.102007  5.028846
#> Var3_r   2.992749  1.093108  4.988776
#> Var4_l   3.006059  1.071020  4.989099
#> Var4_c   3.005318  1.113128  4.993825
#> Var4_r   2.970551  1.152167  4.984855
#> Var5_l   4.007277  2.021546  5.969110
#> Var5_c   4.060629  2.038220  6.060074
#> Var5_r   3.969568  2.023083  6.059839
#> Var6_l   4.007553  1.952083  6.029599
#> Var6_c   4.061397  1.975648  5.957210
#> Var6_r   4.005926  1.997163  5.945100
#> Var7_l   3.971919  2.040613  6.017642
#> Var7_c   4.027324  1.932746  6.028818
#> Var7_r   3.992573  2.034464  5.988764
#> Var8_l   4.005667  1.995309  5.989075
#> Var8_c   4.005073  2.045521  5.993807
#> Var8_r   3.970209  2.044463  5.984830
#> Var9_l   5.006898  3.021520  6.850721
#> Var9_c   5.060260  3.038197  6.930289
#> Var9_r   4.969161  3.023056  6.911577
#> Var10_l  5.007289  2.952065  6.909242
#> Var10_c  5.061273  2.975639  6.918142
#> Var10_r  5.005549  2.997138  6.858979
#> Var11_l  4.971420  3.040580  6.881060
#> Var11_c  5.027004  2.932725  6.929930
#> Var11_r  4.992176  3.034437  6.880635
#> Var12_l  5.005315  2.995286  6.890936
#> Var12_c  5.004601  3.045489  6.898119
#> Var12_r  4.969811  3.044437  6.887700

Xie-Beni Index Visualization

plot_xb(result)

Conclusion

This vignette demonstrated the basic workflow for fuzzy clustering of Likert-type data using the fcmfd package.