- Research note
- Open Access
Rapid computation and visualization of data from Kano surveys in R
© The Author(s) 2018
- Received: 1 October 2018
- Accepted: 21 November 2018
- Published: 28 November 2018
The Kano model for user satisfaction is a popular survey-based method used by product designers to prioritize the inclusion and implementation of product features based on users’ requirements. Despite its overall simplicity, a current drawback of the Kano approach is that the data analysis and processing of users’ responses is laborsome and rather prone to human error. To address this drawback, this paper provides and presents a complete code to conduct a rapid yet comprehensive computation and visualization of Kano data in R.
A detailed walkthrough of the code is provided, together with a sample dataset to demonstrate its functionality. The code is encapsulated on a simple function that can substantially decrease the time for evaluating Kano results, speeding up its application in the context of product development.
- Kano model
- Engineering design
- User satisfaction
- Product development
In product development, the Kano model may help designers solve potential trade-offs by showing which features maximize user satisfaction (see e.g., [3–5], and  for application examples). Software solutions for the analysis of these data are, however, very limited. As a result, processing and analyzing this type of data is currently very laborsome and prone to human error. Moreover, the lack of dedicated software solutions may significantly limit its applications in industrial product development. To address this gap, we present a complete R code for the rapid computation and visualization of Kano data, based on the modeling approach proposed by .
Quantitative Kano modelling
I like it that way,
It must be that way,
I am neutral,
I can live with it that way,
I dislike it that way.
Evaluation matrix for classification
2. Must be
4. Live with
2. Must be
4. Live with
Computation in R
In this section, a R function (called kano) for conducting the analysis explained above is proposed. The kano function does three main things: (1) classification of product features into Kano classes (Table 1), (2) calculation of CS and DS values, and (3) plotting of relationships functions between individual product features and customers’ satisfaction. To provide a reproducible example, we consider a dataset containing Kano data for six features of a hypothetical product. The present section provides a step-by-step walkthrough of its analysis in R. Both the dataset and the code used for the analysis are provided as Additional files 1 and 2.
Data should be imported as a n*2 dataset. The columns in Additional file 1 dataset consist of the functional and dysfunctional answers, sequentially listed for all FRs and respondents. The answers stored using numerical values from 1 to 5 matching those given in Table 1 (1 = Like, 2 = Must-be, 3 = Neutral, 4 = Live with, 5 = Dislike).
The kano function is of the form function(dataset,FR), meaning that the only input required by the user is to specify the name of the dataset and the number of product features under study. In our example, after importing the data the user can simply run the following code kano(dataset=data,FR=6) (or even simply kano(data,6)) to conduct the analysis. The function prints the output in the console, exports the numerical results to three .csv files, and graphs the functions in the R viewer. Note that the function cannot handle missing data and will return an error if it finds any.
After loading some packages needed using library, the first portion of the function runs some diagnostic checks on the dataset. Namely, it checks that the data is of class data.frame, that it does not contain missing values, and that the number of FRs given by the user is correct. If any of these conditions is violated, the function will stop and return a error message explaining the problem to the user.
- 3.It then creates a classification table equivalent to Table 1:
- 4.The next portion of the code uses the evaluation table to classify each user’s combination of functional and dysfunctional answers, and converts the evaluated answers into a dataframe:
- 5.Then, the classified data is merged with the original dataset (which now includes the classification of the FRs). We now count the entries for each class and isolate the mode (i.e. the answer with the highest frequency of occurrence) for each FR, and we use this as criterion for classifying each FR into a Kano class:
- 6.From the classified data, CS and DS values associated with each FR are calculated using the following two for loops:
- 7.We have now finished the classification, and store the results in the splitted data frame. We then move on to calculate the Must-be function (Eq. 5). The will return a function if and only if there actually are any FRs for which the mode is “M”:
- 8.We then calculate the function for One-dimensional FRs (Eq. 3). Again, this will happen only if there actually are any FRs for which the mode is ”O”.
- 9.Finally, we calculate the function for Attractive FRs (Eq. 4). Again, the code returns only if it finds FRs whose mode is “A”.
- 10.Using the following two for loops, we look for Indifferent and Reverse FRs (since these FRs are not typically of interest to product developers, these are only located but not plotted).
- 11.As we have located and collected all data points for the One-dimensional, Must-be and Attractive FRs, we can plot them:
- 12.The results are written in three different .csv files (one containing A, M and O results, the others containing Indifferent and Reverse FRs), and printed in the R console. R provides first plottable results (for Attractive, Must-be and One-dimensional requirements), then lists Indifferent and Reverse FRs. The results are printed in a data frame where the left column states the number of FRs, the middle column states the classification of the FR, while the two rightern most columns show the values of the functions when \(x=1\) and \(x=0\) (meaning that the FR is fully implemented or fully excluded, respectively).
In this sample dataset, one FR (“1”) is found to be indifferent, and none to be reverse. Three FRs are Must-be (“2”, “3”, and “5”), one is One-dimensional (“4”), and one is attractive (“6”).
This short paper presented a code for rapid computation and visualization of quantitative Kano data in R, packaged in a simple function (kano(data,FR)) that only requires the user to specify the name of the dataset and the number of FRs to be evaluated. As demonstrated in the worked example, the function allows practitioners to (1) classify FRs according to the Kano framework, (2) compute CS and DS values associated with each FR, (3) compute functions relating each FR to user satisfaction, and (4) plot the results for rapid inspection and visualization. It can assist practitioners and product developers to make informed decisions on which FRs should be implemented (and to which degree) based on Kano results, as well as to make the analysis of this type of data faster and less cumbersome.
This paper only presents a fictional dataset. For examples of real applications of the code in product development context, the reader is referred to two recent papers [3, 4]. Our kano function is based the computational approach proposed by , whereas alternatives algorithms for classifying Kano attributes, e.g. , are not considered. Finally, the function only considers Kano results at an aggregated level, without possibility for segmentation. The possibility to link results to the user background, as recently proposed in , should be a welcome development of the present code.
RSA developed the software code. DG contributed to the conceptualization and writing of the manuscript together with RSA. All authors read and approved the final manuscript.
The authors declare that they have no competing interests.
Availability of data and materials
The code and the sample datasets used in the paper are provided as additional files.
Consent to publish
Ethics approval and consent to participate
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Open AccessThis article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made. The Creative Commons Public Domain Dedication waiver (http://creativecommons.org/publicdomain/zero/1.0/) applies to the data made available in this article, unless otherwise stated.
- Kano N, Seraku N, Takahashi F, Tsuji S. Attractive quality and must-be quality. J Jap Soc Qual Control. 1984;14:2.Google Scholar
- Sauerwein E, Bailom F, Matzler K, Hinterhuber HH. The kano model: how to delight your customers. Int Work Sem Prod Econ. 1996;1(4):313–27 Innsbruck.Google Scholar
- Atlason RS, Stefansson AS, Wietz M, Giacalone D. A rapid kano-based approach to identify optimal user segments. Res Eng Des. 2018;29(3):459–67.View ArticleGoogle Scholar
- Atlason RS, Giacalone D, Parajuly K. Product design in the circular economy: users’ perception of end-of-life scenarios for electrical and electronic appliances. J Cleaner Prod. 2017;168:1059–69.View ArticleGoogle Scholar
- von Dran G, Zhang P, Small R. Quality websites: an application of the kano model to website design. In: AMCIS 1999 proceedings. 1999. p. 314.Google Scholar
- Lehtola L, Kauppinen M. Suitability of requirements prioritization methods for market-driven software product development. Softw Process. 2006;11(1):7–19.View ArticleGoogle Scholar
- Wang T, Ji P. Understanding customer needs through quantitative analysis of Kano’s model. Int J Qual Reliab Manag. 2010;27(2):173–84.View ArticleGoogle Scholar
- Xu Q, Jiao RJ, Yang X, Helander M, Khalid HM, Opperud A. An analytical kano model for customer need analysis. Des Stud. 2009;30(1):87–110.View ArticleGoogle Scholar