Advances in Necessary Condition Analysis
First published October 10, 2021
Version 0.1 (First published October 10, 2021)
Version 1.0 (First published March 20, 2022)
Version 1.1 (First published August 2, 2022)
Version 1.2 (First published October 28, 2022)
Version 1.3 (First published January 4, 2023)
Version 1.4 (First published March 1, 2023)
Version 1.5 (First published August 2, 2023)
Version 1.6 (First published January 3, 2024
Version 1.7 (First published January 9, 2025
Version 1.8 (First published July 14, 2025
Version 1.9 (First published January 14, 2026; Last update: February 07, 2026)
Suggested reference: Dul, J. (2021-2026). Advances in Necessary Condition Analysis. https://bookdown.org/ncabook/advanced_nca2/.
Welcome
This book addresses a variety of advanced topics in Necessary Condition Analysis (NCA) to support users, readers and reviewers of the method. The book supplements existing methodological publications that describe NCA at the basic level (Dul, 2016b, 2020; Dul, Van der Laan, et al., 2020) or summarize the method for different substantive fields including Human Resource Management (Hauff et al., 2021), Marketing (Dul, Hauff, et al., 2021), Tourism Management (Tóth et al., 2019), Education (Tynan et al., 2020), Creativity (Dul, Karwowski, et al., 2020), Supply Chain Management (Bokrantz & Dul, 2023), Entrepreneurship (Linder et al., 2023), Public Health (Greco et al., 2022), and International Business (Richter & Hauff, 2022).
NCA is an emerging research method that is rapidly entering a variety of research fields in the social, medical and technical sciences. The publication in 2016 of NCA’s core paper (Dul, 2016b) marks the start of NCA. Bergh et al. (2022) consider this article as a ‘gold standard’ of a methodological contribution. Several editorial comments (e.g., Dul, 2025; Fainshmidt et al., 2020; Hernaus & Černe, 2022; Robinson et al., 2022; Sarstedt & Liu, 2023) and review articles (e.g., Aguinis et al., 2020; Boon et al., 2019; Dabić et al., 2021; Frazier et al., 2017; Rozenkowska, 2023) suggest to use NCA in future research.
Since the start of NCA, the number of publications in Web of Science (WOS, Clarivate) ranked journals that apply NCA has increased rapidly. A total of 585 English language articles have appeared until 31 December 2025 (see Figure 0.1). Articles with problematic applications of NCA (see Dul, 2022), articles published in predatory journals since 2025, and retracted articles, are excluded from the list. ‘Q’ stands for the journal quality in terms of category journal rank by impact factor. Q1 = first quartile, etc. Q? indicates that no quality rank is available. NCA articles appear in a broad variety of WOS journal categories. Roughly 20 percent of 254 categories are served by at least one NCA article. Most articles appear in the Q1 quartile of the journal’s category (where journals are ranked based on the journal impact factor).
Figure 0.1: Cumulative number of publications in Web of Science (Clarivate) ranked journals that apply NCA. (Situation of 31 December 2025).
The number of publications using NCA has grown at a much faster rate than the general growth in scientific publishing. Over the past ten years, the number of publications in Web of Science (WoS) journals has increased by 48% (The Guardian, 2025), corresponding to an average annual growth rate of approximately 4%. In contrast, NCA publications have shown an average annual growth rate of 76% over the past five years (2019–2024). In addition to this increase in quantity, the quality of NCA publications is also noteworthy. NCA articles are 60% more likely to be published in Q1 journals compared to other publications, after correcting for the higher volume of articles found in the Q1 category.
Table 0.1 shows details about the NCA articles. We identified these articles as follows (special thanks to Gijs van Biezen and Magdalena Marczewska).
The article must reference at least one of the core methodological publications in which the application of NCA is described (our search criterion)
The article must be a journal-published research article in which NCA is applied
The journal is listed in Clarivate’s Journal Citation Reports
The journal is not on the list of potentially predatory journals
Being listed does not automatically imply that NCA was always properly described and applied in all its aspects (see section 1.8 with the SCoRe checklist with recommendations for authors, reviewers and editors). About 10% of the articles use NCA as the sole or primary research method. About one-third of the articles combine NCA with Qualitative Comparative Analysis (QCA). About half of the articles apply NCA in combination with regression-based methods. The rest of the applications combine NCA with a variety of other methods. In Section 4.7 special attention is paid how to combine NCA with QCA and in Section 4.6 how to combine NCA with Structural Equation Modeling (SEM).
| Year | Author(s) | Reference | Journal | Journal quality |
|---|---|---|---|---|
| in press | Abbass, Khan & Tao | Abbass et al. (in press) | International Journal of Human–Computer Interaction | Q1 |
| in press | Asheq, Hasan & Coughlan | Asheq et al. (in press) | Journal of Travel Research | Q1 |
| in press | Bawa, Jain & Goel | Bawa et al. (in press) | Interactive Technology and Smart Education | Q1 |
| in press | Casadiego-Alzate, Arroyo-Cañada, Castañeda-Quirama, Sánchez-Torres & Luzardo Briceño | Casadiego-Alzate et al. (in press) | Journal of Modelling in Management | Q3 |
| in press | Chen & Huang | Chen & Huang (in press) | Technology Analysis & Strategic Management | Q2 |
| in press | Chen, Zhao, Wang & Shi | Chen et al. (in press) | Environment, Development and Sustainability | Q2 |
| in press | Choudhary & Ahuja | Choudhary & Ahuja (in press) | Journal of Global Marketing | Q2 |
| in press | Costa, Gomes & Linardi | J. Costa et al. (in press) | Innovation | Q3 |
| in press | Dang, Quach & Roberts | Dang et al. (in press) | International Journal of Human–Computer Interaction | Q1 |
| in press | Das, Kondasani, Deb & Batabyal | Das et al. (in press) | Tourism and Hospitality Research | Q2 |
| in press | De Sousa, Bizarrias, Raposo & da Cruz | De Sousa et al. (in press) | Journal of Services Marketing | Q2 |
| in press | Díez-de-Castro, Vázquez-Sánchez & Agustí-Pérez | Díez-de-Castro et al. (in press) | European Journal of Management and Business Economics | Q1 |
| in press | El Manzani & El Idrissi | El Manzani & El Idrissi (in press) | Management Review Quarterly | Q1 |
| in press | Fakfare, Manosuthi, Lee, Han & Jin | Fakfare, Manosuthi, Lee, Han, et al. (in press) | Current Issues in Tourism | Q1 |
| in press | Fakfare, Manosuthi, Lee, Jin, Han & Kim | Fakfare, Manosuthi, Lee, Jin, et al. (in press) | Journal of Vacation Marketing | Q1 |
| in press | Farmaki, Pappas, Stergiou, Apostolakis & Camilleri | Farmaki et al. (in press) | Tourism Review | Q1 |
| in press | Gao, Wang, Sethanan & Tseng | X. Gao et al. (in press) | Journal of Industrial and Production Engineering | Q1 |
| in press | Garg, Wadhwa, Gomes & Sahasrabudhe | A. Garg et al. (in press) | Education and Information Technologies | Q1 |
| in press | Gong, Wu, Tan, He & Lin | Y. Gong et al. (in press) | Electronic Commerce Research | Q2 |
| in press | Haverila, Twyford, McLaughlin & Arora | Haverila et al. (in press) | Management Decision | Q1 |
| in press | Hu, Jie & Zhu | Hu et al. (in press) | Technological and Economic Development of Economy | Q1 |
| in press | Huang, Bu & Li | Huang et al. (in press) | Small Business Economics | Q1 |
| in press | Huang, Wu, Li & Zhang | R. Huang et al. (in press) | Aslib Journal of Information Management | Q1 |
| in press | Hulme | Hulme (in press) | American Political Science Review | Q1 |
| in press | Hussain, Wong, Stephenson & Chong | Hussain et al. (in press) | Current Issues in Tourism | Q1 |
| in press | Ismael, Ibrahim, Abdulmuhsin, Khan, Rehman & Alkhwaldi | Ismael et al. (in press) | Journal of Health Organization and Management | Q2 |
| in press | Kashive & Raina | Kashive & Raina (in press) | International Journal of Organizational Analysis | Q2 |
| in press | Kayser & Gradtke | Kayser & Gradtke (in press) | Journal of Decision Systems | Q2 |
| in press | Keimasi, Giwa, Chitsazan & NasirpourOsgoei | Keimasi et al. (in press) | Assessment & Evaluation in Higher Education | Q1 |
| in press | Koay & Ngang | Koay & Ngang (in press) | British Food Journal | Q1 |
| in press | Lai, Zhang & Su | Lai et al. (in press) | Environment, Development and Sustainability | Q2 |
| in press | Ledesma-Chaves, Gil-Cordero & Maldonado-López | Ledesma-Chaves et al. (in press) | Journal of Enterprise Information Management | Q1 |
| in press | Li, Huang & Yao | Li et al. (in pressb) | Environment, Development and Sustainability | Q2 |
| in press | Li, Ma, Hao, Xu & Liu | Li et al. (in pressc) | Current Issues in Tourism | Q1 |
| in press | Li, Wang & Wang | Li et al. (in pressa) | Energy & Environment | Q2 |
| in press | Li, Yan & Ma | D. Li et al. (in press) | Journal of Asian Architecture and Building Engineering | Q3 |
| in press | Li, Zhu & Kong | G. Li et al. (in press) | The Electronic Library | Q2 |
| in press | Liao, Wu & Chen | C.-P. Liao et al. (in press) | Psychological Reports | Q2 |
| in press | Lisboa, Dias, Abrantes, Ferreira & Sousa | Lisboa et al. (in press) | Journal of Marketing Analytics | Q2 |
| in press | Liu, Yan, Chen, Wu & Zhang | Liu et al. (in press) | Policy Studies Journal | Q1 |
| in press | Loh, Shyu, Lee, Huang, Tan & Ooi | Loh et al. (in press) | Journal of Computer Information Systems | Q2 |
| in press | Low, Tang & Yap | Low, Tang, et al. (in press) | Management of Environmental Quality | Q2 |
| in press | Low, Wut & Pok | Low, Wut, et al. (in press) | Educational Gerontology | Q2 |
| in press | Ly | Ly (in press) | Journal of the Knowledge Economy | Q1 |
| in press | Manickavasagam, Ayyalusamy, Bhaiyat, Jha, Jain & Poddar | Manickavasagam et al. (in press) | International Journal of Finance & Economics | Q2 |
| in press | Marchetti, Colpizzi, De Caro, Pedretti, Iannattone, Di Blas & Bottesi | Marchetti et al. (in press) | Eating and Weight Disorders - Studies on Anorexia, Bulimia and Obesity | Q2 |
| in press | Mkedder, Das, Bakır, Lachachi & Aldhabyani | Mkedder et al. (in press) | International Journal of Emerging Markets | Q1 |
| in press | Murtaza, Hussain, Salman, Mustafa & Han | Murtaza et al. (in press) | European Journal of Management and Business Economics | Q1 |
| in press | Mwesiumo | Mwesiumo (in press) | Studies in Higher Education | Q1 |
| in press | Olafsen & Marescaux | Olafsen & Marescaux (in press) | Motivation and Emotion | Q2 |
| in press | Oliveira, Van der Heijden, Finsel, Axelrad, Derous, Gu, Marzec, Mykletun, Vignoli, Pajic, Wöhrmann & Deller | E. Oliveira et al. (in press) | Human Resource Management | Q1 |
| in press | P. & Mekonnen | P. & Mekonnen (in press) | International Journal of Ethics and Systems | Q2 |
| in press | Piriyakul, Kunathikornkit & Piriyakul | Piriyakul et al. (in press) | Journal of Vacation Marketing | Q1 |
| in press | Poku, Nuertey, Agbemude, Owusu & Buabeng | Poku et al. (in press) | Benchmarking: An International Journal | Q2 |
| in press | Pérez-Tapia, Cabrera-Sánchez & Hernández Correa | Pérez-Tapia et al. (in press) | Journal of Vacation Marketing | Q1 |
| in press | Quan, Wu & Zhang | Quan et al. (in press) | Asia Pacific Journal of Education | Q2 |
| in press | Rath & Jain | Rath & Jain (in press) | Benchmarking: An International Journal | Q2 |
| in press | Samagaio, Francisco, Felício & Verga Matos | Samagaio et al. (in press) | Management Decision | Q1 |
| in press | Sekar, Veerasamy, Michellin Kiruba & Ranganathan | Sekar et al. (in press) | Journal of Human Behavior in the Social Environment | Q2 |
| in press | Silalahi | Silalahi (in press) | International Journal of Human–Computer Interaction | Q1 |
| in press | Sun & Zhou | H. Sun & Zhou (in press) | Review of Policy Research | Q1 |
| in press | Sánchez-Medina, Pellejero, C-Sánchez & Cerviño-Cortínez | Sánchez-Medina et al. (in press) | Current Issues in Tourism | Q1 |
| in press | Tetteh & Owusu Kwateng | Tetteh & Owusu Kwateng (in press) | Journal of Enterprise Information Management | Q1 |
| in press | Tetteh, Owusu Kwateng, Owusu-Antwi & Opoku-Mensah | Tetteh et al. (in press) | Business Process Management Journal | Q1 |
| in press | Tingli, Aw, Huam & Tan | Tingli et al. (in press) | Journal of Hospitality and Tourism Technology | Q1 |
| in press | Torres & Godinho | Torres & Godinho (in press) | Competitiveness Review: An International Business Journal | Q2 |
| in press | Twyford, Hosseini, Haverila & Haverila | Twyford et al. (in press) | Social Responsibility Journal | Q2 |
| in press | Velikova, Bouzdine-Chameeva, Ben Nasr, Sanz-Ibáñez, Anton Clavé & Rabassa-Figueras | Velikova et al. (in press) | Current Issues in Tourism | Q1 |
| in press | Wang & Beh | Wang & Beh (in press) | Technology Analysis & Strategic Management | Q2 |
| in press | Wang, Aw, Tan, Sthapit & Li | Wang, Aw, et al. (in press) | Current Issues in Tourism | Q1 |
| in press | Wang, Feng, Wang & Shen | Wang, Feng, et al. (in press) | Polish Journal of Environmental Studies | Q4 |
| in press | Wang, Tang & Zhao | Wang et al. (in press) | Environmental Progress & Sustainable Energy | Q3 |
| in press | Wu, Aw, Tan & Liu | Z. Wu, Aw, Tan, & Liu (in press) | Journal of Marketing Analytics | Q2 |
| in press | Wu, Aw, Tan & Ooi | Z. Wu, Aw, Tan, & Ooi (in press) | Internet Research | Q1 |
| in press | Xu, Yang, Chen, Chen & Nan | Z. Xu et al. (in press) | International Journal of Human–Computer Interaction | Q1 |
| in press | Yang | Z. Yang (in press) | Environmental Research Communications | Q3 |
| in press | Yang, Bai, Li, Feng, Zhang & Jiang | S. Yang et al. (in press) | Journal of Asian Architecture and Building Engineering | Q3 |
| in press | Yin, Ye, Yu, Li & Liu | X. Yin et al. (in press) | Education and Information Technologies | Q1 |
| in press | Yuan, Tao, Chen, Zhang, Chen & Lai | B. Yuan et al. (in press) | Engineering, Construction and Architectural Management | Q1 |
| in press | Yuan, Zhuang & Liu | M. Yuan et al. (in press) | Engineering, Construction and Architectural Management | Q1 |
| in press | Zaerpour, Gharehgozli & Li | Zaerpour et al. (in press) | Journal of Manufacturing Technology Management | Q1 |
| in press | Zeng, Murayama, Nishikizawa & Suwanteep | Zeng et al. (in press) | Sustainable Development | Q1 |
| in press | Zhang | Zhang (in pressb) | Current Issues in Tourism | Q1 |
| in press | Zhang | Zhang (in pressa) | Journal of Sustainable Tourism | Q1 |
| in press | Zhang, Dong, Wang, Yao & Huang | Zhang, Dong, et al. (in press) | Engineering, Construction and Architectural Management | Q1 |
| in press | Zhang, Lim, Cham, Huang & Tapsir | Zhang, Lim, et al. (in press) | Asia Pacific Business Review | Q3 |
| in press | Zhao, Ru & Jia | Zhao et al. (in press) | International Journal of Human–Computer Interaction | Q1 |
| in press | Zhong & Luo | Zhong & Luo (in press) | International Journal of Human–Computer Interaction | Q1 |
| in press | de Andrés-Sánchez, Almahameed, Arias-Oliva & Pelegrín-Borondo | Andrés-Sánchez et al. (in press) | International Journal of Human–Computer Interaction | Q1 |
| in press | İnce & Orhan | İnce & Orhan (in press) | Kybernetes | Q2 |
| in press | İnce, Şahin & Durmaz | İnce et al. (in press) | Journal of Hospitality and Tourism Insights | Q1 |
| 2026 | An, Lin & Benitez | An et al. (2026) | Decision Support Systems | Q1 |
| 2026 | Arpaci, Al-Sharafi & Mahmoud | Arpaci et al. (2026) | Transportation Research Part F: Traffic Psychology and Behaviour | Q1 |
| 2026 | Baah, Agyabeng-Mensah, Afum, Acquah & Agyeman | Baah et al. (2026) | Industrial Marketing Management | Q1 |
| 2026 | Bao, Xie & Yao | Bao et al. (2026) | Journal of Retailing and Consumer Services | Q1 |
| 2026 | Becker, Richter, Ringle & Sarstedt | Becker et al. (2026) | Journal of Business Research | Q1 |
| 2026 | Chen | P.-K. A. Chen (2026) | The International Journal of Management Education | Q1 |
| 2026 | Choi | K. Choi (2026) | Journal of Destination Marketing & Management | Q1 |
| 2026 | Choi, Yang, Ahmad & Lee | S.-Y. Choi et al. (2026) | Travel Behaviour and Society | Q1 |
| 2026 | Darwati, Yusron, Purnomo, Suryadi, Rusmin, Trisilawati, Yatno, Pitono, Syakir, Fidiyawati & Hartati | Darwati et al. (2026) | Scientia agropecuaria | Q3 |
| 2026 | Ding, Wang & Tan | X. Ding et al. (2026) | Land Use Policy | Q1 |
| 2026 | Hasselwander, Sunio, Lah & Mogaji | Hasselwander et al. (2026) | Journal of Retailing and Consumer Services | Q1 |
| 2026 | Huang, Ding & Long | S. Huang et al. (2026) | Journal of Cleaner Production | Q1 |
| 2026 | Huang, Huang, Rong & Xie | L. Huang et al. (2026) | Journal of Innovation & Knowledge | Q1 |
| 2026 | Kang & Shang | Kang & Shang (2026) | Technology in Society | Q1 |
| 2026 | Li, Hu, Tong, Xie, Tong & Hu | S. Li et al. (2026) | Sustainable Cities and Society | Q1 |
| 2026 | Mobeen, Kabir, Schneider, Ahmed, Ahmad & Scheffran | Mobeen et al. (2026) | Heliyon | Q1 |
| 2026 | Nguyen & Le | M. H. Nguyen & Le (2026) | The International Journal of Management Education | Q1 |
| 2026 | Nguyen, Nguyen, Le, Pervan, Vu & Nguyen | H. V. Nguyen et al. (2026) | Journal of Retailing and Consumer Services | Q1 |
| 2026 | Pinthong, Inprasertkul, Rattanopas, Fakfare, Han & Chua | Pinthong et al. (2026) | International Journal of Hospitality Management | Q1 |
| 2026 | Porlán-Ariza, Villarejo-Ramos, Ledesma-Chaves & Gil-Cordero | Porlán-Ariza et al. (2026) | Thinking Skills and Creativity | Q1 |
| 2026 | Pérez-Portabella, Arias-Oliva, Padilla-Castillo & de Andrés-Sánchez | Pérez-Portabella et al. (2026) | Computers and Education Open | Q1 |
| 2026 | Rahman, Carlson, Chowdhury, Gudergan, Wetzels, Ringle & Grewal | S. M. Rahman et al. (2026) | Journal of Business Research | Q1 |
| 2026 | Sen, Roy, Laradi, Das, Ray, Parida & Das | Sen et al. (2026) | Journal of Cleaner Production | Q1 |
| 2026 | Wang & Guo | X.-W. Wang & Guo (2026) | Journal of Retailing and Consumer Services | Q1 |
| 2026 | Xie | G. Xie (2026) | International Journal of Information Management | Q1 |
| 2026 | Zhang, Cui & Chai | Zhang et al. (2026) | Journal of Innovation & Knowledge | Q1 |
| 2025 | Acquah, Naude & Oguji | Acquah et al. (2025) | Technological Forecasting and Social Change | Q1 |
| 2025 | Agustí-Pérez, Vázquez-Sánchez & Orta-Perez | Agustí-Pérez et al. (2025) | International Journal of Quality & Reliability Management | Q2 |
| 2025 | Ahsan & Tahir | M. J. Ahsan & Tahir (2025) | Measuring Business Excellence | Q3 |
| 2025 | Al Mamun, Reza, Yang & Gao | Al Mamun et al. (2025) | Mitigation and Adaptation Strategies for Global Change | Q3 |
| 2025 | Alajhar, Bajaba & Basahal | Alajhar et al. (2025) | The International Journal of Human Resource Management | Q1 |
| 2025 | Arcidiacono, Podrecca & Schupp | Arcidiacono et al. (2025) | Industrial Management & Data Systems | Q2 |
| 2025 | Aziz, Li & Khan | Aziz et al. (2025) | Technology in Society | Q1 |
| 2025 | Baah, Saleem, Greenland, Tenakwah & Chakrabarty | Baah et al. (2025) | Environmental Development | Q1 |
| 2025 | Bajaba & Basaad | Bajaba & Basaad (2025) | Stress and Health | Q2 |
| 2025 | Bazan | Bazan (2025) | Sage Open | Q1 |
| 2025 | Bhatt, Pandey, Patel, Ghodake, Jariwala & Thomas | Bhatt et al. (2025) | Journal of Nonprofit & Public Sector Marketing | Q3 |
| 2025 | Bowden, Eshaghi, Afshardoost & Rahman | Bowden et al. (2025) | Journal of Consumer Marketing | Q2 |
| 2025 | Calafat-Marzal, Piñeiro, Cervera & García-Álvarez-Coque | Calafat-Marzal et al. (2025) | New Medit | Q2 |
| 2025 | Cangialosi & Odoardi | Cangialosi & Odoardi (2025) | Small Group Research | Q3 |
| 2025 | Cao & Zhang | H. Cao & Zhang (2025) | Sage Open | Q1 |
| 2025 | Cao, Hassan & Sampene | D. Cao et al. (2025) | Journal of Environmental Management | Q1 |
| 2025 | Chai & Wu | Chai & Wu (2025) | Scientometrics | Q1 |
| 2025 | Chaity, Islam, Masud, Islam, Rahman & Kabir | Chaity et al. (2025) | Business Strategy and the Environment | Q1 |
| 2025 | Charles & Kanani | Charles & Kanani (2025) | Cogent Business & Management | Q2 |
| 2025 | Chen, Wu & Wang | X. Chen et al. (2025) | International Journal of Innovation Management | Q4 |
| 2025 | Chu, Ai, Wu & Zhang | Chu et al. (2025) | Transport Policy | Q1 |
| 2025 | Colino, Maiche & Antino | Colino et al. (2025) | High Ability Studies | Q3 |
| 2025 | Colpizzi, Pössel & Marchetti | Colpizzi et al. (2025) | Journal of Youth and Adolescence | Q1 |
| 2025 | Conde | Conde (2025) | Journal of Business & Industrial Marketing | Q2 |
| 2025 | Contreras Pinochet, Pardim, Mangini & de Souza | Contreras Pinochet et al. (2025) | Case Studies on Transport Policy | Q2 |
| 2025 | Do, Tho & Le | Do et al. (2025) | International Journal of Emerging Markets | Q1 |
| 2025 | Du, Kim, Fan & Su | Du et al. (2025) | Journal of Business Research | Q1 |
| 2025 | Duan & Xiang | Duan & Xiang (2025) | Transport Policy | Q1 |
| 2025 | Duan, Si & Xia | Duan et al. (2025) | Transportation Research Part F: Traffic Psychology and Behaviour | Q1 |
| 2025 | Duarte, Meneses, Silva & Tharakan | Duarte et al. (2025) | International Journal of Gastronomy and Food Science | Q2 |
| 2025 | Erdmann & Toro-Dupouy | Erdmann & Toro-Dupouy (2025) | European Journal of Innovation Management | Q1 |
| 2025 | Faiella, Zielińska, Karwowski & Corazza | Faiella et al. (2025) | The Journal of Creative Behavior | Q2 |
| 2025 | Fakfare, Manosuthi, Lee, Han & Jin | Fakfare et al. (2025) | International Journal of Hospitality Management | Q1 |
| 2025 | Fu, Hu, Zhang & Li | Fu et al. (2025) | British Food Journal | Q1 |
| 2025 | Galindo-Martin, Mendez-Picazo & Perez-Pujol | Galindo-Martin et al. (2025) | International Journal of Information Management | Q1 |
| 2025 | Gangakhedkar & Khan | Gangakhedkar & Khan (2025) | Energy Efficiency | Q3 |
| 2025 | Garg, Ahmad & Madsen | S. Garg et al. (2025) | Cleaner and Responsible Consumption | Q1 |
| 2025 | Gavín-Chocano, Luque de la Rosa & García-Martínez | Gavín-Chocano et al. (2025) | Psychology, Society & Education | Q3 |
| 2025 | Gomes, Tontini & Picolo | Gomes et al. (2025) | International Journal of Operations & Production Management | Q1 |
| 2025 | Gordon, Balta-Ozkan, Haq & Nabavi | Gordon et al. (2025) | Sustainable Energy & Fuels | Q2 |
| 2025 | Guevara, Medina-Molina, Pérez-Macías & Fabra Florit | Guevara et al. (2025) | Quality & Quantity | No ranking |
| 2025 | Guo, Wang & Li | R. Guo et al. (2025) | Scientific Reports | Q1 |
| 2025 | Gómez-Gómez, Bustos-Gutierrez, Díaz Tautiva & Quezada-Baier | Gómez-Gómez et al. (2025) | Gender Issues | Q2 |
| 2025 | Harun, Salema & Matto | M. Harun et al. (2025) | Future Business Journal | Q3 |
| 2025 | Hassan, Mai, Wahab, Amin, Hassan & Oláh | Hassan et al. (2025) | Computers in Human Behavior Reports | Q1 |
| 2025 | Hasselwander | Hasselwander (2025) | Transportation Research Part F: Traffic Psychology and Behaviour | Q1 |
| 2025 | He, Chen & Gu | Z. He et al. (2025) | Cities | Q1 |
| 2025 | He, Cheng & Wang | Y. He et al. (2025) | PLOS ONE | Q2 |
| 2025 | Helinski, Westmattelmann & Schewe | Helinski et al. (2025) | Journal of Cleaner Production | Q1 |
| 2025 | Huang & Wu | Z. Huang & Wu (2025) | Technology Analysis & Strategic Management | Q2 |
| 2025 | Huang & Yang | Huang & Yang (2025) | Industrial Management & Data Systems | Q2 |
| 2025 | Huang, Jiang & Hou | Huang, Jiang, et al. (2025) | Sage Open | Q1 |
| 2025 | Huang, Sun, Yuan & Bu | Huang, Sun, et al. (2025) | Corporate Social Responsibility and Environmental Management | Q1 |
| 2025 | Huang, Zhang, Xu, Yuan, Zhang & Huang | Huang, Zhang, et al. (2025) | Humanities and Social Sciences Communications | Q1 |
| 2025 | Ji & Li | Ji & Li (2025) | Teaching and Teacher Education | Q1 |
| 2025 | Jing, Qianqiang, Yantai & Qi | Jing et al. (2025) | Technological Forecasting and Social Change | Q1 |
| 2025 | Koay & Low | Koay & Low (2025) | British Food Journal | Q1 |
| 2025 | Li, Che, Yao & Cui | Li, Che, et al. (2025) | PLOS ONE | Q2 |
| 2025 | Li, Gong & Song | M. Li et al. (2025) | Scientific Reports | Q1 |
| 2025 | Li, Ma, Zheng, Ma, Zuo & Goodsite | Li, Ma, et al. (2025) | Scientific Reports | Q1 |
| 2025 | Li, Yanrui, Fan, Yuqing & Xu | Z. Li et al. (2025) | China: An International Journal | Q2 |
| 2025 | Liang, Li & Yang | S. Liang et al. (2025) | Humanities and Social Sciences Communications | Q1 |
| 2025 | Liao, Li, Al Mamun, Tseng & Helmi Ali | Z. Liao et al. (2025) | International Journal of Logistics Research and Applications | Q1 |
| 2025 | Lima, Bahli, Arbulu, Hamdi and Saikouk | Lima et al. (2025) | Journal of Business & Industrial Marketing | Q2 |
| 2025 | Liu, Zhu & Wu | X. Liu et al. (2025) | Electronic Commerce Research and Applications | Q1 |
| 2025 | Liébana-Cabanillas, Abbasi, Higueras-Castillo & Wagner | Liébana-Cabanillas et al. (2025) | Technological Forecasting and Social Change | Q1 |
| 2025 | Lourenco, Madeira & Santos | Lourenco et al. (2025) | ReMark - Revista Brasileira de Marketing | Q4 |
| 2025 | Low, Cham & Ramayah | Low, Cham, et al. (2025) | Quality & Quantity | No ranking |
| 2025 | Low, Rahim & Wut | Low, Rahim, et al. (2025) | Sustainable Futures | Q1 |
| 2025 | Malibari, Bajaba, Bajaba & Basahal | Malibari et al. (2025) | Journal of Innovation & Knowledge | Q1 |
| 2025 | Manzi-Puertas, Agirre-Aramburu & López-Pérez | Manzi-Puertas et al. (2025) | Cogent Business & Management | Q2 |
| 2025 | Marchetti, Koster & Hankin | Marchetti, Koster, et al. (2025) | Journal of the American Academy of Child & Adolescent Psychiatry | Q1 |
| 2025 | Marchetti, Pedretti, Iannattone, Colpizzi, Farina, Di Blas, Ghisi & Bottesi | Marchetti, Pedretti, et al. (2025) | Journal of Anxiety Disorders | Q1 |
| 2025 | Mazhar & Zilahy | Mazhar & Zilahy (2025) | British Food Journal | Q1 |
| 2025 | Meddeb & St-Jean | Meddeb & St-Jean (2025) | Mentoring & Tutoring: Partnership in Learning | Q2 |
| 2025 | Milovan, Dobre & Moisescu | Milovan et al. (2025) | Journal of Business Research | Q1 |
| 2025 | Mladenović, Monashev, Jirásek & Bruni | Mladenović et al. (2025) | Computers in Human Behavior | Q1 |
| 2025 | Mohammed, Al‐Swidi, Ferraris & Jabeen | Mohammed et al. (2025) | International Journal of Consumer Studies | Q1 |
| 2025 | Mohsin, Rashed, Gerschberger, Ahmed, Plasch, Rahman & Noor | Mohsin, Rashed, Gerschberger, Ahmed, et al. (2025) | Sustainable Futures | Q1 |
| 2025 | Mohsin, Rashed, Gerschberger, Plasch, Ahmed, Dritan & Islam | Mohsin, Rashed, Gerschberger, Plasch, et al. (2025) | The International Journal of Logistics Management | Q1 |
| 2025 | Moon, Lee & Lee | Moon et al. (2025) | Acta Psychologica | Q2 |
| 2025 | Morgado Oliveira & Gomes | Morgado Oliveira & Gomes (2025) | Total Quality Management & Business Excellence | Q1 |
| 2025 | Munir, Abbas, Qamar, Farooq & Cohen | Munir et al. (2025) | Sustainable Futures | Q1 |
| 2025 | Mwesiumo, Similä & Langseth | Mwesiumo et al. (2025) | Journal of Public Procurement | Q2 |
| 2025 | NA, Corbett, Nishant, NA, Cherki El Idrissi, NA, Chung & NA | Corbett et al. (2025) | Communications of the Association for Information Systems | Q3 |
| 2025 | Nguyen, Ngo, Phan, Tao & Bui | N. S. Nguyen et al. (2025) | Journal of Health Organization and Management | Q2 |
| 2025 | Nie, Qiu, Wu, Yang, Li, Feng & Wang | Nie et al. (2025) | Environmental Research Communications | Q3 |
| 2025 | Nikookar, Ali, Stevenson & Shokouhyar | Nikookar et al. (2025) | Journal of Supply Chain Management | Q1 |
| 2025 | Niranjan, Garg, Gligor & Hawkins | Niranjan et al. (2025) | Journal of Business & Industrial Marketing | Q2 |
| 2025 | Niu, Liu, Yao, Xiao & Wu | Niu et al. (2025) | Transport Policy | Q1 |
| 2025 | Norena-Chavez, Chavez-Limaylla & Romani-Torres | Norena-Chavez et al. (2025) | Cogent Business & Management | Q2 |
| 2025 | Novales, Mocker, Van Heck & Dul | Novales et al. (2025) | Decision Support Systems | Q1 |
| 2025 | Ofori, Agyapong & Buer | Ofori et al. (2025) | Journal of Manufacturing Technology Management | Q1 |
| 2025 | Okeke & Onyemere | Okeke & Onyemere (2025) | Discover Sustainability | Q2 |
| 2025 | Osei & Ofori | Osei & Ofori (2025) | Journal of Business Logistics | Q1 |
| 2025 | Ouazzani, Calderón-García & Tubillejas-Andrés | Ouazzani et al. (2025) | Empirical Studies of the Arts | Q3 |
| 2025 | P. & Mekonnen | P. & Mekonnen (2025) | Accounting Research Journal | Q2 |
| 2025 | Pangarso, Yunani, Umbara, Hendriyanto, Sisilia & Panutur | Pangarso et al. (2025) | Sustainable Futures | Q1 |
| 2025 | Peng & Hu | F. Peng & Hu (2025) | The American Journal of Economics and Sociology | Q3 |
| 2025 | Pillai, Sivathanu & Rana | Pillai et al. (2025) | Journal of Business Research | Q1 |
| 2025 | Pourazad, Stocchi & Simmonds | Pourazad et al. (2025) | Information Technology & Tourism | Q1 |
| 2025 | Qin, Luo, Xu, Wang & Škare | Qin et al. (2025) | Technological and Economic Development of Economy | Q1 |
| 2025 | Quansah, Lang & Mühlbacher | Quansah et al. (2025) | Journal of Business Research | Q1 |
| 2025 | Rafi, Roy, Rehman & Hasni | Rafi et al. (2025) | Decision Support Systems | Q1 |
| 2025 | Rahimi & Daneshvar Ghorbani | Rahimi & Daneshvar Ghorbani (2025) | Computers in Human Behavior Reports | Q1 |
| 2025 | Rahimi & Sevilla-Pavón | Rahimi & Sevilla-Pavón (2025) | Smart Learning Environments | Q1 |
| 2025 | Rahman & Sadik | Md. M. Rahman & Sadik (2025) | Discover Sustainability | Q2 |
| 2025 | Rahman, Tafsirun, Faisal-E-Alam, Ferreira, Loures & Castanho | S. M. M. Rahman et al. (2025) | PLOS ONE | Q2 |
| 2025 | Rashed, Uddin, Islam, Mohsin, Rahman, Kumar & Rana | Rashed et al. (2025) | Sustainable Futures | Q1 |
| 2025 | Ren & Liu | Z. Ren & Liu (2025) | Social Indicators Research | Q1 |
| 2025 | Ren, Hu & Zhang | X. Ren et al. (2025) | European Journal of Innovation Management | Q1 |
| 2025 | Riggs, Felipe, Roldán, & Real | Riggs et al. (2025) | Journal of Marketing Analytics | Q2 |
| 2025 | Rocha, Ed-Dafali & Sharma | Rocha et al. (2025) | Journal of Small Business and Enterprise Development | Q1 |
| 2025 | Romero-Charneco, Casado-Molina, Alarcón-Urbistondo & Cabrera Sánchez | Romero-Charneco et al. (2025) | Journal of Hospitality and Tourism Technology | Q2 |
| 2025 | Rulandari & Silalahi | Rulandari & Silalahi (2025b) | Transforming Government: People, Process and Policy | Q2 |
| 2025 | Rulandari & Silalahi | Rulandari & Silalahi (2025a) | Transforming Government: People, Process and Policy | Q2 |
| 2025 | Santana, Martens, Bizarrias & Martens | Santana et al. (2025) | Brazilian Administration Review | No ranking |
| 2025 | Santos-Jaén, Pemartín, Gimeno-Arias & León-Gómez | Santos-Jaén et al. (2025) | Journal of Business & Industrial Marketing | Q2 |
| 2025 | Sathatip, Agmapisarn, Suttipun & Fakfare | Sathatip, Agmapisarn, et al. (2025) | British Food Journal | Q1 |
| 2025 | Sathatip, Senachai, Leruksa & Fakfare | Sathatip, Senachai, et al. (2025) | Journal of Hospitality, Leisure, Sport & Tourism Education | Q1 |
| 2025 | Schelvis, van Veen, Tamminga, Oude Hengel, Nieuwenhuijsen, Boot & Dul | Schelvis et al. (2025) | BMJ Open | Q2 |
| 2025 | Shan, Deng, Deng & Song | J. Shan et al. (2025) | IEEE Transactions on Engineering Management | Q1 |
| 2025 | Shan, Wang & Luo | X. Shan et al. (2025) | Acta Psychologica | Q2 |
| 2025 | Sharma & Paço | N. Sharma & Paço (2025) | Journal of Information, Communication and Ethics in Society | Q2 |
| 2025 | Shen, Yang & Zhu | Y. Shen et al. (2025) | PLOS ONE | Q2 |
| 2025 | Shen, Zhang, Wong, Chen & Ren | J. Shen, Zhang, Wong, et al. (2025) | Humanities and Social Sciences Communications | Q1 |
| 2025 | Shen, Zhang, Zheng & Ruan | J. Shen, Zhang, Zheng, et al. (2025) | SAGE Open | Q1 |
| 2025 | Siddik, Yong, Du & Goodell | Siddik et al. (2025) | IEEE Transactions on Engineering Management | Q1 |
| 2025 | Singh Yadav & Kumar Kar | Singh Yadav & Kumar Kar (2025) | Journal of Cleaner Production | Q1 |
| 2025 | Sirisety, Nekkanti, Datti, Bikkina, Patrakov & Baturina | Sirisety et al. (2025) | European Journal of Mental Health | Q4 |
| 2025 | Sohaib, Alshemeili & Bhatti | Sohaib et al. (2025) | Cleaner and Responsible Consumption | Q1 |
| 2025 | Suganthi & Mohamed Jasim | Suganthi & Mohamed Jasim (2025) | Journal of Internet Commerce | Q2 |
| 2025 | Tan, Leong & Richter | K.-L. Tan et al. (2025) | International Journal of Human–Computer Interaction | Q1 |
| 2025 | Tang, Zhao, Zhou, Li, Qian, Hou & Liu | Tang et al. (2025) | Environmental Geochemistry and Health | Q1 |
| 2025 | Tao, Wang, He, Zhang & Liu | Tao et al. (2025) | Gender in Management | Q1 |
| 2025 | Teston, Zawadzki, Machado & Cazella | Teston et al. (2025) | BAR - Brazilian Administration Review | No ranking |
| 2025 | Tetteh, Owusu Kwateng, Obiri-Yeboah, Amoako & Nyamekye | Tetteh et al. (2025) | Journal of Manufacturing Technology Management | Q1 |
| 2025 | Tho, Phong, Quan & Trang | Tho, Phong, et al. (2025) | Baltic Journal of Management | Q3 |
| 2025 | Tho, Trang & Thu | Tho, Trang, et al. (2025) | Journal of Knowledge Management | Q1 |
| 2025 | Tian, Wang, Li, Chen, Kuang & Mao | Tian et al. (2025) | Scientific Reports | Q1 |
| 2025 | Tripathi, Husain & Rana | Tripathi et al. (2025) | Journal of Hospitality Marketing & Management | Q1 |
| 2025 | Troiville, Moisescu & Radomir | Troiville et al. (2025) | Journal of Retailing and Consumer Services | Q1 |
| 2025 | Venciute, Lukosiute, Correia, Meneses & Kuslys | Venciute et al. (2025) | European Business Review | Q2 |
| 2025 | Verma & Kapoor | Verma & Kapoor (2025) | British Food Journal | Q1 |
| 2025 | Vu & Tolstoy | Vu & Tolstoy (2025) | Journal of Business Research | Q1 |
| 2025 | Vázquez-Sánchez, Tuesta-Tapia & Amador-Hidalgo | Vázquez-Sánchez et al. (2025) | Quality Management Journal | Q2 |
| 2025 | Wan, Ke & Liang | Wan et al. (2025) | Forest Policy and Economics | Q1 |
| 2025 | Wang | J. Wang (2025) | Economics of Governance | Q3 |
| 2025 | Wang & Beh | Wang & Beh (2025) | Technological Forecasting and Social Change | Q1 |
| 2025 | Wang & Wang | Wang & Wang (2025) | Learning and Instruction | Q1 |
| 2025 | Wang & Zhao | Wang & Zhao (2025) | Managerial and Decision Economics | Q3 |
| 2025 | Wang, Wang, Foley & Lin | P. Wang et al. (2025) | The American Journal of Economics and Sociology | Q3 |
| 2025 | Wang, Xu, Wang, Wang, Kang, Qiu, Xue, Fang & Zhang | Wang et al. (2025a) | Sustainable Cities and Society | Q1 |
| 2025 | Wang, Zhao, Wang, Song, Feng, Yu, & Li | Wang et al. (2025b) | BMC Nursing | Q1 |
| 2025 | Wei & Yang | Wei & Yang (2025) | Economic Analysis and Policy | Q1 |
| 2025 | Wijesinghe, Mapitiyage, Wickramarathne, Wickramage, Wisenthige & Aluthwala | Wijesinghe et al. (2025) | PLOS ONE | Q2 |
| 2025 | Wiśniewska | Wiśniewska (2025) | Journal of Cleaner Production | Q1 |
| 2025 | Wiśniewska, Liczmańska-Kopcewicz & Żemigała | Wiśniewska et al. (2025) | Sustainable Futures | Q1 |
| 2025 | Wu, Aw & Phau | J.-W. Wu et al. (2025) | Journal of Internet Commerce | Q2 |
| 2025 | Xia, Cheng, Jiang, Anand & He | Xia et al. (2025) | Journal of Knowledge Management | Q1 |
| 2025 | Xiao, Dong & Li | Xiao et al. (2025) | Journal of Cleaner Production | Q1 |
| 2025 | Xie, Zainudin & Mahdzan | Y. Xie et al. (2025) | Future Business Journal | Q3 |
| 2025 | Yan & Wang | C. Yan & Wang (2025) | Chinese Management Studies | Q3 |
| 2025 | Ye, Ruan, Xia & Gu | Ye et al. (2025) | Humanities and Social Sciences Communications | Q1 |
| 2025 | Yin | K. Yin (2025) | Applied Spatial Analysis and Policy | Q2 |
| 2025 | Yoon & Wang | Yoon & Wang (2025) | International Journal of Tourism Research | Q1 |
| 2025 | Yu, Wang, Jiang & Lu | Y. Yu et al. (2025) | Resources Policy | No ranking |
| 2025 | Yuan, Shah, Tajeddini, Gamage & Acevedo-Duque | J. Yuan et al. (2025) | International Journal of Human–Computer Interaction | Q1 |
| 2025 | Zhai, Zeng & Wang | Zhai et al. (2025) | Regional Studies in Marine Science | Q1 |
| 2025 | Zhang | Zhang (2025) | Tourism Management | Q1 |
| 2025 | Zhang & Cheng | K. Zhang & Cheng (2025) | Journal of Retailing and Consumer Services | Q1 |
| 2025 | Zhang & Hao | X. Zhang & Hao (2025) | Technological Forecasting and Social Change | Q1 |
| 2025 | Zhao & Furuoka | Zhao & Furuoka (2025) | Humanities and Social Sciences Communications | Q1 |
| 2025 | Zhao, Yang, Chen, Yu, Chen & Yang | Zhao et al. (2025) | PLOS ONE | Q2 |
| 2025 | Zheng, Lin, Yan & Guo | Y. Zheng et al. (2025) | International Review of Economics & Finance | Q1 |
| 2025 | Zhou, Wu, Chen & Li | Zhou, Wu, et al. (2025) | Science, Technology and Society | Q3 |
| 2025 | Zhou, Xing, Xu, Tian, Niu & Lin | Zhou, Xing, et al. (2025) | Journal of Environmental Management | Q1 |
| 2025 | Zhu & Song | Y. Zhu & Song (2025) | Computers & Industrial Engineering | Q1 |
| 2025 | Zitao, Zixiao & Huaxia | Zitao et al. (2025) | Sustainable Futures | Q1 |
| 2025 | de Andrés-Sánchez, Arias-Oliva, Souto-Romero & Llorens-Marín | Andrés-Sánchez et al. (2025) | Sage Open | Q1 |
| 2025 | İnce, Şahin & Akbiyik | İnce et al. (2025) | DECISION | Q4 |
| 2024 | Acquah | Acquah (2024) | Heliyon | Q1 |
| 2024 | Agmapisarn, Seetha & Fakfare | Agmapisarn et al. (2024) | Sustainable Development | Q1 |
| 2024 | Ahsan, Gyensare, Adomako & Zheng | M. Ahsan et al. (2024) | International Small Business Journal | Q2 |
| 2024 | Aldhamiri, Carlson, Vilches-Montero, Rahman & Gudergan | Aldhamiri et al. (2024) | Journal of retailing and Consumer Services | Q1 |
| 2024 | Aw, Thomas, Patel, Bhatt & Cham | Aw et al. (2024) | International Journal of Bank Marketing | Q1 |
| 2024 | Baah, Saleem, Greenland, Tenakwah & Chakrabarty | Baah et al. (2024) | Journal of Environmental Management | Q1 |
| 2024 | Baber, Fanea-Ivanovici, Pana & Manole | Baber et al. (2024) | Online information review | Q1 |
| 2024 | Bachmann, Rose, Maul & Hölzle | Bachmann et al. (2024) | Journal of Business Research | Q1 |
| 2024 | Blom, Voorn & Borst | Blom et al. (2024) | Public Management Review | Q1 |
| 2024 | Brazo, Velicia-Martín, Palos-Sanchez & Roldán | Brazo et al. (2024) | European Business Review | Q2 |
| 2024 | Calispa-Aguilar | Calispa-Aguilar (2024) | Entrepreneurial Business and Economics Review | Q1 |
| 2024 | Cassia & Magno | Cassia & Magno (2024) | Journal of Business Research | Q1 |
| 2024 | Cezar | Cezar (2024a) | Journal of Organizational Computing and Electronic Commerce | Q3 |
| 2024 | Cezar | Cezar (2024b) | Telematics and Informatics | Q1 |
| 2024 | Chaparro‐Banegas, Sánchez‐Garcia, Calafat‐Marzal & Roig‐Tierno | Chaparro-Banegas et al. (2024) | Business Strategy and the Environment | Q1 |
| 2024 | Chen & Chen | Chen & Chen (2024) | Journal of Innovation & Knowledge | Q1 |
| 2024 | Choksi & Bhatt | Choksi & Bhatt (2024) | International Journal of Human–Computer Interaction | Q1 |
| 2024 | Chong, Lim, Cheah & Tee | S.-E. Chong et al. (2024) | Current Issues in Tourism | Q1 |
| 2024 | Ciacci, Balzano & Marzi | Ciacci et al. (2024) | Journal of Management and Organization | Q2 |
| 2024 | Corchuelo Martínez-Azúa, Dias & Sama-Berrocal | Corchuelo Martínez-Azúa et al. (2024) | International Journal of Innovation Science | Q2 |
| 2024 | Damberg, Liu & Ringle | Damberg et al. (2024) | Journal of Marketing Analytics | Q2 |
| 2024 | De Andrés-Sánchez & Gené-Albesa | De Andrés-Sánchez & Gené-Albesa (2024) | Journal of Organizational Computing and Electronic Commerce | Q3 |
| 2024 | Dechaume, Mercier, Feybesse, Lubart, Chouvelon, Kermarrec & Tordjman | Dechaume et al. (2024) | Learning and Individual Differences | Q1 |
| 2024 | Dinh, Mühlbacher & Torchia | Dinh et al. (2024) | Journal of Brand Management | Q2 |
| 2024 | Do Prado & De Moraes | Do Prado & De Moraes (2024) | Journal of Technology Transfer | Q1 |
| 2024 | Dong, Jiang, Dai & Chi | Dong et al. (2024) | Grey Systems: Theory and Application | Q1 |
| 2024 | Dos Santos Leite Gonella, Filho, Ganga & Lizarelli | Dos Santos Leite Gonella et al. (2024) | Business Strategy and the Environment | Q1 |
| 2024 | Dou, Hou, Yan, Jin & Li | Dou et al. (2024) | Engineering, Construction and Architectural Management | Q1 |
| 2024 | Dutta, Thomas, Shiva, Papa & Cuomo | Dutta et al. (2024) | Journal of Knowledge Management | Q1 |
| 2024 | Dávila, Andreeva & Sætre | Dávila et al. (2024) | European Management Review | Q2 |
| 2024 | Eccarius & Chen | Eccarius & Chen (2024) | Technological Forecasting and Social Change | Q1 |
| 2024 | Escadas, Jalali, Septianto & Farhangmehr | Escadas et al. (2024) | Business Ethics, the Environment & Responsibility | Q2 |
| 2024 | Fakfare, Manosuthi, Lee, Han, Jarumaneerat & Kim | Fakfare, Manosuthi, Lee, Han, et al. (2024) | Asia Pacific Journal of Tourism Research | Q1 |
| 2024 | Fakfare, Manosuthi, Lee, Lee & Han | Fakfare, Manosuthi, Lee, Lee, et al. (2024) | Journal of Hospitality & Tourism research | Q1 |
| 2024 | Foroughi, Huy, Iranmanesh, Ghobakhloo, Rejeb & Nikbin | Foroughi et al. (2024) | The Service Industries Journal | Q1 |
| 2024 | Gabay-Mariani, Bastian, Caputo & Pappas | Gabay-Mariani et al. (2024) | International Journal of Entrepreneurial Behavior and Research | Q1 |
| 2024 | Gao, Luo, Wang, Zhang & Deng | L. Gao et al. (2024) | Journal of Construction Engineering and Management | Q1 |
| 2024 | Gavín-Chocano, García-Martínez & De La Rosa | Gavín-Chocano et al. (2024) | Current Psychology | Q2 |
| 2024 | Gollagari, Birega & Mishra | Gollagari et al. (2024) | African Journal of Economic and Management Studies | Q3 |
| 2024 | Gong, Wang & Li | Z. Gong et al. (2024) | PLOS ONE | Q1 |
| 2024 | Gordon, Balta-Ozkan, Haq & Nabavi | Gordon et al. (2024b) | International Journal of Hydrogen Energy | Q1 |
| 2024 | Gordon, Balta-Ozkan, Haq and Nabavi | Gordon et al. (2024a) | Sustainable Energy & Fuels | Q2 |
| 2024 | Gutiérrez-Broncano, Rubio-Andrés, Linuesa Langreo & Sastre-Castillo | Gutiérrez-Broncano et al. (2024) | Journal of International Marketing | Q1 |
| 2024 | Gyensare, Miri, Zahoor & Alajaty | Gyensare et al. (2024) | Journal of Islamic Marketing | Q2 |
| 2024 | Hermans, Borda, Newburry, Cordova Chea, Finchelstein, Gonzalez-Perez, Montoya-Bayardo, Velasco & Velez-Ocampo | Hermans et al. (2024) | European Business Review | Q2 |
| 2024 | Hernaus, Dragičević & Hauff | Hernaus et al. (2024) | European Journal of Work and Organizational Psychology | Q1 |
| 2024 | Horvatinović, Mikić & Dabić | Horvatinović et al. (2024) | International Journal of Entrepreneurial Behavior and Research | Q1 |
| 2024 | Huang, Shuaib, Rahman, Rahman & Hossain | Huang, Shuaib, et al. (2024) | Natural Resources Forum | Q2 |
| 2024 | Huang, Zhang, Xu & Bu | Huang, Zhang, et al. (2024) | The International Journal of Management Education | Q1 |
| 2024 | Hui, Al Mamun, Masukujjaman, Makhbul & Ali | Hui et al. (2024) | Heliyon | Q1 |
| 2024 | Ibrahimi, Berisha, Krasniqi & Ramosaj | Ibrahimi et al. (2024) | Journal of Organizational Effectiveness: People and Performance | Q3 |
| 2024 | Inacio Junior, Dionisio & Gimenez | Inacio Junior et al. (2024) | Journal of Entrepreneurship in Emerging Economies | Q2 |
| 2024 | Indihar Štemberger, Bosilj Vuksic, Morelli & Jaklič | Indihar Štemberger et al. (2024) | Business Process Management Journal | Q1 |
| 2024 | Islam, Rahman, Taher, Quaosar & Uddin | Islam et al. (2024) | Future Business Journal | Q2 |
| 2024 | Jain, Chakraborty & Choudhary | Jain et al. (2024) | Journal of Business and Industrial Marketing | Q2 |
| 2024 | Jiang & Wang | J. Jiang & Wang (2024) | Current Issues in Tourism | Q1 |
| 2024 | Kakkar, Ghulyani, Kuril & Chaudhuri | Kakkar et al. (2024) | International Journal of Educational Management | Q3 |
| 2024 | Kazemzadeh, Fuinhas, Salehnia, Silva & Radulescu | Kazemzadeh et al. (2024) | Energy | Q1 |
| 2024 | Kellberg, Keller, Nordine, Moser & Lewalter | Kellberg et al. (2024) | International Journal of Science Education Part B-Communication and Public Engagement | Q2 |
| 2024 | Khan, Ali, Xiaobao & Zhiying | Khan et al. (2024) | IEEE Transactions on Engineering Management | Q1 |
| 2024 | Li, Du, Sun & Xie | J. Li et al. (2024) | Chinese Management Studies | Q3 |
| 2024 | Li, Fan, Kumar & Ananthram | Li et al. (2024b) | Journal of Management Studies | Q1 |
| 2024 | Li, Niu, Liu & Wu | R. Li et al. (2024) | Engineering, Construction and Architectural Management | Q1 |
| 2024 | Li, Sampene, Khan & Wiredu | Li et al. (2024a) | Operations Management Research | Q1 |
| 2024 | Lim, Munikrishnan, Leong, Hiew, Leong & Yang | W. Lim et al. (2024) | Information and Computer Security | Q3 |
| 2024 | Lin, Yao & Yu | Lin et al. (2024) | Journal of Urban Planning and Development | Q3 |
| 2024 | Liu & Meng | Liu & Meng (2024) | Journal of Hospitality and Tourism Management | Q1 |
| 2024 | Liying & Mengying | Liying & Mengying (2024) | Sage Open | Q1 |
| 2024 | Lu, Yang & Yu | Q. Lu et al. (2024) | International Journal of Emerging Markets | Q1 |
| 2024 | Lévy-Garboua, Gazel, Berlin, Dul & Lubart | Lévy-Garboua et al. (2024) | Learning and Individual Differences | Q1 |
| 2024 | Ma & Bennett | Ma & Bennett (2024) | Journal of Higher Education | Q1 |
| 2024 | Magno & Cassia | Magno & Cassia (2024) | Journal of retailing and Consumer Services | Q1 |
| 2024 | Mansoor, Rahman & Bowden | Mansoor et al. (2024) | Journal of Consumer Behaviour | Q2 |
| 2024 | Medina-Molina & Rey-Moreno | Medina-Molina & Rey-Moreno (2024) | Cuadernos de Gestión / Management Letters | Q3 |
| 2024 | Medina-Molina, Pérez-Macías & Rey-Tienda | Medina-Molina et al. (2024) | International Review on Public and Nonprofit Marketing | Q3 |
| 2024 | Min, Zhu & Peng | Min et al. (2024) | Heliyon | Q1 |
| 2024 | Muhlbacher, Einarsdóttir & Castello | Muhlbacher et al. (2024) | Industrial Marketing Management | Q1 |
| 2024 | Ofori | Ofori (2024) | Heliyon | Q1 |
| 2024 | Oliveira & Gomes | J. M. Oliveira & Gomes (2024) | Business Strategy and the Environment | Q1 |
| 2024 | Oppong & Bannor | Oppong & Bannor (2024) | Journal of Food Products Marketing | Q2 |
| 2024 | Osakwe, Říha, Elgammal & Ramayah | Osakwe et al. (2024) | International Journal of Retail & Distribution Management | Q1 |
| 2024 | Pandey, Thomas, Bhatt, Patel & Malkar | Pandey et al. (2024) | Journal of Marketing Theory and Practice | Q2 |
| 2024 | Pinochet, Souza, Viana & Rodríguez-Abitia | Pinochet et al. (2024) | REGE-Revista de Gestao | Q3 |
| 2024 | Quaicoe, Acquah & Gatsi | Quaicoe et al. (2024) | Journal of Cleaner Production | Q1 |
| 2024 | Rahimi & Sevilla-Pavón | Rahimi & Sevilla-Pavón (2024) | Computers and Education: Artificial Intelligence | No ranking |
| 2024 | Rico, Calvo-Mora, Medina-Molina & Alves | Rico et al. (2024) | Total Quality Management & Business Excellence | Q2 |
| 2024 | Rishi, Shiva & Israney | Rishi et al. (2024) | Asia Pacific Journal of Marketing and Logistics | Q2 |
| 2024 | Rosli, Binti Mohamad, Johar, Hashim & Lim | Rosli et al. (2024) | Heliyon | Q1 |
| 2024 | Roxas | Roxas (2024) | Journal of Asian Business and Economic Studies | Q1 |
| 2024 | Safdar, Moazzam, Ahmed, Khan, Manzoor & Raziq | Safdar et al. (2024) | Benchmarking: An International Journal | Q1 |
| 2024 | Sanyal, Jain & Choudhury | Sanyal et al. (2024) | International Social Science Journal | No ranking |
| 2024 | Sarstedt, Richter, Hauff & Ringle | Sarstedt et al. (2024) | Journal of Marketing Analytics | Q2 |
| 2024 | Sepe, Luongo, Di Gioia & Della Corte | Sepe et al. (2024) | European Journal of Innovation Management | Q1 |
| 2024 | Shao, Jiang, Liou, Su, Yuan & Dan | Shao et al. (2024) | Managerial and Decision Economics | Q2 |
| 2024 | Sharma, Kar & Gupta | S. Sharma et al. (2024) | Government Information Quarterly | Q1 |
| 2024 | Similä & Mwesiumo | Similä & Mwesiumo (2024) | Journal of Cleaner Production | Q1 |
| 2024 | Su, Lai & Zhang | Z. Su et al. (2024) | Leisure studies | Q2 |
| 2024 | Subramanian, Jain & Bhattacharyya | Subramanian et al. (2024) | Benchmarking: An International Journal | Q1 |
| 2024 | Sun, Ooi, Wei-Han Tan & Lee | K. Sun et al. (2024) | Supply Chain Management: An International Journal | Q1 |
| 2024 | Sun, Wang & Zhang | X. Sun et al. (2024) | Journal of Environmental Management | Q1 |
| 2024 | Sun, Xia, Huang & Tong | C. Sun et al. (2024) | Science of the Total Environment | Q1 |
| 2024 | Suryavanshi, Thomas, Trivedi, Patel & Bhatt | Suryavanshi et al. (2024) | Journal of Philanthropy and Marketing | Q3 |
| 2024 | Talib, Papastathopoulo & Ahmad | Talib et al. (2024) | Digital Policy Regulation and Governance | Q2 |
| 2024 | Thien, Chuah & Low | Thien et al. (2024) | European Journal of Education | Q1 |
| 2024 | Tiwari, Kaurav & Koay | Tiwari et al. (2024) | Journal of Marketing Analytics | Q2 |
| 2024 | Tuesta-Tapia, Vázquez-Sánchez & Amador-Hidalgo | Tuesta-Tapia et al. (2024) | International Journal of Quality & Reliability Management | Q2 |
| 2024 | Ullibarriarana-Garate, Agirre-Aramburu, Miguel & Sánchez-Urien | Ullibarriarana-Garate et al. (2024) | Journal of Infrastructure, Policy and Development | Q4 |
| 2024 | Vargas-Zeledon & Lee | Vargas-Zeledon & Lee (2024) | Journal of Innovation & Knowledge | Q1 |
| 2024 | Vasist & Krishnan | Vasist & Krishnan (2024) | Information Systems Frontiers | Q1 |
| 2024 | Veiga, Ferreira, Zhang & Liu | Veiga et al. (2024) | Journal of Computer Information Systems | Q2 |
| 2024 | Wang & Cheng | D. Wang & Cheng (2024) | Scientific Reports | Q1 |
| 2024 | Wang & Wang | J. Wang & Wang (2024) | Annals of Public and Cooperative Economics | Q2 |
| 2024 | Wang, Rahman, Siddik, Wen & Sobhani | C. Wang et al. (2024) | Scientific Reports | Q1 |
| 2024 | Wang, Sun & Tiong | Wang et al. (2024) | International Journal of Managing Projects in Business | Q3 |
| 2024 | Wattanacharoensil, Fakfare, Manosuthi, Lee, Chi & Heesup | Wattanacharoensil, Fakfare, et al. (2024) | Tourism Management | Q1 |
| 2024 | Wattanacharoensil, Stettler, Zimmermann & Wagenseil | Wattanacharoensil, Stettler, et al. (2024) | Tourism Recreation Research | Q1 |
| 2024 | Xu, Siddik, Sobhani & Rahman | A. Xu et al. (2024) | Humanities and Social Sciences Communications | Q1 |
| 2024 | Yadav, Parida, Choudhary & Kumar | Yadav et al. (2024) | Journal of Environmental Management | Q1 |
| 2024 | Yan, Işık, Ongan, Pinzon & Tillaguango | J. Yan et al. (2024) | Sustainable Development | Q1 |
| 2024 | Yang, Lv, Xu & Chen | Yang et al. (2024) | Pacific-Basin Finance Journal | Q1 |
| 2024 | Yiling, He, Wang, Deng & Zhang | Yiling et al. (2024) | Engineering, Construction and Architectural Management | Q1 |
| 2024 | Yu, Fan & Zhang | D. Yu et al. (2024) | PLOS ONE | Q1 |
| 2024 | Zang & Guo | Zang & Guo (2024) | Journal of Chinese Governance | Q1 |
| 2024 | Zhang | Zhang (2024b) | Journal of Sustainable Tourism | Q1 |
| 2024 | Zhang | Zhang (2024c) | Current Issues in Tourism | Q1 |
| 2024 | Zhang | Zhang (2024a) | Journal of Environmental Planning and Management | Q1 |
| 2024 | Zhang & Zhang | Zhang & Zhang (2024) | Economic Change and Restructuring | Q1 |
| 2024 | Zhang, Chen & Wu | Z. Zhang et al. (2024) | Journal of Environmental Planning and Management | Q1 |
| 2024 | Zhang, Li, Li & Lu | H. Zhang et al. (2024) | Internet Research | Q1 |
| 2024 | Zhang, Teirlinck, Su & Yu | L. Zhang et al. (2024) | International Journal of Production Economics | Q1 |
| 2024 | Zhang, Yang, Zhang, Sun & He | Zhang et al. (2024) | Polish Journal of Environmental Studies | Q4 |
| 2024 | Zhao, Ye & Cai | Y. Zhao et al. (2024) | Emerging Markets Finance and Trade | Q1 |
| 2024 | Zhou, Chen, Jin & Yuan | Z. Zhou et al. (2024) | European Journal of Information Systems | Q1 |
| 2024 | Zhou, Kumar & Furuoka | Y. Zhou et al. (2024) | Humanities and Social Sciences Communications | Q1 |
| 2024 | Zielińska, Lebuda, Gop & Karwowski | Zielińska et al. (2024) | Contemporary Educational Psychology | Q1 |
| 2023 | Abner, Alam & Cho | Abner et al. (2023) | Public Administration Review | Q1 |
| 2023 | Acquah | Acquah (2023) | RAUSP Management Journal | Q3 |
| 2023 | Acquah, Issau, Dei Mensah & Vanderpuye | Acquah et al. (2023) | Heliyon | Q1 |
| 2023 | Allard-Poesi & Massu | Allard-Poesi & Massu (2023) | Landscape and Urban Planning | Q1 |
| 2023 | Anand, Arya, Suresh & Sharma | Anand et al. (2023) | Tourism Planning & Development | Q2 |
| 2023 | Battistoni, Gitto, Murgia & Campisi | Battistoni et al. (2023) | International Journal of Production Economics | Q1 |
| 2023 | Bhattacharyya, Balaji & Jiang | Bhattacharyya et al. (2023) | Journal of Business Research | Q1 |
| 2023 | Bokrantz & Skoogh | Bokrantz & Skoogh (2023) | International Journal of Production Economics | Q1 |
| 2023 | Bouncken, Fredrich & Kraus | Bouncken et al. (2023) | Global Strategy Journal | Q1 |
| 2023 | Bu, Li & Huang | Bu et al. (2023) | The International Journal of Management Education | Q1 |
| 2023 | Carmona, Stef, Ben Jabeur & Ben Zaied | Carmona et al. (2023) | Journal of Environmental Management | Q1 |
| 2023 | Cheng & Jiang | Cheng & Jiang (2023) | Management Decision | Q2 |
| 2023 | Chong & Ham | S. Chong & Ham (2023) | Journal of Computational Chemistry | Q2 |
| 2023 | Czakon, Klimas & Kawa | Czakon et al. (2023) | Industrial Marketing Management | Q1 |
| 2023 | Delladio, Caputo, Magrini & Pellegrini | Delladio et al. (2023) | Management Decision | Q2 |
| 2023 | Ding & Kuvaas | H. Ding & Kuvaas (2023) | Journal of Managerial Psychology | Q2 |
| 2023 | Dionisio, Inacio Junior, Morini & Carvalho | Dionisio et al. (2023) | RAUSP Management Journal | Q3 |
| 2023 | Gorgievski, Bakker, Petrou & Gawke | Gorgievski et al. (2023) | International Public Management Journal | Q2 |
| 2023 | Guo, Fu & Sun | J. Guo et al. (2023) | Scientific Reports | Q1 |
| 2023 | Harun, Hogset & Mwesiumo | M. D. Harun et al. (2023) | Sustainable Development | Q1 |
| 2023 | He & Ismail | L. He & Ismail (2023) | Humanities and Social Sciences Communications | Q1 |
| 2023 | Huang, Bu & Long | Huang & Bu (2023) | Journal of Innovation & Knowledge | Q1 |
| 2023 | Huang, Li & Li | Huang, Li, & Li (2023) | Technological Forecasting and Social Change | Q1 |
| 2023 | Huang, Li, Bu & Zhao | Huang, Li, Bu, et al. (2023) | Journal of Cleaner Production | Q1 |
| 2023 | Huang, Li, Chen & Wang | Huang, Li, Chen, et al. (2023) | Journal of Innovation & Knowledge | Q1 |
| 2023 | Jain, Chakraborty & Choudhary | Jain et al. (2023) | International Journal of Consumer Studies | Q1 |
| 2023 | Jankowska & Karwowski | Jankowska & Karwowski (2023) | European Journal of Psychological Assessment | Q2 |
| 2023 | Jiang & Huang | Y. Jiang & Huang (2023) | Womens Studies International Forum | Q2 |
| 2023 | Kaushik, Jain & Choudhary | Kaushik et al. (2023) | Case Studies on Transport Policy | Q3 |
| 2023 | Kazemzadeh, Fuinhas, Salehnia, Koengkan & Silva | Kazemzadeh et al. (2023) | Environmental Science and Pollution Research | No ranking |
| 2023 | Kopplin | C. Kopplin (2023) | Australasian Journal of Information Systems | Q2 |
| 2023 | Kumar, Saha & Anand | S. P. Kumar et al. (2023) | International Journal of Organizational Analysis | Q3 |
| 2023 | Lankoski & Lankoski | Lankoski & Lankoski (2023) | Ecological Economics | Q1 |
| 2023 | Lee & Lu | W. Lee & Lu (2023) | Journal of Hospitality & Tourism Research | Q1 |
| 2023 | Li & Larivière | Li & Larivière (2023) | Psychology & Marketing | Q1 |
| 2023 | Liang, Wang, Foley & Ma | C. Liang et al. (2023) | Applied Economics | Q2 |
| 2023 | Lim, Leong, Lim, Lim, Lim & Heng | T.-Y. Lim et al. (2023) | Young Consumers | Q2 |
| 2023 | Linder, Moulick & Lechner | Linder et al. (2023) | Entrepreneurship Theory and Practice | Q1 |
| 2023 | Liu, Wang, He, Ma & Fu | H. Liu et al. (2023) | Journal of Cleaner Production | Q1 |
| 2023 | Liu, Wen, Peng & Cao | Q. Liu et al. (2023) | Journal of Cleaner Production | Q1 |
| 2023 | Luo, Yang & Wang | G. Luo et al. (2023) | PLOS ONE | Q1 |
| 2023 | Manchiraju, Akbari & Seydavi | Manchiraju et al. (2023) | Current Psychology | Q2 |
| 2023 | Mwesiumo, Halpern, Bråthen, Budd & Suau-Sanchez | Mwesiumo, Halpern, et al. (2023) | Transportation Research Part A: Policy and Practice | Q1 |
| 2023 | Mwesiumo, Harun & Hogset | Mwesiumo, Harun, et al. (2023) | Industrial Marketing Management | Q1 |
| 2023 | Ngoc Su, Quy Nguyen-Phuoc, Thi Kim Tran, Van Nguyen, Trong Luu & Pham | D. N. Su et al. (2023) | Travel Behaviour and Society | Q1 |
| 2023 | Peltokorpi & Sekiguchi | Peltokorpi & Sekiguchi (2023) | European Journal of Work and Organizational Psychology | Q1 |
| 2023 | Ruiz-Equihua, Romero, Loureiro & Ali | Ruiz-Equihua et al. (2023) | International Journal of Contemporary Hospitality Management | Q1 |
| 2023 | Servajean-Hilst & Suurmond | Servajean-Hilst & Suurmond (2023) | International Journal of Innovation Management | Q3 |
| 2023 | Si, Li, Duan, Cheng & Bao | Si et al. (2023) | Sustainable Production and Consumption | Q1 |
| 2023 | Singh, Jain, Sharma & Nigam | Singh et al. (2023) | International Journal of Project Management | Q1 |
| 2023 | Solaimani & Swaak | Solaimani & Swaak (2023) | Journal of Engineering and Technology Management | Q2 |
| 2023 | Sun, Fu & Yang | H. Sun et al. (2023) | Journal of Innovation & Knowledge | Q1 |
| 2023 | Tan & Wei | J. Tan & Wei (2023) | Journal of the Knowledge Economy | Q1 |
| 2023 | Thu, Kadirov, Fam & Tho | Thu et al. (2023) | Journal of Macromarketing | Q2 |
| 2023 | Tumaku, Ren, Boakye, Ofori & Abubakari | Tumaku et al. (2023) | International Journal of Quality and Service Sciences | Q2 |
| 2023 | Wagner, Raymond & Paré | Wagner et al. (2023) | JMIR Medical Education | Q1 |
| 2023 | Wang, Li, Gao, Zeng, Wang, Li & Li | G. Wang, Li, et al. (2023) | Land Use Policy | Q1 |
| 2023 | Wang, Zhang, Luo & Abedin | Wang et al. (2023) | Journal of Environmental Management | Q1 |
| 2023 | Wang, Zhang, Zeng, Meng & Lin | G. Wang, Zhang, et al. (2023) | Corporate Social Responsibility and Environmental Management | Q1 |
| 2023 | Yan, Liu, Chen, Zhang & Wu | B. Yan et al. (2023) | Public Administration | Q1 |
| 2023 | Zhu, Miao, Wang & Li | P. Zhu et al. (2023) | Electronic Commerce Research and Applications | Q1 |
| 2023 | Zielińska, Lebuda & Karwowski | Zielińska et al. (2023) | Personality and Individual Differences | Q1 |
| 2022 | Abdalla, Mwesiumo, Öztüren & Kılıç | Abdalla et al. (2022) | International Journal of Tourism Research | Q1 |
| 2022 | Adam & Dzang Alhassan | Adam & Dzang Alhassan (2022) | African Journal of Science, Technology, Innovation and Development | Q2 |
| 2022 | Afrin & Prybutok | Afrin & Prybutok (2022) | Health Promotion International | Q2 |
| 2022 | Bi, Li, Hua, Zhu & Ye | Bi et al. (2022) | Transport Policy | Q1 |
| 2022 | Bokhorst, Knol, Slomp & Bortolotti | Bokhorst et al. (2022) | International Journal of Production Economics | Q1 |
| 2022 | Bolívar, Roldán, Castro-Abancéns & Casanueva | Bolı́var et al. (2022) | Management International Review | Q2 |
| 2022 | Cheung, Leung, Aw & Koay | Cheung et al. (2022) | Journal of Retailing and Consumer Services | Q1 |
| 2022 | Costa, Daher, Neves & Velez | S. Costa et al. (2022) | European Journal of Work and Organizational Psychology | Q1 |
| 2022 | Deng, Zhuang, Li & Yang | Deng et al. (2022) | Industrial Management & Data Systems | Q1 |
| 2022 | Ding | H. Ding (2022) | Journal of Innovation & Knowledge | Q1 |
| 2022 | Eggers, Risselada, Niemand & Robledo | Eggers et al. (2022) | Journal of Business Research | Q1 |
| 2022 | Fredrich, Bouncken & Tiberius | Fredrich et al. (2022) | Journal of Business Research | Q1 |
| 2022 | Frezatti, Mucci & Bido | Frezatti et al. (2022) | BAR-Brazilian Administration Review | No ranking |
| 2022 | Frommeyer, Wagner, Hossiep & Schewe | Frommeyer et al. (2022) | Journal of Business Research | Q1 |
| 2022 | Gantert, Fredrich, Bouncken & Kraus | Gantert et al. (2022) | Journal of Business Research | Q1 |
| 2022 | Glück & Scherpf | Glück & Scherpf (2022) | Psychology and Aging | Q1 |
| 2022 | Glück, Weststrate & Scherpf | Glück et al. (2022) | Journal of Happiness Studies | Q1 |
| 2022 | Greco, Guilera, Maldonado-Murciano, Gómez-Benito & Barrios | Greco et al. (2022) | International Journal of Environmental Research and Public Health | No ranking |
| 2022 | Gu, Wu, Wu, He, Tao, Ye, Wu, Hao & Qiu | Gu et al. (2022) | BMC public health | Q1 |
| 2022 | Han & Zhang | Han & Zhang (2022) | Managerial and Decision Economics | Q3 |
| 2022 | Hayat, Salameh, Malik & Yaacob | Hayat et al. (2022) | Technology in Society | Q1 |
| 2022 | Huang, Tung, Wang, Xu, Lam & Zhang | Huang et al. (2022a) | Heliyon | Q1 |
| 2022 | Huang, Zhang, Wang, Li & Li | Huang et al. (2022b) | Journal of Innovation & Knowledge | Q1 |
| 2022 | Jain, Bhaskar & Jain | Jain et al. (2022) | Research in Transportation Business and Management | Q2 |
| 2022 | Jaiswal & Zane | Jaiswal & Zane (2022a) | Thunderbird International Business Review | Q3 |
| 2022 | Klimas, Czakon & Fredrich | Klimas et al. (2022) | European Management Journal | Q1 |
| 2022 | Koay, Cheah & Chang | Koay et al. (2022) | British Food Journal | Q1 |
| 2022 | Kopplin & Rausch | C. S. Kopplin & Rausch (2022) | Review of Managerial Science | Q1 |
| 2022 | Kopplin, Gantert & Maier | C. S. Kopplin et al. (2022) | Review of Managerial Science | Q1 |
| 2022 | Korman, Van Quaquebeke & Tröster | Korman et al. (2022) | Journal of Business and Psychology | Q1 |
| 2022 | Kwon | Kwon (2022) | Cryogenics | Q3 |
| 2022 | Lee & Borgonovi | J. Lee & Borgonovi (2022) | Comparative Education Review | Q2 |
| 2022 | Lee, Park & Jeong | W. Lee et al. (2022) | Journal of Hospitality and Tourism Management | Q1 |
| 2022 | Liu, Yu & Damberg | Liu et al. (2022) | Journal of Sports Marketing and Sponsorship | Q2 |
| 2022 | Loh, Lee & Leong | Loh et al. (2022) | Expert Systems With Applications | Q1 |
| 2022 | Luo, Wang, Liu, Zhang & Fang | L. Luo et al. (2022) | Ecological Indicators | Q1 |
| 2022 | Lyu, Chin, Zhang & Liu | Lyu et al. (2022) | Journal of Consumer Behaviour | Q2 |
| 2022 | Pangarso, Winarno, Aulia & Ritonga | Pangarso et al. (2022) | Leadership & Organization Development Journal | Q2 |
| 2022 | Peng, Zhao, Elahi & Wan | B. Peng et al. (2022) | Technological Forecasting and Social Change | Q1 |
| 2022 | Prakash, Jeyakumar Nathan, Kini & Victor | Prakash et al. (2022) | PLOS ONE | Q1 |
| 2022 | Saraf, Saha & Anand | Saraf et al. (2022) | International Journal of Public Sector Management | Q2 |
| 2022 | Sharma, Dwivedi, Mariani & Islam | A. Sharma et al. (2022) | Technological Forecasting and Social Change | Q1 |
| 2022 | Sukhov, Olsson & Friman | Sukhov et al. (2022) | Transportation Research Part A: Policy and Practice | Q1 |
| 2022 | Torres & Godinho | Torres & Godinho (2022) | Small Business Economics | Q1 |
| 2022 | Widge, Zhang, Gosai, Papadimitrou, Wilson-Braun, Tsintou, Palanivelu, Noecker, McIntyre, O’Donnell, McLaughlin, Greenberg, Makris, Dougherty & Rathi | Widge et al. (2022) | Neuropsychopharmacology | Q1 |
| 2022 | Yang & Hurmelinna-Laukkanen | Yang & Hurmelinna-Laukkanen (2022) | Technovation | Q1 |
| 2022 | Yu, Cheah & Liu | C. Yu et al. (2022) | International Journal of Contemporary Hospitality Management | Q1 |
| 2022 | Zahrai, Veer, Ballantine, De Vries & Prayag | Zahrai et al. (2022) | Journal of Consumer Affairs | Q2 |
| 2022 | Zheng, Shi & Jiang | J. Zheng et al. (2022) | PLOS ONE | Q1 |
| 2021 | Batey, Hughes, Crick & Toader | Batey et al. (2021) | Ergonomics | Q2 |
| 2021 | Delgosha, Saheb & Hajiheydari | Delgosha et al. (2021) | Information Systems Frontiers | Q1 |
| 2021 | Della Corte, Aria, Del Gaudio, Barney, Cobanoglu & Sepe | Della Corte et al. (2021) | International Journal of Hospitality Management | Q1 |
| 2021 | Kopplin & Rösch | C. S. Kopplin & Rösch (2021) | Journal of Retailing and Consumer Services | Q1 |
| 2021 | Kumar | D. Kumar (2021) | Case Studies on Transport Policy | Q3 |
| 2021 | Kwon | Kwon (2021) | Superconductor Science and Technology | Q2 |
| 2021 | Lee & Jeong | W. Lee & Jeong (2021) | Journal of Hospitality and Tourism Management | Q1 |
| 2021 | Mazumder & Garg | Mazumder & Garg (2021) | International Journal of Information Management | Q1 |
| 2021 | Richter, Martin, Hansen, Taras & Alon | Richter et al. (2021) | Journal of Business Research | Q1 |
| 2021 | Stek & Schiele | Stek & Schiele (2021) | Journal of Purchasing and Supply Management | Q1 |
| 2020 | Ben Jabeur | Ben Jabeur (2020) | Environmental Modeling & Assessment | Q3 |
| 2020 | Bouncken, Fredrich, Sinkovics & Sinkovics | Bouncken, Ratzmann, et al. (2020) | Journal of Business Research | Q1 |
| 2020 | Bouncken, Ratzmann, Barwinski & Kraus | Bouncken, Fredrich, et al. (2020) | Long Range Planning | Q1 |
| 2020 | Chaurasia, Kaul, Yadav & Shukla | Chaurasia et al. (2020) | Journal of Knowledge Management | Q1 |
| 2020 | Franke & Foerstl | Franke & Foerstl (2020) | Journal of Business Logistics | Q1 |
| 2020 | Garg | N. Garg (2020a) | International Journal of Educational Management | Q3 |
| 2020 | Garg | N. Garg (2020b) | Global Business Review | Q3 |
| 2020 | Garg & Sarkar | N. Garg & Sarkar (2020) | Journal of Organizational Effectiveness: People and Performance | Q3 |
| 2020 | Karwowski, Jankowska, Brzeski, Czerwonka, Gajda, Lebuda & Beghetto | Karwowski et al. (2020) | Creativity Research Journal | Q2 |
| 2020 | Kobarg, Stumpf-Wollersheim, Schlägel & Welpe | Kobarg et al. (2020) | Industry and Innovation | Q1 |
| 2020 | Lee & Jeong | W. Lee & Jeong (2020) | Current Issues in Tourism | Q1 |
| 2020 | Messner | Messner (2020) | Computational Management Science | Q3 |
| 2020 | Richter, Schlaegel, Bakel & Engle | Richter, Schlaegel, et al. (2020) | European Journal of International Management | Q3 |
| 2020 | Tynan, Credé & Harms | Tynan et al. (2020) | Learning and Individual Differences | Q1 |
| 2019 | Fredrich, Bouncken & Kraus | Fredrich et al. (2019) | Journal of Business Research | Q1 |
| 2019 | Jada & Mukhopadhyay | Jada & Mukhopadhyay (2019) | Personnel Review | Q1 |
| 2019 | Knol, Slomp, Schouteten & Lauche | Knol et al. (2019) | International Journal of Operations & Production Management | Q1 |
| 2019 | Shahjehan & Qureshi | Shahjehan & Qureshi (2019) | Economic research-Ekonomska istraživanja | No ranking |
| 2019 | Tho | Tho (2019a) | Education and Training | Q1 |
| 2019 | Tho | Tho (2019b) | Baltic Journal of Management | Q3 |
| 2018 | Kerwin, Hittle, Stredney, De Boeck & Wiet | Kerwin et al. (2018) | Journal of surgical education | Q1 |
| 2018 | Knol, Slomp, Schouteten & Lauche | Knol et al. (2018) | International Journal of Production Research | Q1 |
| 2018 | Tho | Tho (2018) | Journal of Management Development | Q3 |
| 2017 | Arenius, Engel & Klyver | Arenius et al. (2017) | Journal of Business Venturing Insights | No ranking |
| 2017 | De Vries, De Koster, Rijsdijk & Roy | De Vries et al. (2017) | Transportation research part E: logistics and transportation review | Q1 |
| 2017 | Garg | N. Garg (2017) | Journal of Human Values | Q3 |
| 2017 | Karwowski, Kaufman, Lebuda, Szumski & Firkowska-Mankiewicz | Karwowski et al. (2017) | Intelligence | Q1 |
| 2017 | Luther, Bonfils, Firmin, Buck, Choi, Dimaggio, Popolo, Minor & Lysaker | Luther et al. (2017) | The Journal of nervous and mental disease | Q3 |
| 2016 | Golini, Deflorin & Scherrer | Golini et al. (2016) | International Journal of Operations & Production Management | Q1 |
| 2016 | Karwowski, Dul, Gralewski, Jauk, Jankowska, Gajda, Chruszczewski & Benedek | Karwowski et al. (2016) | Intelligence | Q1 |
| 2016 | Van Der Valk, Sumo, Dul & Schroeder | Van der Valk et al. (2016) | Journal of Purchasing and Supply Management | Q1 |
Several articles that apply NCA did not find a necessary condition (e.g., Batey et al., 2021; Golini et al., 2016; Gu et al., 2022; L. Luo et al., 2022; B. Peng et al., 2022) but the majority identified at least one. Not finding a necessary condition might be a valuable result, because such result tells that a supposed essential factor for an outcome does not need to be present and its absence can be compensated (e.g., Arenius et al., 2017). On the other hand, finding a large number of potential necessary conditions in an explorative study may not be informative when several conditions do not have a theoretical meaning or are trivial (e.g., Gantert et al., 2022; Klimas et al., 2022; Stek & Schiele, 2021).
NCA can be used in any type of research that aims to find causal relationships between causes and effects. With conventional regression based research methods (e.g, multiple linear regression, structural equation modeling), research questions about cause-effect relationships are often formulated like ‘what is the effect of \(X\) on \(Y\)?’ and related hypotheses similar to ‘\(X\) has a positive (or negative) effect on \(Y\)’. Such causal relationship imply an average effect of \(X\) on \(Y\) which can be graphically shown as an arrow between \(X\) and \(Y\) indicating a temporal direction: first \(X\), then \(Y\), with a + or - sign shown above the arrow indicating that \(X\) increases or decreases \(Y\) on average. However, the type of causality is usually not specified. The regression equation consisting of terms that are added to produce the average effect including an ‘error term’, implicitly assumes additive causal logic and average effects. Consequently, cause \(X\) is assumed to contribute to producing effect \(Y\) on average, and the absence of \(X\) can be compensated by the presence of other causes. In other words: \(X\) is an average contributor to \(Y\).
However, in NCA, cause \(X\) is assumed to be a necessary cause of \(Y\). The research question is formulated as ‘is \(X\) necessary for \(Y\)?’ and the corresponding hypothesis as ‘\(X\) is necessary for \(Y\)’. If \(X\) is necessary for \(Y\), single cause \(X\) can stop the outcome when it is absent or has a low value. It can be a bottleneck, a critical success factor or a must have factor. NCA does not make a claim about the average contributing effect of necessary causes.
This means that any conventional research question or hypothesis about causal relationships can be revisited from the perspective of necessity. The cause could be necessary (essential) for the effect. It is important to know whether causes are necessary or not, because if any necessary cause is absent, the effect cannot be achieved. In practice this means that acting on other causes than the bottleneck cause has no effect (no compensation possible) and would be a waste of effort.
The entire NCA approach consists of:
the NCA methodology of using necessity logic for describing phenomena and developing theoretical causal statements (theory, hypotheses).
the NCA method consisting of data analysis for calculating necessity parameters, and statistical testing for evaluating these parameters.
Methodological backgrounds of NCA have appeared in several publications (Table 0.2).
| Year | Author(s) | Reference | Main contribution |
|---|---|---|---|
| 2016 | Dul | Dul (2016b) | Core article introducing NCA |
| 2016 | Dul | Dul (2016a) | Necessity logic in NCA and QCA |
| 2018 | Vis & Dul | Vis & Dul (2018) | Differences between NCA and QCA |
| 2020 | Dul | Dul (2020) | Textbook for NCA |
| 2020 | Dul | Dul, Van der Laan, et al. (2020) | Statistical significance test for NCA |
| 2020 | Richter, Schubring, Hauff, Ringle & Sarstedt | Richter, Schubring, et al. (2020) | Guidelines for combining NCA with PLS-SEM |
| 2021 | Dul | Dul (2021) | Advanced topics of NCA (this book) |
| 2023 | Bokrantz & Dul | Bokrantz & Dul (2023) | Building necessity theories |
| 2023 | Dul | Dul (2023) | The diffusion of NCA in academia |
| 2023 | Dul, Hauff & Bouncken | Dul et al. (2023) | Guidelines for conducting and reporting NCA |
| 2023 | Richter, N. F., Hauff, S., Ringle, C. M., Sarstedt, M., Kolev, A. E., & Schubring, S. (2023). | Richter, Hauff, Ringle, et al. (2023) | Extended guidelines for combining NCA with PLS-SEM |
| 2024 | Dul, van Raaij & Caputo | Dul et al. (2024) | Reusing data for NCA |
| 2024 | Hauff, Richter, Sarstedt, & Ringle | Hauff et al. (2024) | Adding NCA results to IPMA of PLS-SEM |
| 2024 | Dul | Dul (2024a) | Comparing NCA’s causal logic with other causal logics |
| 2024 | Dul | Dul (2024b) | Sampling in NCA for qualitative and quantitative research |
Because NCA is an emerging methodological approach, new insights are gained, and extensions are being developed. This book intends to provide the latest insights and developments of NCA. The topics are selected from interactions with the research community at conferences, webinars, workshops and in email exchanges. Some topics are extensively covered, others await elaboration.
This book was first published online in 2021. As the NCA approach is developing, the content of the book is developing as well. The book will therefore remain an online book with a version number. Please, contact the author if you want to react on the book or wish to have new topics covered in it. Your contribution will be acknowledged.
The suggested reference to the book is Dul, J. (2021) Advances in Necessary Condition Analysis. The book is hosted on https://bookdown.org/ncabook/advanced_nca2/.
Version history:
Version 0.1 (October 10, 2021). First published (draft) version. Several sections under construction.
Version 1.0 (March 20, 2022). First full version. All sections available.
Version 1.1 (August 2, 2022). Extended with basic guidelines for good NCA practice, outlier analysis.
Version 1.2 (October 28, 2022). Extended with necessity theories, combining NCA and regression, interpretation of the bottleneck table.
Version 1.3 (January 4, 2023). Extended with the necessity experiment; major update of references.
Version 1.4 (March 1, 2023). Extended with visual inspection of the scatter plot, robustness checks, and data transformation.
Version 1.5 (August 2, 2023). Reorganized Statistics chapter, and extended with power analysis.
Version 1.6 (January 3, 2024). Major update of references.
Version 1.7 (January 9, 2025). Major update of references. Extended with checklist for reviewers, robustness table, section on NCA with PLS-SEM (including R code, robustness checks and BIPMA)
Version 1.8 (July 14, 2025). Major update of references. Section on meta-analysis for NCA
Version 1.9 (January 15, 2026). Major update of references. Update of the SCoRe checklist for authors, reviewers, and editors.
The latest version is regularly updated with small fixes.
Chapter 1 Summary of NCA
NCA is based on necessity causal logic. If a certain level of the condition is not present, a certain level of the outcome will not be present. Other factors cannot compensate for the missing condition. The necessary condition allows the outcome to exist, but does not produce it. This is different from sufficiency causal logic where the condition produces the outcome.
Conventional theories and methods are based on additive logic. This logic assumes that several factors contribute to the outcome and can compensate for each other. For example, conventional quantitative methods like multiple regression analysis and structural equation modeling describe the complexity of different contributing factors producing the outcome. In these models a low value of one factor can be compensated by changing another factor. When making causal interpretations with these models, factors are usually interpreted as ‘generic causes’ that can change the probability of the outcome.
Conventional quantitative methods focus on generic causes and do not cover necessity logic and are thus not able to identify necessary conditions in data sets. This was the main reason for developing NCA. NCA ensures theory-method fit when the theory includes necessity relations between factors and outcome and these relationships need to be evaluated empirically.
Conducting NCA consists of four stages:
Formulate the necessary condition hypothesis.
Collect the data.
Analyse the data.
Report the results.
Each step is explained below in more detail in sections 1.3, 1.4, 1.5, and 1.6.
In research projects and publications, NCA can be used as a stand-alone method or be used together with conventional methods such as multiple regression analysis, structural equation model, or QCA. The decision to apply NCA as a stand-alone method or a complementary method depends on the goal of the research.
1.1 NCA as stand-alone method
A researcher may have two reasons to use NCA as a stand-alone method in a particular study. First, the researcher may want to employ just a necessity view on the phenomenon of interest. He may have formulated a parsimonious ‘pure necessity theory’ (see Chapter 2) consisting of one or more necessity relations (e.g., Karwowski et al., 2016; Knol et al., 2018). To ensure theory-method fit, NCA is used for testing pure necessity theories. A regression-based method is not appropriate for this purpose. [Similarly, when a researcher wants to test a theory consisting only of generic causal relations (most current theories), a conventional probability-based method such as regression analysis should be selected and NCA is not appropriate]. A second reason for using NCA as the stand-alone method is that the researcher may want to add a necessity view to an existing generic causal theory from the literature. Without (re)testing the generic causal relationships, she may want to test whether some concepts of the theory are (also) necessary conditions.
The advantage of using NCA as a stand-alone method is that the study and its theoretical reasoning can focus on the single necessary concepts. There is no need to include other concepts (e.g., contributing factors, control variables) into the reasoning and analysis. This allows a clear story line and efficient data collection and analysis.
1.2 NCA as a complementary method
A researcher may also have reasons to use NCA in combination with other methods in a single study. The researcher may want to add a necessity view to a generic causal theory and to analyse necessity and generic relationships in combination. This can be done in two ways. First, the generic causal theory is leading and some concepts from this theory are tested for necessity. Second a combined necessity-generial causal theory is developed with both necessity and generic causal relationships between concepts.
In the first option, an existing or new generic causal theory has concepts that are considered being contributing factors that can change the probability of the outcome (including control variables). From these concepts, potential necessary conditions are selected. The necessity and generic causal relationships of these concepts with the outcome are tested with the appropriate methods and the methods are conducted successively. The integration occurs when the results are discussed. Several NCA multimethod studies that start with a generic causal theory have been reported in the literature. For example, when NCA is used in combination with (multiple) regression (e.g., Jain et al., 2022; Klimas et al., 2022; Stek & Schiele, 2021) or structural equation modeling (e.g., Della Corte et al., 2021; W. Lee & Jeong, 2021; Renner et al., 2022; Richter, Schubring, et al., 2020) “important” factors are identified with a regression-based method, and the necessity of these and other factors is analysed with NCA for identifying whether the factors are necessary or not (see section 4.5). When NCA is used in combination with Qualitative Comparative Analysis- QCA (C. S. Kopplin & Rösch, 2021; e.g., Torres & Godinho, 2022) the results of NCA are compared to the sufficient configurations that are identified by QCA (see section 4.7).
In the second option, the researcher starts the study with a combined necessity and generic causal theory. This is a complex ‘embedded necessity theory’ (see Chapter 2) that consists of both necessity and generic causal relations from the start. Some concepts may only have a generic causal but not a necessity relationship with the outcome; other concepts may be a necessary cause but not a generic cause, and yet others may be both a necessary cause and a generic cause. Embedded necessity theories that combine necessity and generic causal theorizing for describing relations are still rare. In QCA, most studies theorize from the perspective of sufficiency and test the potential necessity of the single factors, but do not include necessity theorizing from the start. Also, most studies that combine NCA with multiple regression or structural equation modeling do not theorize about necessity and generic causation in combination (for an exception see Dul, 2019). Testing embedded necessity theories requires a multimethod approach with both regression-based method and a necessity-based method.
When combining NCA with regression analysis or QCA, the order of conducting NCA and the other method is not relevant. When NCA is used in combination with structural equation modeling (SEM) the order matters. First SEM is applied followed by NCA. The reason is that the outcome of the SEM measurement model is used to define the constructs to be tested for necessity with NCA.
1.3 Formulate the necessary condition hypothesis
NCA starts with a theoretical notion that a necessity relation may exist between \(X\) (the potential condition) and \(Y\) (the outcome). This is usually done by formulating and justifying a hypothesis that is part of a theory (see Chapter 2).
NCA is mainly used in theory-testing research, which starts with formulating the theory and proceeds with empirical testing the theory with data. Hence, theory formulation comes before data collection and analysis. This is also the focus in this book. However, NCA can also be used in theory-building and exploratory research. Then formulating the theory is based on the results of the data analysis, and thus comes after it (e.g., Stek & Schiele, 2021).
1.4 Collect the data
Collecting data in NCA is not different from collecting data in general. The goal of data collection is to have scores (values, levels) for the condition \(X\) and the outcome \(Y\) for each case. The selected research design (e.g., ‘experiment’, ‘survey’, ‘case study’) must meet common quality standards. Also the selection of cases for measurement and data analysis must fit the goal of the research (e.g., random sampling, purposive sampling for specific reasons). The data must be ‘good’. This means that the data must be valid (the measurement scores reflect what they are intended to reflect) and reliable (when measurement is repeated, the results are the same).
NCA has no new requirements on collecting the data. There are a few exceptions. First, the setup of a ‘necessity experiment’ is different than the setup of a ‘sufficiency experiment’ or a common ‘average treatment effect experiment’ (see section 3.2). Second, in certain situations it is possible to sample just a single case to perform NCA (see section 3.3). Third, the way that NCA is conducted may differ depending on the types of data that are used: quantitative data (section 3.4), qualitative data (section 3.5), longitudinal data (section 3.6), and set membership scores (section 3.7). Furthermore, the identification of potential outliers is partly different from the common way of identifying outliers (see section 3.8).
1.5 Analyse the data
Data analysis is at the core of NCA. NCA’s data analysis assumes that it makes theoretically sense to analyse the data with necessity logic (see section 1.3) and that the data are meaningful (see section 1.4). For a quantitative necessary condition analysis the ‘scatter plot’ approach can be used. The scatter plot maps cases in the XY plane and NCA conducts a bivariate analysis on the scatter plot. Figure 1.1 shows an example of a scatter plot with \(X\) = Contractual detail and \(Y\) = Innovation of 48 buyer-supplier relationships for evaluating the hypothesis that Contractual detail is necessary for Innovation (Van der Valk et al., 2016).
Figure 1.1: Scatter plot approach of NCA estimating the empty space in the upper left corner when \(X\) is supposed to be necessary for Y. Data from Van der Valk et al. (2016).
According to this hypothesis it is not possible to have cases with low level of Contractual detail (\(X\)) and high level of Innovation (\(Y\)). This means that the upper left corner of the scatter plot remains empty. The space without cases is called the empty space or ceiling zone. NCA draws a border line called ceiling line between the space without cases and the space with cases. Two default ceiling lines are the Ceiling Envelopment - Free Disposal Hull (CE-FDH), which is a step function that can be used when \(X\) or \(Y\) are discrete with a limited number of levels or when the border is irregular, and the Ceiling Regression - Free Disposal Hull (CR-FDH), which is a straight trend line through the upper left corner points of the CE-FDH line. When a few cases are present in the otherwise empty space the ceiling line is not entirely accurate. The ceiling-accuracy (c-accuracy) is the percentage of cases on or below the ceiling line. By definition the CE-FDH line is 100% accurate and the CR-FDH line is usually not 100% accurate. A low c-accuracy indicates that the ceiling line may not properly represent the border between empty and full space, and another ceiling line may be selected. The scope (S) is the area of the total space where cases can appear given the minimum and maximum possible values of \(X\) and \(Y\). The effect size (d) is the area of the ceiling zone (C) divided by the scope: d = C/S. The effect size can have values between 0 and 1. NCA estimates the ceiling line and its effect size from the sampled data. The statistical test of NCA consists of estimating the p value of the effect size. With the NCA software the NCA parameters can be computed.
The remaining part of this section demonstrates NCA’s data analysis by using the NCA software.
1.5.1 Prepare the analysis
For performing a (quantitative) NCA the NCA software can be used. This is a free package in R and the researcher must have access to R and RStudio. Researchers who are not familiar with R and RStudio can consult the NCA Quick Start Guide on the NCA website (https://www.erim.eur.nl). This guide explains how R and RStudio can be downloaded from internet and gives further details about the software. This demonstration uses the RStudio interface for conducting the analysis. After R and RStudio are installed and RStudio is opened, the script window is used to type and run the instructions. The first instructions for this demonstration are as follows:
#Demonstration NCA
#Install and load the NCA package
#install.packages("NCA") # to install the NCA package (only ones)
library (NCA) # load the NCA package (for each new session)The script starts with a remark after the hashtag (#), followed by instructions to install (download) the NCA package with the install.packages function. Installing the NCA package must be done once. Afterwards, for each new NCA session, the NCA package must be loaded (activated) using the library function.
1.5.2 Load the data
Next, in this demonstration three datasets are loaded. A dataset must be organised such that rows are cases and columns are variables (condition(s) and outcome(s)). Often, data files have the .csv extension but also other data file formats can be loaded, for example .xls (Excel), .sav (SPSS) or .dta (Stata). The researcher may conduct NCA on new or existing datasets, including archived datasets that are publicly available.
#Load the data
#Data on own computer:
data1 <- read.csv("myData.csv", row.names = 1) # load and rename my dataset
#Data on internet (example Worldbank):
install.packages("WDI") #install package for loading Worldbank data
library(WDI)
data2 <- WDI (indicator = c("SH.IMM.IDPT","SP.DYN.LE00.IN"))
#Data in the NCA software:
data(nca.example2)
data3 <- nca.example2 #load the example data from the NCA packageThe first dataset that is loaded is a .csv dataset. The dataset is assumed to be stored in the working directory on the user’s computer. After loading the dataset in R it is renamed as ‘data1’.
The second dataset is obtained from the internet. It is a dataset from the Worldbank website, which can be extracted with the WDI package. The first variable (indicator) that is extracted refers to the vaccination level of a country and the second to the country’s life expectancy. The vaccination level is the percentage of children aged 12-23 months who received vaccination against diphtheria, pertussis (or whooping cough), and tetanus (DPT). Life expectancy is the number of years a newborn infant would live if prevailing patterns of mortality at the time of its birth were to stay the same throughout its life.
The third dataset is part of the NCA package from version 3.1.2. and has data on 48 buyer-supplier relationships as the rows. This dataset has three conditions (Contractual detail, Goodwill trust, and Competence trust) and one outcome (Innovation). The dataset is published as Table 2 in an article entitled “When are contracts and trust are necessary for innovation in buyer-supplier relationships? A necessary condition analysis” by Van der Valk et al. (2016).
The instruction head(data3) shows the top rows of the last dataset. The first row has the variable names and the first column the names of the cases.
## Innovation Contractual detail Goodwill trust Competence trust
## 1 3.57 3.24 2.71 4.0
## 2 3.57 2.71 2.43 3.0
## 3 1.29 2.29 4.00 4.0
## 4 2.14 4.14 3.71 4.0
## 5 1.00 2.43 3.29 3.5
## 6 3.43 1.86 3.86 4.5
1.5.3 Estimate effect size and the p value with nca_analysis
After the data are loaded the NCA analysis starts with estimating the size of the space that is expected to be empty given the hypothesis. By default, the software assumes that the expected empty space is in the upper left corner, representing the hypothesis that the presence or a high value of \(X\) is necessary for the presence of a high value of \(Y\). The software can also analyse other corners depending on whether the presence or absence of \(X\) is necessary for the presence or absence of \(Y\) (see section 1.3) by using the corner argument in nca_analysis. By default the software uses the CE-FDH and CR-FDH ceiling techniques to draw the ceiling line and to calculate the effect size. Other ceiling techniques could be selected as well using the ceilings argument in the nca_analysis function (see section 6.3.3).
The estimation of the effect size for data3 is done with the function nca_analysis. The first analysis with the name ‘model 1’ evaluates the hypothesis that Contractual detail is necessary for Innovation:
The nca_analysis instruction specifies first the dataset and then the names of the condition and the outcome. After running this instruction the analysis is done, but the output is not yet shown.
A short summary of the results can be obtained by calling model1. This prints the effect sizes of the condition for the two default ceiling lines in the console window of RStudio.
##
## ---------------------------------------------------------------------------
## ce_fdh cr_fdh
## Contractual detail 0.24 0.19
## ---------------------------------------------------------------------------
The second analysis (‘model2’) shows that the condition and outcome can also be specified by their column numbers in the dataset. The results are the same.
##
## --------------------------------------------------------------------------------
## ce_fdh cr_fdh
## Contractual detail 0.24 0.19
## --------------------------------------------------------------------------------
The third analysis (‘model3’) shows that multiple bivariate analyses can be done in a single run.
##
## --------------------------------------------------------------------------------
## ce_fdh cr_fdh
## Contractual detail 0.24 0.19
## Goodwill trust 0.31 0.26
## Competence trust 0.32 0.21
## --------------------------------------------------------------------------------
In this example three conditions are included each representing a different necessary condition hypothesis. An analysis with multiple conditions in a single run is always done with one outcome.
The fourth analysis (‘model4’) shows that the ceiling line can be selected. In this example the CR-FDH line is selected.
#Conduct NCA with selected ceiling line
model4 <- nca_analysis(data3,2:4,1, ceilings = 'cr_fdh')
model4##
## --------------------------------------------------------------------------------
## cr_fdh
## Contractual detail 0.19
## Goodwill trust 0.26
## Competence trust 0.21
## --------------------------------------------------------------------------------
The fifth analysis (‘model5’) also includes NCA’s statistical test to calculate the p value. An empty space could be a random result of variables that are actually unrelated. The p value protects the researcher from concluding that the empty space is empty because of necessity, whereas actually it is a random result of unrelated variables. The statistical test can be activated by specifying the number of permutations for the estimation of the p value in the test.rep argument of nca_analysis as follows.
## Preparing the analysis, this might take a few seconds...
## Do test for : ce_fdh - Contractual detailDone test for: ce_fdh - Contractual detail
## Do test for : cr_fdh - Contractual detailDone test for: cr_fdh - Contractual detail
## Do test for : ce_fdh - Goodwill trustDone test for: ce_fdh - Goodwill trust
## Do test for : cr_fdh - Goodwill trustDone test for: cr_fdh - Goodwill trust
## Do test for : ce_fdh - Competence trustDone test for: ce_fdh - Competence trust
## Do test for : cr_fdh - Competence trustDone test for: cr_fdh - Competence trust
##
## --------------------------------------------------------------------------------
## ce_fdh p cr_fdh p
## Contractual detail 0.24 0.008 0.19 0.009
## Goodwill trust 0.31 0.002 0.26 0.004
## Competence trust 0.32 0.002 0.21 0.008
## --------------------------------------------------------------------------------
The selection of the number of permutations is a balancing act between p value accuracy and computation time. The summary output now includes the p value for each effect size.
1.5.4 Create output with nca_output
More details of the results can be obtained with the nca_output function. The output is shown for analysis model6 that only includes Contractual detail and the CR-FDH ceiling line.
## Preparing the analysis, this might take a few seconds...
## Do test for : cr_fdh - Contractual detailDone test for: cr_fdh - Contractual detail
##
## --------------------------------------------------------------------------------
## --------------------------------------------------------------------------------
##
## Number of observations 48
## Scope 15.40
## Xmin 1.86
## Xmax 5.71
## Ymin 1.00
## Ymax 5.00
##
## cr_fdh
## Ceiling zone 2.893
## Effect size 0.188
## # above 2
## c-accuracy 95.8%
## Fit 79.2%
## p-value 0.009
## p-accuracy 0.002
##
## Slope 0.544
## Intercept 2.214
## Abs. ineff. 9.614
## Rel. ineff. 62.428
## Condition ineff. 15.298
## Outcome ineff. 55.642
The output first displays descriptive information about the sample such as number of cases (‘observations’), the scope, and the observed extreme values of \(X\) and \(Y\). Next, the NCA parameters for the selected ceiling line are displayed including effect size, number of cases above the ceiling line, and corresponding ceiling line accuracy. The fit measure is an indication how well the ceiling line represents the border line between the space with and without cases. In this example the fit of the CR-FDH ceiling line is 79.2% (maximum fit is 100%), suggesting that the ceiling line is not very regular. Next, the p value and the accuracy of the estimated p value, which depends on the selected number of permutations in nca_analysis, are displayed. If the ceiling line is a straight line, the output also gives the slope and intercept of the ceiling line. The final four parameters are related to ‘inefficiency’, which is discussed in section 5.1.
Scatter plots can be displayed by adding the argument plots = TRUE or plotly = TRUE in the nca_output function. The regular scatter plot of ‘model 1’ can be obtained as follows:
The regular scatter plot shown in Figure 1.1 is displayed in the Plots window of RStudio.
An interactive scatter plot (‘plotly’) is displayed in the Viewer window of RStudio as follows:
The non-interactive version of this plot is shown in Figure 1.2
Figure 1.2: Example of a plotly scatter plot.
During inspection of the scatter plots, the researcher may observe potential outlier cases that may have a large effect on the estimated parameters. The NCA software from version 4.0.0 includes the possibility to detect and evaluate potential outliers (see section 3.8).
The scatter plots can be graphically adapted in different ways as described in section 7.3.
The results of all nca_output can be saved as a pdf file with the pdf = TRUE argument in the nca_output function.
1.5.5 Perform the bottleneck analysis with nca_output
After the effect size and its p value are computed and the scatter plots are inspected the researcher can make a judgment whether or not a necessary condition in kind (\(X\) is necessary for \(Y\)) has been identified. A common reasoning for not having identified a necessary condition is that theoretical support is lacking (no theoretically reasonable hypothesis can be formulated), or the effect size is practically irrelevant (e.g., d < 0.1), or that the empty space is likely a random result of two unrelated variables (e.g., p > 0.05). After the three conditions are satisfied (theoretical support, large effect size, small p value), the researcher may judge that there is empirical support in the present study for a necessity relationship. Then the researcher can start to conduct a necessary condition analysis in degree with the conditions that meet the three criteria. This analysis can be done with the bottleneck table. In this demonstration the three conditions and the CR-FDH ceiling line are selected for the bottleneck table analysis. The values of \(X\) and \(Y\) in the bottleneck table are ‘percentages of the range’. This means that 100 corresponds to the maximum value, 0 to the minimum value, 50% to the middle value, etc.
#Show the bottleneck table
model7 <- nca_analysis(data3, 2:4, 1, ceilings = 'cr_fdh')
nca_output(model7, bottlenecks = TRUE, summaries = FALSE)##
## --------------------------------------------------------------------------------
## --------------------------------------------------------------------------------
## Y 1 2 3
## 0 NN NN NN
## 10 NN NN NN
## 20 NN NN NN
## 30 NN NN NN
## 40 NN NN NN
## 50 NN NN NN
## 60 8.3 2.2 NN
## 70 27.4 35.2 26.0
## 80 46.5 68.2 54.0
## 90 65.6 NA 81.9
## 100 84.7 NA NA
To show only the bottleneck table, the nca_output function includes the argument summaries = FALSEto suppress the text output.
The first column of the bottleneck table is a set of values of the outcome \(Y\), and the next columns show the corresponding required levels of the conditions. The table can be read row by row to find the levels of the conditions that are required for a given level of the outcome. NN means that the condition is not necessary for the corresponding level of the outcome. In the default bottleneck \(X\) and \(Y\) values are expressed as percentages of the range. As discussed in section 4.3, the values can also be expressed as actual values, percentiles and percentage of maximum, which allows useful interpretations of the bottleneck table. This section also explains why there can be NA’s in the bottleneck table. In this example there are a few NA’s, which could be replaced by the highest observed value of 5 using the argument cutoff = 1 in the nca_analysis function.
1.6 Report the results
Two types of NCA reports exist: methodological reports and application reports. In methodological reports, the method or part of the method is introduced in a specific field, often illustrated with examples from that field (Dul, Karwowski, et al., 2020; Dul, Hauff, et al., 2021; Hauff et al., 2021; Richter & Hauff, 2022; Tóth et al., 2019; Tynan et al., 2020). Introducing the NCA method in a new specific field has particularly an added value if it can be explained:
Why necessity logic is particularly useful for the field in general or for specific topics and challenges (e.g., a list of potential topics/challenges that can benefit from NCA).
That necessity thinking already (often implicitly) exists in the literature of the field (e.g., a list of necessity statements from the field).
How NCA is different from conventional methods (e.g., by explaining the steps of NCA –theory, data, data analysis, interpretation–, by referring to an example from the field).
How NCA and can give new insights to the field (e.g., an example of applying NCA to a topic from the field).
In NCA application reports the focus is on better understanding a specific phenomenon, and necessity logic and NCA are used to serve that goal. The NCA-specific parts of these application publications are (for details see Dul, 2020):
Introduction/theory: introduction of necessity logic/theory.
Methods: Description of NCA’s data analysis approach.
Results: Presentation of scatter plots and NCA parameters (e.g., effect size, p value).
Discussion: Description of the importance of including identified necessity in theory and practice (e.g., to avoid failure of the outcome or waste of efforts).
In application publications NCA can be used as a stand-alone method (section 1.1) or in combination with other methods (section 1.2).
Although NCA has already been broadly applied, there are still many fields where the NCA method has not been introduced and applied. Most likely, NCA could be applied in any of the 249 research categories defined by the Journal of Citation Reports. But currently, only about a quarter is covered, with the largest number of publications in the two categories ‘management’ and ‘business’.
1.7 Basic guidelines for good NCA practice
The guidelines are also published in Dul (2023) and Dul et al. (2023).
Based on this summary and other publications about the NCA methodology (Dul, 2016b, 2020, 2023; Dul, Van der Laan, et al., 2020), basic guidelines for good NCA practice can be formulated (Table 1.1). These general guidelines can support researchers and reviewers of research in conducting, reporting and evaluating NCA studies, and can help to ensure good quality of NCA applications.
| Topic | Chapter |
|---|---|
| Theoretical justification | |
| Explain why X can be necessary for Y. | Ch. 2 |
| Formulate the relationship between X and Y in terms of a necessity hypothesis (e.g., in terms of “X is necessary for Y”). | |
| In explorative research, theoretically justify a necessary condition that is found ex post. | |
| Meaningful data | |
| Use a good sample. | Ch. 3 |
| Use valid and reliable scores of X and Y (e.g., by using common approaches for evaluation of validity and reliability). | |
| Scatter plot | |
| Show the scatter plot (or contingency table) of all conditions that are evaluated for necessity. | Ch. 4 |
| Visually inspect the scatter plot (e.g., pattern of the border, potential outliers). | |
| Ceiling line | |
| Select the ceiling(s) based on the number of levels of X and Y and the expected or visually observed (non-)linearity of the border. | Ch. 4 |
| Only show the selected ceiling lines in the scatter plot. Do not show the two (default) ceiling lines if these are not selected for the analysis. | |
| Effect size | |
| Report the estimated effect size. | Ch. 4 |
| Evaluate the practical relevance of the effect size (e.g., threshold level > 0.1). | |
| Statistical test | |
| Report the estimated p-value. | Ch. 6 |
| Evaluate the statistical relevance of the effect size (e.g., threshold level < 0.05). | |
| Bottleneck analysis (necessity in degree) | |
| Present the bottleneck table for the non-rejected necessary conditions. | Ch. 4 |
| Decide how to present the bottleneck table (e.g., using percentage of range, actual values, or percentiles). | |
| Descriptions of NCA | |
| Refer to NCA as a method (including logic/theory, data analysis and statistical testing), not just as a statistical tool or data analysis technique. | |
| Acknowledge that: | |
| • NCA’s necessity analysis differs from fsQCA’s necessity analysis. | |
| • NCA differs from a “moderation analysis” in regression analysis. | |
| • NCA is not a robustness test for other methods. | |
| Properly describe elements of NCA, e.g.: | |
| • Use only necessity wordings to describe the necessity relationship between X and Y (avoid imprecise or general words like (cor)related, associated, and incorrect sufficiency-based words like produce, explain). | |
| • Refer to NCA’s statistical test as a permutation test (avoid incorrect descriptions like bootstrapping, (Monte Carlo) simulation, robustness check, or t-test). | |
| • Use the name ‘multiple NCA’ or ‘multiple bivariate NCA’ rather than ‘multivariate NCA’ when several conditions are analysed in one run. | |
1.8 SCoRe-NCA. A checklist for reviewing an NCA publication
An NCA publication can be categorized as:
Empirical publication: Application of NCA’s necessity logic and data analysis approach with empirical (or simulated) data. The goal is to provide a theoretical, empirical, methodological, practical contribution (or a combination) by using data.
Theoretical publication: Use of NCA’s necessity logic for theory development without using data and NCA’s data analysis. Specific characteristics of NCA’s necessity logic are used in the publication, for example NCA’s ‘conditional logic with a causal assumption’, NCA’s ‘necessity in degree’, or NCA’s ‘typicality’ necessity perspective.
Methodological publication: The Description, explanation, illustration or further development of the NCA method.
Referencing publication: reference to (elements of) NCA, such as referencing (but not using) NCA’s necessity logic or to (elements of) NCA’s data analysis approach, or suggesting the use of NCA for future research (for example, in a review article or discussion section of a non-NCA publication).
This section provides a draft checklist to evaluate the quality of an empirical NCA publication (the final checklist will be published in Dul (2026); please send your comments on the draft checklist to jdul@rsm.nl). The checklist can be used by authors to prepare their research, ensuring the proper application of NCA, and the proper reporting of NCA results. It can also be used by peers, reviewers, and editors to evaluate the quality of the publication and provide constructive feedback.
The checklist builds on the published basic guidelines for conducting and reporting NCA (Dul et al., 2023), and recent developments in NCA such as about NCA’s causality (Dul, 2024a), necessity theorizing (Bokrantz & Dul, 2023), NCA’s robustness checks (Section 4.4), sampling for NCA (Dul, 2024b), use of archival data in NCA (Dul et al., 2024), and developments related on the application of NCA in combination with QCA (Dul (2022); Section 4.7) or PLS-SEM (Hauff et al., 2024; Richter, Hauff, Ringle, et al., 2023). Therefore, the checklist provides an up-to-date set of recommendations for a high-level application of NCA, based on the current knowledge about NCA.
Following the structure of a ‘standard’ academic publication, the checklist has six sections (Introduction/General, Theory/Hypotheses, Methods-data, Methods-data analysis, Results, Discussion) each with about 5-10 NCA items that need to be addressed in an empirical NCA publication. The items have different priority levels. Some items are essential (‘must-haves’) that must be addressed in any NCA publication. Other items are important (‘should haves’) to increase the quality of the publication, and yet other items are the ‘nice-to-haves’. When addressing all items, the publication meets the highest quality standard, for example for being published in a high-ranked journal. Some items can be easily addressed, others need more reflection. For each item, requirements, recommendations, and sources for further reading are provided.
The SCoRe-NCA checklist is a tool for authors, editors and reviewers to evaluate the quality of an NCA study. The acronym refers to S: Strengthening (Theoretical Rigor), Co: Conducting (Data & Analysis Quality), and Re: Reporting (Transparency) which topics are covered in the checklist.
The SCoRe-NCA can be used for any empirical publication that uses NCA, whether it is the only method that is applied, or that NCA is used in combination with other methods. In Section 4.6 some specific recommendations are given for applying NCA in combination with SEM (and in particular PLS-SEM) as the number of PLS-SEM studies that also apply NCA is rapidly growing.
In the checklist below, the user can select all items or a selection of items for specific publication sections or specific priority levels.
The following table allows this interaction with the checklist:
| Section | Priority | Item | Question | Recommendation | Further reading |
|---|---|---|---|---|---|
| Introduction/General | Must-have | 1 | Are the goals and contributions of applying NCA explicitly stated? | State the primary and (possibly) secondairy goals and contributions of the empirical NCA study. The study may primarily contribute to theory development by, for example, developing and testing new necessity hypotheses, developing an existing necessity claims further towards a formal necessity hypotheses and testing it with NCA, or replication of results of previously tested necessity hypotheses. Secondary goals could be methodological (e.g., introducing NCA to a new field/phenomenon), or practical (e.g., using results of NCA to produce practically meaningful recommendations/insights). | Articles: Bokrantz & Dul (2023); Dul (2024a); Hollenbeck & Wright (2017); Köhler & Cortina (2023); Bergh et al. (2022); This book: Sections 2.4 and 2.2.4 |
| Introduction/General | Must-have | 2 | When referring to necessity, are only words that correctly describe a necessity relationship used? | Refer to necessity only by using words that describe a necessity relationship. Avoid imprecise descriptions like X (cor)relates with Y, X is associated with Y, X affects Y, X causes Y, etc. Avoid incorrect sufficiency-based descriptions like X produces Y, X drives Y, X increase/decreases Y, etc. | This book: Table 2.1 |
| Introduction/General | Must-have | 3 | Is it explained that NCA is an approach that combines both a specific causal logic (methodology) and the related data analysis technique (method)? | Refer to NCA as an approach that combines necessity causality (rather than common probabilistic or configurational causality) and a related data analysis technique (ensuring theory-method fit). NCA is not just a data analysis technique or statistical tool. | Article: Dul (2024a) |
| Introduction/General | Must-have | 4 | Is a proper comparison made between NCA’s causal perspective and conventional causal perspectives (e.g., causal inference from regression analysis or QCA studies)? | When comparing necessity (causal) logic and NCA with causal interpretations of conventional regression-based/statistical approaches, use the term “probabilistic sufficiency” and not just “sufficiency” for the latter approaches, as "sufficiency" suggests (quasi-)determinism, like in QCA configurational sufficiency logic. This recommendation is often violated in studies that combine NCA with PLS-SEM. When NCA is compared with QCA’s necessity analysis, use the term "necessity analysis of QCA" for the latter (and not "NCA") and explain the differences between the necessity analysis of QCA (only in kind) and that of NCA (also in degree). | Articles: Dul (2024a); Dul (2016a); Vis & Dul (2018); Dul (2022); This book: Section 4.6; Section 4.7 |
| Introduction/General | Must-have | 5 | In multimethod studies, is NCA used as an approach with a different perspective on causality and data analysis (and not as a robustness or confirmation test for other methods), and vice versa? | Use NCA as an approach with a different perspective on causality and therefore a different way of data analysis. NCA is not a robustness or a confirmation test for other methods (and vice versa). | Article: Dul (2024a) |
| Introduction/General | Nice-to-have | 6 | If the necessity analysis is a prominent part of the publication, do the title and abstract reflect this necessity perspective/NCA? | If an important part of the publication and/or its conclusions are based on necessity logic and NCA, include in the title (and abstract) words that reflect necessity logic or NCA. | This book: Table 2.1 |
| Theory/Hypotheses | Must-have | 7 | Is the hypothesized necessity relationship explicitly formulated as: X is necessary for Y, or similar? | Formulate the necessity relationship explicitly as a necessary condition hypothesis: "X is necessary for Y". For hypothesis testing research this is done before data analysis; for hypothesis building/exploration research this is done after data analysis when a necessity relationship is found. | This book: Sections 2.2 and 4.6 |
| Theory/Hypotheses | Must-have | 8 | Are the four elements of a necessity theory precisely defined (condition(s) X, outcome Y, direction of the hypothesis, focal unit, theoretical domain)? | Specify the theoretical domain of the necessity theory/hypothesis (theoretical phenomenon/constructs for which the necessity relation holds), and the focal unit of analysis (the population, or subset of population, of focal units). Note that the theoretical domain is usually larger than a population for empirical study, and the theoretical domain may be better specified after doing a thought experiment. | This book: Sections 2.1 and 2.2.2 |
| Theory/Hypotheses | Must-have | 9 | Is it convincingly explained WHY X is necessary for Y (no compensation possible), using necessity causal logic to justify the necessity hypothesis? | Explain why X is necessary for Y using necessity logic (why compensation is not possible) based on experience of academics and practitioners, and/or literature and experiences of academics and practitioners. | This book: Sections 2.2.2 and 4.6 |
| Theory/Hypotheses | Must-have | 10 | Are temporal aspects considered including specifying the expected direction of the temporal order of X and Y if this is not obvious? | If this is not obvious, include a plausible explanation why the temporal order is X before Y (why Y cannot happen without X having occurred) and why the alternative explanation, "Y is sufficient for X" is not plausible. | This book: Section 2.3.1 |
| Theory/Hypotheses | Should-have | 11 | Is the existing literature about the relationship between X and Y re-considered from a necessity causal perspective? | Review existing literature (that commonly describes relationships in sufficiency terms) about the relationship between X and Y and interpret/re-consider this literature from a necessity causal perspective. This helps to see if the relationship might actually be a necessity relationship, and might also provide arguments (based on previous literature) for making a justification for necessity causal logic. | This book: Table 2.1 |
| Theory/Hypotheses | Nice-to-have | 12 | If applicable, is an "nc" symbol added near the arrow in a figure that represents a necessity relationship? | In a figure representing an (expected) necessity relationship, add a small symbol (nc, nc- or +nc-) near the arrow to show the direction of necessity. | This book: Section 2.2.3 |
| Theory/Hypotheses | Nice-to-have | 13 | Is it specified if rare exceptions are allowed? | When formulating necessity theory/hypotheses explicitly state if rare exceptions are allowed (probabilistic perspective on necessity, "almost always necessary’") or not (deterministic perspective on necessity). | Article: Dul (2024a) |
| Methods - data | Must-have | 14 | Is the study design (observational study, longitudinal study, case study, experimental study) adequate? | Specify: 1. the research design which can be the experiment (when there is theoretical, methodological and practical possibility of manipulating X and having a control group), observational study (cross-sectional, longitudinal), qualitative/case study, simulation study, or other; 2. the data set and type of data (quantitative, qualitative, simulated). Note: NCA is a method that analyzes data without generating data. NCA is not a method for collecting data. NCA can analyze all types of data. However, due to the specific causal logic, NCA makes specific requirements to data. These requirements depend on the research design, and include requirements for sample size, sampling, measurement, and distribution characteristics of X and Y (boundedness, ceiling). Specify how the research design meets requirements for the levels of X and Y. Data are input to NCA, not part of NCA. | This book: Sections 3.2, 3.3, 3.5, 3.6, and 3.7 |
| Methods - data | Should-have | 15 | For large N quantitative studies: are adequate sampling approaches used and is a pre-study power analysis reported? | For large N quantitative studies, use sampling approaches that are appropriate for identifying empty zones in scatter plots and for accurately estimating ceilings. Thus: use random sampling and sample size should be sufficiently large (rule of thumb: N>=100). For testing necessity hypotheses, power analysis is needed. Provide a pre-study power analysis for effect size (d) and statistical significance (p). Post-hoc power analysis is not informative for the present study but could inform future studies only. | Article: Dul (2024b); This book: Section 6.3.2 |
| Methods - data | Should-have | 16 | For small N qualitative studies: are adequate NCA-specific approaches used for purposive case selection? | For qualitative small N studies, use NCA-specific purposive case selection approaches. If using typical qualitative purposeful case selection approaches, specify the type of case selection and its limitations. | Article: Dul (2024b); This book: Section 3.3.1 |
| Methods - data | Must-have | 17 | Are adequate measurement approaches used for getting scores of X and Y, and are these measures practically interpretable? | Use measurement approaches that make the scores of X and Y practically interpretable, i.e. meaningfully reflect the level of X and Y (not just "rank"). NCA is a data analytic technique applied to measures of X and Y. Data are input to NCA, not part of NCA. | This book: Sections 3.2, 3.3, 3.5, 3.6, and 3.7 |
| Methods - data | Must-have | 18 | For simulation studies: are simulated data sampled from bounded distributions of X and Y? | NCA requires bounded distributions for both X and Y (e.g. physical constraints, or scale boundedness). For simulation studies, sample data from bounded distributions. Uniform distribution or bounded beta are eligible but not sampling from normal distributed data. | This book: Section 6.3.1 |
| Methods - data | Must-have | 19 | Are only data transformations that align with NCA employed? | Explain possible data transformations. NCA only allows linear transformations of X and Y (affine transformations: X2=aX+b) because necessity relationship depends on absolute levels of X and Y. Log and other non-linear transformations are not allowed. Exception: piecewise linear transformation (called ‘S-curve’) is applied mechanistically for calibration purposes. | This book: Sections 3.1 and 4.6 |
| Methods - data analysis | Must-have | 20 | Is the selected ceiling line specified and justified? | Specify and justify the primary selection of the ceiling line (e.g., CE-FDH when X or Y is discrete or when the ceiling line is expected to be non-linear; CR-FDH when X and Y are continuous or when the ceiling line is expected to be straight). | This book: Sections 4.1.2, 4.4.1, and 4.6 |
| Methods - data analysis | Should-have | 21 | Is the selected scope (empirical or theoretical) deliberately selected and specified? | ||
| Methods - data analysis | Should-have | 22 | Are the hypothesis evaluation criteria (thresholds for effect size, statistical significance, ceiling fit, ceiling accuracy, and possibly target outcome) deliberately specified and justified? | Specify and justify the selection of the threshold value for necessity effect size for in kind necessity (d) and for statistical significance (p). In absence of a specified value, a common benchmark value may be used (d = 0.10). | Article: Dul (2016b); This book: Sections 4.2 and 4.4.2 |
| Methods - data analysis | Should-have | 23 | Are the results of a visual inspection of the XY-plot reported? | ||
| Methods - data analysis | Must-have | 24 | Is it explained how potential outliers are analysed and handled? | ||
| Methods - data analysis | Should-have | 25 | Is it described and justified how the ceiling line estimation accuracy is evaluated? | Specify how ceiling line accuracy is evaluated and which threshold values are used; consider for example Fit > 80% and ceiling-accuracy > 0.95 | |
| Methods - data analysis | Should-have | 26 | Are all NCA-related parameters, terms and concepts properly used and described? | Make sure that the feasible area is described as the area under the ceiling line and not as the empty zone. Avoid using the term "ceiling zone" and "infeasible area". Provide a proper description of effect size, ceiling line, accuracy, and scope. Specify what is meant by the data-analytic term "relative" (relative to observed scores; relative to selected scale for scoring X and Y; comparing effect sizes as in simulations). | This book: Section 5.1 |
| Methods - data analysis | Nice-to-have | 27 | Is the utilized software, including its version number specified? | Specify which software and which version of the software was used to conduct NCA. | This book: Section 7.1 |
| Methods - data analysis | Nice-to-have | 28 | Is a short description of NCA’s data analysis approach provided? | Provide to readers who are unfamiliar with NCA’s data analysis approach a short description of how NCA works (e.g., focusing on empty zone, ceiling line, scope, effect size) and refer to references for further reading. | This book: Chapter 1 ; Appendix in Dul (2024a) |
| Results | Must-have | 29 | Are XY-tables or XY-plots of all tested/explored relationships shown? | Show in the main text or an appendix the XY tables or XY plots of all tested/explored relationships such that the reader can inspect the patterns. | This book: Sections 4.1 and 4.6 |
| Results | Should-have | 30 | Is only the ceiling line that is used to draw conclusions about the necessity relationship shown in the XY-plot? | Report results of another plausible ceiling line if this is part of a robustness check | |
| Results | Must-have | 31 | For large-N quantitative research: are the effect size and its p-value properly reported? | Report the estimated effect size preferably with two decimal places (e.g., d = 0.09 or d = 0.11), ensuring that the two decimal p values have meaningful information about the precision of the p value. | |
| Results | Must-have | 32 | Is the conclusion about necessity in kind based on three criteria: theoretical justification, effect size, and p-value? | Conclude about necessity in kind using three criteria: 1. theoretical justification (the hypothesis); 2. Effect size large enough (above the selected threshold value), p value small enough (below the selected threshold value). | This book: Sections 1.5.5 and 4.6 |
| Results | Should-have | 33 | Is the bottleneck table reported and necessity in degree evaluated? | Report the bottleneck table when multiple necessary conditions are not rejected to evaluate for which level of Y, which levels of the X's are required. | This book: Section 4.3 |
| Results | Nice-to-have | 34 | If applicable: is the meaning of 'NN' and 'NA' in the bottleneck table explained? | Explain the meaning of 'NN' and 'NA' in the bottleneck table. | This book: Section 4.3 |
| Results | Should-have | 35 | Are the type of values used in the bottleneck analysis justified? | Justify the type of values for X and Y (percentage of range, actual values, percentiles). In particular, the actual values of X and Y are meaningful, and not the percentage of cases not able to achieve a target outcome. | This book: Section 4.3 |
| Results | Must-have | 36 | Are the results of the robustness checks summarized? | Summarize the results of the robustness checks: is the conclusion about necessity (e.g., acceptance and rejection of hypotheses, effect sizes) robust across choice of ceiling line (e.g., CE-FDH, CR-FDH), scope (observed, theoretical), removing outliers and missing values, and other choices (e.g., scope outliers). Conclude if the results are robust or fragile. | This book: Section 4.4 |
| Discussion | Must-have | 37 | Is it explained why all tested necessary conditions were (not) rejected? | Summarize the results of using NCA in terms of which necessary conditions were tested/explored, and which were (not) rejected. Explain what could be a theoretical reason of it (refer to the reasoning for the hypothesis formulation). | This book: Section 4.7 |
| Discussion | Must-have | 38 | For multimethod research: is it explained how the results of NCA and of other methods complement each other? | When NCA is used in combination with another methods (e.g., regression-based methods or QCA), report how the results of NCA and of the other method complement each other. | This book: Sections 4.5 and 4.6 |
| Discussion | Must-have | 39 | Referring to the goals of the study (see introduction): is it discussed if the intended contribution is realized and what the key insights are? | For a theoretical, empirical, methodological and/or practical contribution (see introduction), discuss if the added value has been realized and what key insights were gained. | |
| Discussion | Should-have | 40 | Are the results of the bottleneck analysis explained in terms of necessity-in-degree? | Give an interpretation of necessity in degree using the results of the bottleneck analysis. For example, explain what level of X is necessary for what target level of Y. | This book: Section 4.3 |
| Discussion | Should-have | 41 | Are limitations of applying NCA mentioned? | Mention general limitations of NCA (e.g., only focus on necessity; potential sensitivity to outliers), and specific limitations of applying NCA in the current study. | |
| Discussion | Should-have | 42 | Are potential future studies with NCA discussed? | Discuss potential future research directions with NCA, for example conducting studies in other parts of the theoretical domain to verify generalizability of the current findings, or applying NCA in related substantive areas that could benefit from the necessity causal perspective. | Article: Köhler & Cortina (2023) |
Chapter 2 Theory
A necessity theory is a theory that employs causal necessity logic for describing the causal relationships between all, or a selection of the concepts of a theory (Bokrantz & Dul, 2023). Necessity theorizing is formulating necessity theory using necessity logic when describing causal relationships between concepts.
2.1 The four parts of a theory
A theory –including a necessity theory– consists of four parts: concepts, propositions, focal unit and theoretical domain. The concepts are the variable parts of a theory that can increase or decrease. In NCA the independent concepts are called ‘conditions’ and the dependent concepts ‘outcomes’. A proposition describes the causal relationship between the concepts. In NCA the causal relationship is a necessity relationship: ‘\(X\) is necessary for \(Y\)’. The focal unit is the object to which the theory applies: country, person, firm, project. etc. The theoretical domain is the set of cases of the focal unit where the theory is supposed to hold. A case is one particular example of the focal unit: a specific country, a specific person, etc.
The four characteristics of theory on which the nca.example data set of the NCA software is based are:
Focal unit: country.
Concepts:
Independent concepts (conditions): Individualism, Risk taking.
Dependent concept (outcome): Innovation performance.
Propositions: Individualism is necessary for Innovation performance. Risk taking is necessary for Innovation performance.
Theoretical domain: all countries of the world.
In theory testing research, empirical data are used to test the propositions. The theoretical concepts are operationalized into variables that can be measured, the propositions are operationalized into hypotheses consisting of variables with their expected relationship, the focal unit becomes the unit of analysis, and cases are selected from the theoretical domain. For the case selection usually a population of cases is identified in the theoretical domain and a sample is taken from this population, but purposive selection of cases is possibe as well. From the sample a dataset is obtained with variables scores of the cases.
2.2 Formulation of necessity hypotheses
The propositions (or the operationalized hypotheses) are the core elements of a theory. They describe the expected causal relationships between the concepts. Most theories express the causal relationship in terms of probabilistic sufficiency: cause \(X\) likely changes effect \(Y\). Such cause contributes to the outcome ‘on average’. Other theories express the causal relationship deterministically or typically : cause \(X\) is (typically) necessary or sufficient for \(Y\). These different causal perspectives are discussed in Dul (2024a). NCA employs a deterministic (no exceptions) or typicality (with exceptions) causal perspective about necessity.
NCA starts with formulating a hypothesis that a condition is a necessary cause for the outcome. In some fields the existence of a causal necessity relationship is widely known and accepted. An example is the psychological theory that intelligence is necessary for creativity. This hypothesis was proposed in the 1960’s (Guilford, 1967) and is still widely around. Until recently, this theory could not be tested with a specific necessity method. When NCA became available it was possible to ensure theory-method fit by testing the hypothesis with NCA, as was done by Karwowski et al. (2016).
In other fields, theories that are broadly accepted include systematic formulations of necessity. Some of these establised theories were recently tested with NCA. Examples are the Ability Motivation, Opportunity model – AMO (or Motivation, Opportunity, Ability model - MOA) of human behavior (e.g., Tuuli & Rhee, 2021), the Theory of Planned Behavior – TPB (Frommeyer et al., 2022), the Technology Acceptance Model – TAM (e.g., Richter, Schubring, et al., 2020) and the Self-Determination Theory – SDT (e.g., Cassia & Magno, 2024). Other established necessity theories have never been tested with NCA, including Porter’s theory on competitive advantage of nations (Porter, 1985), Wernerfelt’s resource-based view of the firm (Wernerfelt, 1984), Teece’s theory on dynamic capabilities (Teece et al., 1997), Rogers’ theory on person-centered psychotherapy (Rogers, 1957) and Turner’s framework for project management success (Turner, 2009).
Yet, necessity causality (even if explicitly formulated) is not widely recognized and when these theories are being tested, probabilistic sufficiency causality is (implicitly) assumed. NCA gives the opportunity to test such theories while ensuring theory-method fit.
In most research fields necessity formulations of the relationships of interest are scattered around in the literature. Although necessity causality exists in virtually all research areas, and necessity statements are commonly made, the necessity statements are usually not part of the theories. NCA gives the researcher an opportunity to formalize the theoretical necessity statements and test them with an appropriate method.
2.2.1 Sources with potential necessary conditions
Four sources can be used for formulating necessary condition hypotheses. First, existing necessity statements in the literature can be identified. Although several necessity statements may use the word ‘necessity’ rather loosely as synonym for ‘important’, many necessity statements refer to necessity logic and causality. Common words referring to a condition that is necessity for an outcome are listed in Table 2.1. Several words reflect that the necessary condition must be present to have the outcome (enablers); other words reflect that the absence of the necessary conditions guarantees the absence of the outcome (constaints).
| Enablers (The presence of X …) | Constraints (The absence of X …) |
|---|---|
| X is necessary for Y | X constrains Y |
| X is needed for Y | X limits Y |
| X is critical for Y | X blocks Y |
| X is crucial for Y | X bounds Y |
| X is essential for Y | X restricts Y |
| X is indispensable for Y | X is a barrier for Y |
| X is a prerequisite for Y | X is a bottleneck for Y |
| X is a requirement for Y | Without X there cannot be Y |
| X is a conditio sine qua non for Y | |
| X is a pre-condition for Y | |
| X allows Y | |
| X enables Y | |
| There must be X to have Y | |
| Y requires X |
Second, when ‘important’ contributing causal factors for a outcome of interest have been identified with conventional methods, several of them could also be necessary conditions. For example, when a researcher formulates an additive theory with generic causes (to be analysed with regression analysis) arguments are provided why a concept is an important contributor to an outcome. As a standard, the arguments imply sufficiency logic (‘\(X\) produces \(Y\)’), but as an alternative, the relationship could also be described with necessity logic: an important factor that cannot be compensated for. Not only independent concepts but also mediator and moderator concepts in additive theories could be candidate necessary conditions. In other words, when current additive theories state that concepts are ‘important’ contributing concepts they may or may not (also) be necessary. But also contributing concepts that are considered ‘unimportant’ according to additive theories could be necessary.
Third, ‘critical’ and ‘bottleneck’ factors in practice could be candidate necessary conditions to be included in the theory. Practitioners commonly act upon ‘critical success factors’ or ‘must have’ factors (versus ‘nice to have’ factors). When such factor does not have the required level it can become a bottleneck on which the practitioner must act to ensure a desired outcome. Practitioners often have a ‘theory in use’ (Dul & Hak, 2008) in which they argue why a factor is related to an outcome. Often the arguments imply necessity logic.
Fourth, the researcher may have ideas about necessary conditions in a specific based the researcher’s knowledge about that field. Such ideas could be discussed with other experts in the field.
2.2.2 Thought experiment
When a potential necessary condition is selected the researcher can do a ‘thought-experiment’ to test if necessity is possible1. Thus for testing necessity the researcher can ask the question “Can I imagine cases with outcome \(Y\), but without condition \(X\)?”. When such cases are relatively common, the conclusion is that the condition is not necessary. When cases with the outcome \(Y\) and without the condition \(X\) are impossible or rare, the hypothesis may generally hold. The rare cases can be used to define the context where the hypothesis holds and where not, and thus to define the theoretical domain of the theory. Defining the theoretical domain –where the theory is supposed to hold– is important for all theories, because theories do rarely hold universally.
To illustrate the thought-experiment and the process of defining the theoretical domain, assume that a researcher wants to test the hypothesis ‘understanding English is necessary for reading this book’. This statement is generally correct, but it is possible to imagine cases (persons) with the outcome (reading the book) but without the condition (not mastering English). Such exception is possible when someone translates the book in the language other than English, such that a reader who does not master English can read the translated book. This exception helps to specify the theoretical domain of the hypothesis: ‘persons reading the original version of book’. Further exploration of exceptions can help to specify the theoretical domain. This process continues until the theoretical domain is precisely specified where the hypotheses is expected to hold virtually always. For testing this hypothesis, cases are selected from this specified theoretical domain. This can help to avoid sampling error (see section 3.8).
It is also possible that the necessary condition is rejected in the thought experiment because the condition is formulated too narrow. For example, ‘green apple’ is not necessary for an apple pie, and also red apple is not necessary for an apple pie. However, the higher-order construct (apple) is necessary. Then it would make sense to formulate the necessary condition hypothesis with the higher order concept. In general, attractive theories are supposed to be valid in a broad set of contexts, not only in very specific situations.
2.2.3 Direction of necessity
A hypothesis is usually only generally and semantically described as a theoretical statement. In NCA the common hypothesis is a qualitative theoretical statement like “X is necessary for Y” (in kind). A hypothesis usually is not described as a quantitative statement like “a specific level of X is necessary for a specific level of Y” (in degree). A hypothesis usually includes or implies a ‘direction’ of the causal relationship. In NCA four ‘directions’ are possible: the presence/high value of \(X\) is necessary for the presence/high value of \(Y\) (+ +), the absence/low value of \(X\) is necessary for the presence/high value of \(Y\) (- +), the presence/high value of \(X\) is necessary for the absence/low value of \(Y\) (+ -), and the absence/low value of \(X\) is necessary for the absence/low value of \(Y\) (- -). This is shown in Figure 2.1, where the empty space is in different corners.



Figure 2.1: ‘Direction’ of necessary conditions. Upper-left: a high value of \(X\) is necessary for a high value of \(Y\) (+ +). Upper-right: a low value of \(X\) is necessary for a high value of \(Y\) (- +). Lower-left: a high value of \(X\) is necessary for a low value of \(Y\) (+ -). Lower-right: a low value of \(X\) is necessary for a low value of \(Y\) (- -).
Figure 2.2 shows conceptual models in which the arrows suggest a necessity causal relationship using the symbol (“nc” = ‘necessary condition’ or ‘necessary cause’), and the ‘direction’ of causality is specified as well.



Figure 2.2: Conceptual models for necessary conditions. Top-Left: presence of \(X\) is necessary for presence of \(Y\). Top-Right: absence of \(X\) is necessary for presence of \(Y\). Bottom-Left: presence of \(X\) is necessary for absence of \(Y\). Bottom-Right: absence of \(X\) is necessary for absence of \(Y\).
If the direction is not specified, the + + direction is implied. Note that in NCA the hypothesis is not described by a verb like in ‘\(X\) increases \(Y\)’ or ‘\(X\) has a positive effect on \(Y\)’, which are common formulations to express probabilistic sufficiency (average effect) relationships. In NCA a noun or adverb is used to describe levels of \(X\) and \(Y\) as for example in ‘the absence of \(X\) is necessary for the presence of \(Y\)’ or ‘low \(X\) is necessary for high \(Y\)’. Note also that the two ‘ceiling lines’ in the lower part of the plot can be considered as ‘floor lines’. An empty space in the lower-left corner represents that a high value of \(X\) is necessary for a low value of \(Y\). This is logically equivalent to the statement that a not-high level of \(X\) is sufficient for a not-low level of \(Y\). The floor line in this corner suggests therefore that a low level of \(X\) is sufficient for a not so high level of \(Y\). Similarly, an empty space in the lower-right corner suggests that a high level of \(X\) is sufficient for a not so high level of \(Y\).
2.3 Justification of necessity hypotheses
A theory is more than a set of hypotheses. It is also important to describe the mechanism why \(X\) is necessary for \(Y\).
2.3.1 Temporal order
A first requirement for claiming causality is that condition occurs before the outcome: first the condition, then the outcome. If an empty spaces is observed in the upper left corner of the \(XY\) plot, this could not only indicate that the presence of \(X\) is necessary for the presence of \(Y\) (first \(X\) then \(Y\)), but also that the presence of \(Y\) is sufficient for the presence of \(X\) (first \(Y\) then \(X\)). Often it is easy to theorize that the second temporal order does not exist. For example if \(X\) is oxigen and \(Y\) is being alive, the empty space could support the claim that being alive is a sufficient causal condition for having oxigen, but theoretically this does not make sense. If the causal direction is not immediately clear, the temporal order should be part of the theoretical justification of the necessity hypothesis.
2.3.2 Causal mechinism
The causal mechanism of a necessity relationship can be argued by answering three why questions. Assuming that the presence of \(X\) is necessary or the presence of \(Y\) these questions are:
- Why if \(X\) is absent also \(Y\) is absent? This can be done by imagining a case without \(X\) and without \(Y\) and describing why without \(X\), \(Y\) cannot be produced.
- Why if \(Y\) is present also \(X\) is present? This can be done by imagining a case with \(X\) and with \(Y\) and describing why \(Y\) would disappear when \(X\) disappears, thus why \(Y\) could not have happened without \(X\)?
- Why the absence of \(X\) cannot be compensated by another concept? This can be done by imagining a case without \(X\) and with \(Y\).
If in any of these situations a case can be imagined, the consequence for the theory’s domain (smaller?) or for the concept definition \(X\) (higher order concept?) should be considered. It is also possible that such imagined case is very exceptional, and ignored from the perspective of typicality necessity.
Figure 2.4: Questions to justify a ‘++’ necessity hypothesis.
Figure 2.4 shows that these questions relate to three cells of the 2x2 table that are compatible with the ‘++’ necessary condition hypothesis: where cases are possible or impossible when the necessary condition ‘the presence of \(X\) is necessary for the presence of \(Y\)’ holds. Note that the lower right cell is not informative about necessity.
Describing the causal mechanism is often difficult. It is a creative process inspired by the three questions. The answers can be based on exploring and combining knowledge from the literature, from practice and from the researcher’s own experience. In the literature, researchers may partly use necessity arguments when describing the causal mechanism why an ‘important’ factor produces an outcome. Practitioners may tell stories why a ‘must have’ factor is ‘critical’ or a ‘bottleneck’ for the outcome and why he acts upon them for getting the outcome.
2.4 Theoretical contribution
[Acknowledgement: Stefan Breet contributed to this section].
According to Campbell & Aguilera (2022) scholars are expected to contribute the a ‘conversation’ about a certain topic in the academic literature. Based on Lange & Pfarrer (2017), suggestions can be made for formulating a contribution with a necessity theory. The conversation starts with a ‘common ground’. The primary literature with the ongoing conversation about the problem/topic, and to which new insights with NCA will contribute, is identified (i.e., what do we know?). Next, an interesting ‘complication’ in the literature is highlighted. This can be a missing element or failure in the literature, something that is missing in the conversation, or how the conversation falling short (i.e., what we don’t know?). Afterwards, it should be explained why this complication is a ‘concern’ (i.e., so what?). Next, in the ‘course of action’ it is explained how the complication is addressed with NCA. Finally, the ‘contribution’ is described showing how and why the new insights are now part of the ongoing conversation.
I give two examples of possible formulations of a contribution with NCA:
- A contribution to a conversation on causal relationships of a phenomenon (e.g., Knol, 2022).
- A contribution to conversation on a necessity relationship of a phenomenon (e.g., Karwowski et al., 2016).
Tables 2.2 and 2.3 provide details about how these contributions can be formulated.
| Topic |
|---|
| Common Ground (What do we know?) |
| Several contributing factors to the outcome of interest are identified in the primary literature that describes a complex multicausal phenomenon. |
| Complication (What don’t we know?) |
| We do not know which factors are essential. |
| Concern (So what?) |
| If the essential factor is not known, we do not know if it is present. If it is not present the outcome will not occur no matter the other factors. Acting on other factors than the bottleneck factor is a waste of effort. |
| Course of action |
| We analyse the phenomenon from the causal perspective of necessity by formulating a necessity theory and testing it with NCA to ensure theory-method fit. |
| Contribution |
| The phenomenon is now described in more detail by distinguishing between factors that contribute to the outcome and can be substituted (as commonly done), and essential factors that must be in place. |
| Topic |
|---|
| Common Ground (What do we know?) |
| A necessity relationship is suggested in the primary literature that describes a complex multicausal phenomenon (i.e., what do we know?) |
| Complication (What don’t we know?) |
| But necessity logic was not used when empirically testing that relationship so we do not know if it is a true necessity relationship(i.e., what don’t we know?) |
| Concern (So what?) |
| Whether or not the relationship is a necessary relationship makes a big difference for theoretical understanding and practical action. If necessary, the factor is essential in theory and practice; if not the factor ‘only’ contributes and can be substituted (i.e., so what?) |
| Course of action |
| We test the necessity relationship with NCA to ensure theory-method fit. |
| Contribution |
| There is now empirical evidence (or not) of a claim of a necessity relationship. |
2.5 Types of necessity theories
Bokrantz & Dul (2023) distinguish two types of necessity theories. First, Pure necessity theories are theories that consist only of necessary condition relationships between \(X\)’s and \(Y\)’s. Because necessary conditions operate in isolation from the rest of the causal structure, such theories can be parsimonious with only one or a few necessary conditions. An example of a pure necessity theory with one condition and one outcome is the early theory of Guilford (1967) that intelligence is ‘necessary-but-not-sufficient’ for creativity. Shortly after NCA was introduced (Dul, 2016b), this theory was empirically tested with NCA by Karwowski et al. (2016). Other examples of pure necessity theories that have been proposed and tested with NCA and that are described in well-cited articles are theories about necessary conditions for lean manufacturing (Knol et al., 2018), for workplace spirituality (N. Garg, 2017), and innovation in buyer-supply relationships (Van der Valk et al., 2016). Also the established Theory of Planned Behavior (TPB) has been revisited by Frommeyer et al. (2022) from the perspective of necessity, showing with NCA that intention is a necessary but not sufficient condition for behavior. Other established theories could be revisited as well, and tested with NCA. For example, the Resource Based View of the firm (RBV) is a framework that is often described in terms of necessity (e.g., Wernerfelt, 1984) but has not yet been tested accordingly. One theory about the necessary conditions for success of start-up firms was developed based on literature and common beliefs, but this necessity theory was rejected after empirical testing with NCA (Arenius et al., 2017).
Second, Embedded necessity theories are theories that consist of a mix of necessity relations and common additive relations where all factors are supposed to contribute to producing the outcome, but some factors (additionally) may also be necessary. These theories are usually complex as their main goal is to describe how the outcome is produced (sufficiency). One of the first embedded necessity theories is an extension of the Technology Acceptance Model (TAM). Richter, Schubring, et al. (2020) first described TAM as a structural (sufficiency) model including the classical antecedents ‘perceived usefulness’ and ‘perceived ease of use’ and analysed this model with Partial Least Squares Structural Equation Modeling (PLS-SEM). Subsequently, the relations were described as necessity conditions, and analysed with NCA. The results show that, for example the two classical antecedents not only help to produce technology acceptance on average, but they are also necessary.
2.6 Two empty corners
It is possible that a researcher formulates a theory that a single factor has two necessity relations with the outcome at the same time, implying that more than one corner is empty.
First, a researcher may theorize that an optimum (not low, not high) level of \(X\) is necessary for a high level of \(Y\). Then the upper left and the upper right corners are expected to be empty (Figure 2.5, left). Similarly, a researcher may theorize that an optimum (not low, not high) level of \(X\) is necessary for a low level of \(Y\). Then the lower left and the lower right corners are expected to be empty (Figure 2.5, right).

Figure 2.5: Left: The necessity of an optimum level of \(X_{c1} < X < X_{c2}\) for a high level of \(Y = Y_c\). Right: The necessity of an optimum level of \(X_{c1} < X < X_{c2}\) for a low level of \(Y = Y_c\).
In the NCA software, it is possible to do a combined test of the two necessity relations of a single factor by using the argument effect_aggregation in the nca_analysis function. The software can estimate the aggregate effect size of two adjacent corners, which is the sum of the effect sizes of the separate empty spaces, and its p value. For example, with an expectation that and optimum level of \(X\) is necessary for a high level of \(Y\), it is expected that the upper-left and the upper-right corners are empty, and the total empty zone can be aggregated and tested for randomness.
It is also possible that a researcher theorizes that a high level of \(X\) is necessary for an extreme (low or high) level of \(Y\). Then the upper left and the lower left corners are expected to be empty (Figure 2.6, left). Similarly, a researcher may theorize that a low level of \(X\) is necessary for an extreme (low or high) level of \(Y\). Then the upper right and the lower right corners are expected to be empty (Figure 2.6, right).

Figure 2.6: Left: The necessity of a high level of \(X > X_c\) for an extreme (low or high) level of \(Y = Y_{c1}\) or \(Y = Y_{c2}\). Right: The necessity of a low level of \(X < X_c\) for an extreme (low or high) level of \(Y = Y_{c1}\) or \(Y = Y_{c2}\).
The final possible situation with two empty corners is that a researcher theorizes that a high level of \(X\) is necessary for a high level of \(Y\) and a low level of \(X\) is necessary for a low level of \(Y\) (Figure 2.7, left). Similarly, a researcher may theorize that a low level of \(X\) is necessary for a high level of \(Y\) and that a high level of \(X\) is necessary for a low level of \(Y\). Then two opposite corners are empty (Figure 2.7, right).

Figure 2.7: Left: The necessity of a high level of \(X > X_{c1}\) for a high level of \(Y = Y_{c1}\), and the necessity of low level of \(X < X_{c2}\) for a low level of \(Y = Y_{c2}\). Right: The necessity of low level of \(X < X_{c1}\) for a high level of \(Y = Y_{c1}\), and the necessity of high level of \(X > X_{c2}\) for a low level of \(Y = Y_{c2}\).
.
–>
2.7 The meaning of ‘necessary but not sufficient’
Figure 2.1 shows a single factor with a one necessity relationship, and Figures 2.5, 2.6, and 2.7 show a single factor with two necessity relationships. In all figures, consistent with necessity, there are no observations in the empty space and observations in the grey area. If the necessity relationship holds, and no observations were in the grey area, all observations would be exactly on the border line. Then, the necessary condition is also a sufficient conditions. However this is not realistic as single necessary conditions are seldom also sufficient. This implies that the words ‘but not sufficient’ can normally be added to all necessity statements.
For example, upper left Figure 2.1, shows a single factor with one necessary condition: only the upper left corner is empty. This corresponds to the statement “a high level of \(X\) is necessary for a high level of \(Y\)”. If all points were on the border line (ceiling line) the condition is also sufficient resulting in the statement: “a high level of \(X\) is necessary and sufficient for a high level of \(Y\)”. In practice, observations will appear below the ceiling line. This justifies the statement that “a high level of \(X\) is necessary but not sufficient for a high level of \(Y\)”.
Figure 2.5, left is an example of a factor with two necessity relations, “a high level of \(X\) is necessary for a high level of \(Y\)” and “a low level of \(X\) is necessary for a high level of \(Y\)” (thus an optimum level of \(X\) is necessary for a high level of \(Y\)). If all observations were on the two ceiling lines, the words ‘and sufficient’ could be added to the word ‘necessary’. Again, in practice observations show up below the border lines such that the words “but not sufficient” can be added to the word ‘necessary’. The same holds for any other necessity relationship shown in Figures 2.1, 2.5, 2.6, and 2.7.
Any necessity statement can be rephrased as a sufficiency statement by formulating its logical complement. For example, the upper left corner of Figure 2.5 left (ignoring the upper right corner) indicates that a high level of \(X\) is necessary but not sufficient for a high value of \(Y\). This can be reformulated as ‘the absence of a high level of \(X\) is sufficient but not necessary for the absence of a high value of \(Y\)’. This means that a level of \(X < X_{c1}\) guarantees (is sufficient for) \(Y < Y_c\).
Similarly, the lower right corner of Figure 2.5 right (ignoring the lower left corner) indicates that a low level of \(X\) is necessary but not sufficient for a low value of \(Y\). This can be reformulated as: ‘the absence of a low level of \(X\) is sufficient but not necessary for the absence of a high level of \(Y\)’. A value of \(X > X_{c2}\) guarantees that \(Y > Y_c\).
When a single factor has two necessary relationships, it is possible to use the necessity formulation for one necessary condition, and the sufficiency formulation for the other. For example, in Figure 2.7, left the double necessity formulation is: ‘a high level of \(X > X_{1c}\) is necessary but not sufficient for a high level of \(Y = Y_{c1}\)’, and ‘the absence or low level of \(X < X_{c2}\) is necessary but not sufficient for the absence or low level of \(Y = Y_{2c}\)’. When the necessity formulation is used for the upper left necessity relation, and the sufficiency formulation for the lower right necessity relation, the new equivalent statement is: ‘a high level of \(X > X_{1c}\) is necessary but not sufficient for a high level of \(Y = Y_{c1}\)’, and ‘a high level of \(X < X_{c2}\) is sufficient but not necessary for a high level of \(Y = Y_{2c}\)’.
Note that dual statements cannot be combined into a single statement, because the two border lines have a different location. This means that for a given \(Y\) there are different levels of \(X\) (see Figures 2.5, and 2.7) and for a given \(X\) there different levels of \(Y\) (see Figures 2.6, and 2.7).
Sometimes, the situation in Figure 2.7, left is formulated ‘in kind’ as ‘\(X\) is necessary and sufficient for \(Y\)’, which implies that the upper left necessity relationship is formulated in terms of necessity, and the lower right in terms of sufficiency. However, this formulation is problematic when the actual necessity relationships are ‘in degree’. The ‘in degree’ formulation of the situation is not: ‘a high level of \(X\) is necessary and sufficient for a high level of \(Y\)’, but instead: ‘\(X > X_{c1}\) is necessary for \(Y = Y_{c1}\) and \(X > X_{c2}\) is sufficient for \(Y = Y_{c2}\)’. There is no common \(X\) that is necessary and sufficient for a common \(Y\) and no common \(Y\) for which a common \(X\) is necessary and sufficient.
Only when the two borderlines overlap, the ‘in kind’ statement also holds in an ‘in degree’ situation: ‘a certain level of \(X\) is necessary and sufficient for a certain level of \(Y\)’. At best, the ‘in kind’ formulation could be re-formulated as ‘a high level of \(X\) is necessary for a high level of \(Y\) and sufficient for a not so high level of \(Y\)’, or similar. The theoretical meaning is that a high level of \(X\) is necessary for (enables) a high level of \(Y\) (border line = ceiling line) and is sufficient for (ensures) a low level of \(Y\) (border line = floor line).
Chapter 3 Data
NCA is versatile regarding the data that can be used for the analysis. In quantitative studies NCA uses quantitative data (numbers), in qualitative studies NCA uses qualitative data (letters, words or numbers without a quantitative meaning), and is set theoretical studies (like Qualitative Comparative Analysis-QCA) NCA uses set membership scores. NCA can use any type of data. For example, NCA can handle new or archival data and can handle indicator (item) scores or aggregated scores (e.g, latent variables). NCA does not pose new requirements on collecting data –also NCA needs a proper research design, a good sample, and valid and reliable scores. However, a few aspects can be different. This Chapter discusses several aspects of data that are relevant for NCA: the transformation of data (section 3.1), the experiment (section 3.2), sample size (section 3.3), different data types such as quantitative data (section 3.4), qualitative data (section 3.5), longitudinal data (section 3.6), and set membership scores (section 3.7), and how to handle outliers (section 3.8).
3.1 Data transformation
In quantitative (statistical) studies, data are often transformed before the analysis is done. For example, in machine learning, cluster analysis and multiple regression analysis, data are often standardized. The sample mean is subtracted from the original score and divided by the sample standard deviation to obtain the z-score: \(X_{new} = (X — X_{mean}) / SD\). In multiple regression analysis this allows a comparison of the regression coefficients of the variables, independently of the variable scale. Normalization in another data transformation. Original data are often min-max normalized: \(X_{new} = (X — X_{min}) / (X_{max} — X_{min})\). The normalized variables have scores between 0 and 1. Transforming original scores into Z-scores or min-max normalized scores are examples of a linear transformation. Also a non-linear data transformation are often done in quantitative (statistical) studies. For example, skewed distributed data can be log transformed to obtain a more normally distributed data, which is relevant when the statistical approach assumes normally distributed data. Calibration in QCA is another example of a non-linear transformation. Original variable scores (‘raw scores’) are transformed into set membership scores using for example the logistic function (‘s-curve’).
NCA in principle does not need data transformation. The effect size is already normalized between 0 and 1 and allows comparison of effect sizes of different variables. Furthermore, NCA does make assumptions about the distribution of the data. However, if the researcher wishes to do a linear transformation, this would not effect the results of NCA, as is shown in this example:
library(NCA)
library(dplyr)
#original data
data (nca.example)
data <- nca.example
#linear: standardized data (z scores)
datas <- data %>% mutate_all(~(scale(.) %>% as.vector))
#linear: min-max normalized data (0,1; scope)
minMax <- function(x) {(x - min(x)) / (max(x) - min(x))}
datan <- as.data.frame(lapply(data, minMax))
#conduct NCA
model <- nca_analysis(data, 1,3, test.rep = 1000, ceilings = 'ce_fdh') #original data
models <- nca_analysis(datas, 1,3, test.rep = 1000, ceilings = 'ce_fdh') # standardized data
modeln <- nca_analysis(datan, 1,3, test.rep = 1000, ceilings = 'ce_fdh') #normalized data
#compare resultsResults with original data:
##
## ---------------------------------------------------------------------------
## Effect size(s):
## ce_fdh p
## Individualism 0.42 0.084
## ---------------------------------------------------------------------------
Results with linear standardized data:
##
## ---------------------------------------------------------------------------
## Effect size(s):
## ce_fdh p
## Individualism 0.42 0.084
## ---------------------------------------------------------------------------
Results with linear normalized data:
##
## ---------------------------------------------------------------------------
## Effect size(s):
## ce_fdh p
## Individualism 0.42 0.084
## ---------------------------------------------------------------------------
Linear transformation does not effect the estimations of the effect size and the p value. Interpretation of the results with original data is often easier than the interpretation of the results with transformed data. The original data may have a more direct meaning than the transformed data.
In contrast with linear transformations, non-linear transformations will change the effect size and p value, as shown in this example:
library(NCA)
library(QCA)
#original data
data (nca.example)
data <- nca.example
#non-linear transformation: log
datal <- log(data)
#non-linear transformation: calibrated set membership scores (logistic function)
thx1 <- quantile(data[,1], c(0.10,0.50,0.90)) #example of thresholds
thx2 <- quantile(data[,2], c(0.10,0.50,0.90)) #example of thresholds
thy <- quantile(data[,3], c(0.10,0.50,0.90)) #example of thresholds
x1T <- calibrate(data[,1],type="fuzzy", thresholds= c(thx1[1], thx1[2], thx1[3]),logistic = TRUE, idm = 0.953)
x2T <- calibrate(data[,2], type="fuzzy", thresholds = c(thx2[1], thx2[2], thx2[3]), logistic = TRUE, idm = 0.953)
yT <- calibrate(data[,3], type="fuzzy", thresholds = c(thy[1], thy[2], thy[3]), logistic = TRUE, idm = 0.953)
datac <- cbind (x1T,x2T,yT)
rownames(datac) <- rownames(data)
colnames(datac) <- colnames(data)
datac <- as.data.frame(datac)
#conduct NCA
model <- nca_analysis(data, 1,3, test.rep = 1000, ceilings = 'ce_fdh') #original data
modell <- nca_analysis(datal, 1,3, test.rep = 1000, ceilings = 'ce_fdh') # log transformed data
modelc <- nca_analysis(datac, 1,3, test.rep = 1000,ceilings = 'ce_fdh') #calibrated data
#compare resultsResults with original data:
##
## ---------------------------------------------------------------------------
## Effect size(s):
## ce_fdh p
## Individualism 0.42 0.095
## ---------------------------------------------------------------------------
Results with non-linear log transformed data:
##
## ---------------------------------------------------------------------------
## Effect size(s):
## ce_fdh p
## Individualism 0.20 0.269
## ---------------------------------------------------------------------------
Results with non- linear calibrated data:
##
## ---------------------------------------------------------------------------
## Effect size(s):
## ce_fdh p
## Individualism 0.11 0.094
## ---------------------------------------------------------------------------
Therefore non-linear transformation should be avoided in NCA. An exception is when a non-linear transformed original score is a valid representation of the concept of interest (the \(X\) or \(Y\) in the necessity hypothesis). For example, the concept of a country’s economic prosperity can be expressed by log GDP. In this case a log transformation of GDP data is justified (e.g., see section 3.6.1). Also in QCA data are normally non-linearly transformed to obtain calibrated scores. The general advise is to refrain from linear data transformation when the original data can be better interpreted than transformed data, and only to transform data non-linearly when this is needed to capture the concept of interest.
3.2 Experiment
Whereas in a common experiment \(X\) is manipulated to produce the presence of \(Y\) on average, in NCA \(X\) is manipulated to produce absence of \(Y\). This is done as follows. Assuming the necessary condition that for maintaining a desired level of \(Y = y_c\), \(X\) must be equal to or larger than \(x_c\), the research starts with cases with the outcome (\(Y ≥ y_c\)) and with the condition (\(X ≥ x_c\)), then the condition is removed or reduced (\(X < x_c\)), and it is observed if the outcome has disappeared or reduced (\(Y < y_c\)). This contrasts the traditional “average treatment effect” experiment in which the research starts with cases without the outcome (\(Y < y_c\)) and without the condition (\(X < x_c\)), then the condition is added or increased (\(X ≥ x_c\)), and it is observed if the outcome has appeared or increased (\(Y ≥ y_c\)).
In this section I give further details about the necessity experiment for testing whether a condition \(X\) is necessary for outcome \(Y\). I first describe the traditional experiment and afterwards the necessity experiment.
3.2.1 The traditional experiment
The traditional experiment estimates the “average treatment effect”: the average effect of \(X\) on \(Y\). The Randomized Controlled Trial (RCT) is considered the gold standard for such experiment. In an RCT, a sample of cases is selected from the population of interest and is randomly divided into a ‘treatment group’ and a ‘control group’. In the treatment group, \(X\) (the treatment) is manipulated by the researcher and in the control group nothing is manipulated. After a certain period of time the difference of the outcomes \(Y\) in the two groups is measured, which is an indication of the causal effect of \(X\) on \(Y\). For claiming causality, the existence of a time difference between manipulation and measurement of the outcome is essential as it ensures that the cause came before the outcome. Although this time difference can be short (e.g., when there is an immediate effect of the manipulation) it will always exist in an experiment. During this time period, not only the treatment, but also other factors may have changed. The control group ensures that the ‘time effect’ of other factors is taken into account, and it is assumed that the time effect in the treatment group and in the control group are the same. Random allocation of cases to the two groups is an attempt to safeguard that there are no average time effect differences between the treatment group and the control group.
An RCT is used to evaluate the average effect of a treatment (a policy, an intervention, a medical treatment, etc.). The treatment group describes the real world of cases where the intervention has occurred, and the control group mimics the counterfactual world of these cases if the intervention would not have occurred. The use of a control group and randomization is an effort to compare the actual world of cases that got the intervention with the actual world of similar (but not the same) cases that did not get the intervention. “Similar” means that the two groups on average have the same characteristics with respect to factors that can also have an effect on the outcome, other than the treatment. Randomization must ensure a statistical similarity of the two groups: they have the same average level of potential confounders. So, randomization is an effort to control for potential confounders.
Figure 3.1 represents the traditional experiment when \(X\) and \(Y\) are both dichotomous (absent = 0; present = 1), The sample of 100 cases is divided into a treatment group (blue) of 50 cases and a control group of 50 cases (red). The left figure shows the situation before the treatment. All cases are in the lower-left cell: the effect is absent, and the treatment is absent. The manipulation for the treatment group consists of adding the treatment. This means that \(X\) is changed from absent (\(X\) = 0, no treatment) to present (\(X\) = 1, treatment). After the manipulation (right figure), the effect \(Y\) of the treatment group is caused by a ‘time effect’ and a ‘manipulation effect’. In the control group \(X\) is not changed (no manipulation) but there is a time effect. Because the time effects in both groups are considered the same (due to randomization) the difference between the outcome of the treatment group and the control group can be attributed to \(X\), the manipulation.
Figure 3.1: XY table of the traditional experiment before (left) and after (right) treatment. X = Treatment (0 = no; 1 = yes); Y = Effect (0 = no; 1 = yes). Red: control group; Blue: treatment group.
With a traditional RCT experiment, after the treatment usually all four cells have cases. In this example, 10 cases from the control group have moved from the lower-left cell to the upper-left cell, suggesting a time effect. The cases from the treatment group have all moved to \(X\) = 1. Treatment and the time had no effect on the 30 cases in the lower-right cell. Treatment and time did have an effect on the 20 cases in the upper-right cell. The data pattern in the four cells suggests that the treatment had an effect. There are more cases in the upper-right cell (resulting from a time effect and a treatment effect) compared to the number of cases in the upper left cell (resulting only from a time effect). The odds ratio is an estimate the “average treatment effect”: \((20/30)/(10/40) = 2.67\).
3.2.1.1 The sufficiency experiment
The sufficiency experiment can be considered as a special case of the traditional experiment, namely when after the manipulation (Figure 3.2), all cases of the treatment group are in the upper-right cell. Then the odds ratio for estimating the average effect is infinite, independently of the distribution of the cases in the control group: \((50/0)/(10/40) = \infty\). Note that this situation is named “perfect separation” and is considered a problem for “average effect” statistical analysis. In this situation \(X\) is called a “perfect predictor” that is normally left out from further analysis, because of the statistical problems. However, actually \(X\) is an very important predictor of the outcome: it ensures the outcome, hence the name “perfect predictor”.
Figure 3.2: XY table of the sufficiency experiment before (left) and after (right) treatment. X = Treatment (0 = no; 1 = yes); Y = Effect (0 = no; 1 = yes). Red: control group; Blue: treatment group.
3.2.1.2 Non-necessity test
Referring to Figure 3.1, right, a part of the traditional “average treatment effect” experiment can be interpreted as a non-necessity test. While the emptiness in the lower-right cell reflects sufficiency, the emptiness of the upper-left cell reflects necessity. If this cell has cases due to the time effect, it can be concluded that the treatment is not necessary for the effect, because the effect is possible without the treatment. If this cell remains empty the necessity is not disconfirmed. This ‘non-necessity test’ as part of a traditional experiment can only be done with the control group. The treatment group cannot be used for testing necessity because it cannot test the emptiness of the upper-left cell. The non-necessity test with the control group is not an experiment since no manipulation is involved. It can be considered an observational study.
3.2.2 The necessity experiment
For testing the emptiness of the upper-left cell with an experiment (with manipulation of \(X\)), another approach is required. In the necessity experiment, all cases start to be in the upper-right cell (\(X\) = 1 and \(Y\) = 1) as illustrated in Figure 3.3, left.
Figure 3.3: XY table of the necessity experiment before (left) and after (right) treatment. X = Treatment (0 = no; 1 = yes); Y = Effect (0 = no; 1 = yes). Red: control group; Blue: treatment group.
The manipulation consists of removing rather than adding the treatment (from \(X\) = 1 to \(X\) = 0) and it is observed whether this removes the outcome (from \(Y\) = 1 to \(Y\) = 0). This is illustrated in Figure 3.3, right. Necessity is supported when the upper-left cell remains empty. Like in a sufficiency experiment, the odds ratio is infinite. Also this situation is called “perfect separation” and is considered a problem for “average effect” statistical analysis, and \(X\) is called a “perfect predictor” that is normally left out from further analysis, because of the statistical problems. However, again \(X\) is an very important predictor of the outcome and indeed a “perfect predictor”: it ensures the absence of the outcome when \(X\) is absent. Again, the odds ratio for estimating the average effect is infinite, independently of the distribution of the cases in the control group: \((50/0)/(20/30) = \infty\).
3.2.2.1 The necessity experiment with continuous outcome and dichotomous condition
Figure 3.4 illustrates the situation when the outcome is a continuous variable. Before the manipulation the condition is present (\(X\) = 1). The \(Y\)-values of the cases include the maximum value of the outcome (\(Y\) = 1). Necessity is supported when after the manipulation the maximum value in the treatment group is reduced to a value of \(Y = Y_c\), resulting in an empty upper-left corner of the \(XY\) plot. The necessary condition can be formulated as \(X = 1\) is necessary for \(Y >= Y_c\). The necessity effect size is the empty area divided by the scope. In this example the effect size = 0.175.
Figure 3.4: XY plot of the necessity experiment with continuous outcome before (left) and after (right) treatment. X = Treatment (0 = no; 1 = yes); Y = Effect between 0 and 1. Red: control group; Blue: treatment group.
3.2.2.2 The necessity experiment with continuous outcome and condition
In Figures 3.5, 3.6, 3.7, and 3.8 both the condition and the outcome are continuous variables. Rather than being a necessity experiment to test whether necessity exists, in this experiment an existing necessity is challenged. The manipulation consists of offering an experimental situation (e.g., an intervention or a scenario such as in a vignette study or a Monte Carlo experiment) that reduces the level of the condition in the treatment group but not in the control group. Necessity remains supported when after the manipulation no cases enter the empty zone. This is shown in Figure 3.5, where the necessity effect size before manipulation (0.25) stays intact after manipulation.
Figure 3.5: XY plot of an experiment to challenge necessit with continuous condition and outcome before (left) and after (right) treatment of reducing the X. Effect size remains after manipulation. Red: control group; Blue: treatment group.
However, when cases enter the empty zone, the necessity is reduced (smaller effect size) or rejected (no empty space). Figure 3.6 shows an example of a reduction of the necessaty effect size from 0.25 to 0.15.
Figure 3.6: XY plot of an experiment to challenge necessity with continuous condition and outcome before (left) and after (right) treatment of reducing the X. Effect size reduces after manipulation. Red: control group; Blue: treatment group.
Figure 3.7 is an example of a rejection of a necessary condition after manipulation because the effect size disappears after manipulation.
Figure 3.7: XY plot of an experiment to challenge necessity with continuous condition and outcome before (left) and after (right) treatment of reducing the X. Effect size disappears after manipulation. Red: control group; Blue: treatment group.
In rare situations before manipulation the necessary condition may be satisfied in all cases of the sample such that no empty space is present in the sample. After manipulation the hidden empty space becomes visible (see Figure 3.8).
Figure 3.8: XY plot of an experiment to challenge necessity with continuous condition and outcome before (left) and after (right) treatment of reducing the X. Effect size appears after manipulation. Red: control group; Blue: treatment group.
3.3 Sample size
A frequently asked question is “What is the required sample size for NCA”. The short answer is: “The more the better, but at least N = 1”. This is explained below.
3.3.1 Small N studies
In hypothesis testing research a sample is used to test whether the hypothesis can be falsified (rejected) or not. After repeated non-rejections with different samples, a hypothesis may be considered ‘confirmed’.
When \(X\) and \(Y\) are dichotomous variables (e.g., having only two values ‘absent’ or ‘present’, ‘0’ or ‘1’, low or high) it is possible to falsify a necessary condition with even a single case (N = 1). The single case is selected by purposive sampling (not random sampling). The selected case must have the outcome (present, 1, high), and it is observed if this case has the condition or not. If not (absent, 0, low), the hypothesis is rejected. If yes (present, 1, high), the hypothesis is not rejected. In the deterministic view on necessity, where no exceptions exist, the researcher can conclude that the hypothesis is not rejected. For a stronger conclusion replications with other cases must be done.
An example of this approach is a study by Harding et al. (2002), who studied rampage school shootings in the USA. They first explored two shooting cases and identified five potential necessary conditions: gun availability, cultural script (a model why the shooting solves a problem), perceived marginal social position, personal trauma, and failure of social support system. Next, they tested these conditions with two other shooting cases, an concluded that their ‘pure necessity theory’ (see section 2.5) was not rejected.
In another example, Fujita & Kusano (2020) published an article in the Journal of East Asian Studies studying why some Japanese prime ministers (PM’s) have attempted to deny Japan’s violent past through highly controversial visits to the Yasukuni Shrine, while others have not. They propose three necessary conditions for a Japanese PM’s to decide to visit: a conservative ruling party, a government enjoying high popularity, and Japan’s perception of a Chinese threat. They tested these conditions by considering the 5 successful cases (PM’s who visited the shrine) from all 22 cabinets between 1986 and 2014. In these successful cases the three necessary conditions were present. This means that the hypotheses were not rejected. They additionally tested the contrapositive: the absence of at least one necessary condition is sufficient for the absence of a visit, which was also supported by the data.
The editor of the journal commented on the study as follows: https://www.youtube.com/watch?v=zHlVzsQg8Ek
Even in small N studies it is possible to estimate the p value when the number of cases is at least 4 (assuming that all \(X\)’s have different values, and all \(Y\)’s have different values). This can be explained as follows. The p value refers to the probability that the observed data pattern is obtained when the variables are unrelated. NCA’s statistical test compares the effect size of the observed sample (with N observed cases) with the effect sizes of created samples with N fictive cases when \(X\) and \(Y\) are unrelated. Fictive cases that represent non-relatedness between \(X\) and \(Y\) are obtained by combining observed \(X\) values with observed \(Y\) values into new samples. The total number of created samples with a unique combination (permutations) of fictive cases is N! (N factorial). Only one of the permutations corresponds to the observed sample. For each sample the effect size is calculated. The p value is then defined as the probability (p) that the effect size of the observed sample is equal to or larger than the effect size of all samples. If this probability is small (e.g., p < 0.05), a ‘significant’ result is obtained. This means that the observed sample is unlikely the result of a random process of unrelated variables (the null hypothesis is rejected), suggesting support for an alternative hypothesis. The p value helps to avoid a false positive conclusion, namely that the effect size is the result of a necessity relationship between X and Y, whereas actually it may be a random result of unrelated variables. For example, for a sample size of N = 2, the total number of unique samples or permutations (including the observed sample) is \(2! = 1*2 = 2\). When the observed sample consists of case 1 \((x_1,y_1)\) and case 2 \((x_2,y_2)\) then the observed x-values \((x_1,x_2)\) and the observed y-values \((y_1,y_2)\) can be combined into two unique samples of size N = 2: the observed sample with observed case 1 \((x_1, y_1)\) and observed case 2 \((x_2, y_2)\), and the alternative created sample of N = 2 with two fictive cases \((x_1, y_2)\) and \((x_2, y_1)\). For example, when the observed sample has case 1 is \((0,0)\) and case 2 is \((1,1)\) the observed effect size with empirical scope is 1. The effect size of the alternative sample has the cases \((1,0)\) and \((0,1)\) with effect size 0. The probability that the effect size of the observed sample is equal to or larger than the effect sizes of the two samples is 1 in 2, thus p = 0.5. This means that the observed effect size of 1 is a ‘non-significant’ result because the probability that the observed effect size is caused by unrelated variables is not small enough (not below 0.05).
Similarly, for sample size N = 3 the total number of unique samples is \(3! = 1*2*3 = 6\), and the smallest possible p value is \(1/6 = 0.167\), for N = 4 the total number of unique samples is \(4! = 1*2*3*4 = 24\), and the smallest possible p value is \(1/24 = 0.042\), and for N = 5 the total number of unique samples is \(5! = 1*2*3*4*5 = 120\), and the smallest possible p value is \(1/120 = 0.008\), etc. Thus, only from N = 4 it is possible to obtain a p value that is small enough for making conclusions about the ‘statistical significance’ of an effect size.
When sample size increases, the total number of unique samples increases rapidly, and the possible p value decreases rapidly. For N = 10 the total number of samples (permutations) is 3628800 and the corresponding possible p value is smaller than 0.0000003. For N = 20 is the total number of samples is a number of 19 digits with a corresponding possible p value that has 18 zero’s after the decimal point. When N is large the computation of the effect sizes of all samples (permutations) requires unrealistic computer times. Therefore, NCA’s uses a random sample from all possible samples (permutations) and estimates the p value with this selection of samples. Therefore, NCA’s statistical test is an ‘approximate permutation test’. In the NCA software this test is implemented with the test.rep argument in the nca_analysis function to provide the number of samples to be analyzed, for example 10000 (the larger the more precision but also more computation time). When the test.rep value is larger than N! (which can happen for small N), the software selects all N! samples for the p value calculation.
3.3.2 Large N studies
In large N studies cases are sampled from a population in the theoretical domain. The goal of inferential statistics is to make an inference (statistical generalization) from the sample to the population. The ideal sample is a probability sample where all cases of the population have equal chances to become part of the sample. This contrasts convenience sample where cases are selected from the population for convenience of the researcher, for example because the researcher has easy access to the case. NCA puts no new requirements on sampling, and common techniques that are used with other data analysis methods can also be applied for NCA, with the same possibilities and limitations.
3.4 Quantitative data
Quantitative data are data expressed by numbers where the numbers are scores (or values) with a meaningful order and meaningful distance. Scores can have two levels (dichotomous, e.g. 0 and 1 ), a finite number of levels (discrete, e.g. 1,2,3,4,5) or an infinite number of levels (continuous, e.g. 1.8, 9.546, 306.22).
NCA can be used with any type of quantitative data. It is possible that a single indicator represents the concept (condition or outcome) of interest. Then this indicator score is used to score the concept. For example, in a questionnaire study where a subject or informant is asked to score conditions and outcomes with seven-point Likert scales, the scores are one of seven possible (discrete) scores.
It is also possible that a construct that is build from several indicators is used to represent the concept of interest. Separate indicator scores are then summed, averaged or otherwise combined (aggregated) by the researcher to score the concept. It is also possible to combine several indicator scores statistically, for example by using the factor scores resulting from factor analysis, or construct score of latent variables resulting from the measurement model of a Structural Equation Model.
Quantitative data can be analysed with NCA’s ‘scatter plot approach’ and with NCA’s software for R. When the number of variable levels is small (e.g. less than 5) it is also possible to use NCA’s contingency table approach.
3.5 Qualitative data
Qualitative data are data expressed by names, letters or numbers without a quantitative meaning. For example, gender can be expressed with names (‘male’, ‘female’, ‘other’), letters (‘m’, ‘f’, ‘o’) or numbers (‘1’, ‘2’, ‘3’). Qualitative data are discrete and have usually no order between the scores (e.g., names of people) or if there is an order, the distances between the scores are unspecified (e.g. ’low, medium, high). Although with qualitative data a quantitative NCA, (with the NCA software for R) in not possible, it is still possible to apply NCA in a qualitative way using visual inspection of the \(XY\) contingency table or scatter plot.
When the condition is qualitative the researcher observes for a given score of \(Y\), which qualitative score of the condition (e.g., ‘m’, ‘f’, ‘o’) can reach that score of \(Y\). When the logical order of the condition is absent, the position of the empty space can be in any upper corner (left corner, middle or right; assuming the hypotheses that \(X\) is necessary for the presence of or a high level of \(Y\)). When a logical order of the qualitative scores is present, the empty space is in the upper left corner (assuming the hypotheses that the presence of a high level of \(X\) is necessary for the presence of or a high level of \(Y\)). In both cases the size of the empty space is arbitrary and the effect size cannot be calculated because the values of \(X\) and therefore the effect size are meaningless. However, when \(Y\) is quantitative, the distance between the highest observed \(Y\) score and the next-highest observed \(Y\) score could be an indication of the constraint of \(X\) on \(Y\).
3.6 Longitudinal, panel and time-series data
Researchers often use cross-sectional research designs. In such designs several variables are measured at one moment in time. In a longitudinal research design the variables are measured at several moments in time. The resulting data are called longitudinal data, panel data or time-series data. In this book, longitudinal data (a name commonly used by statisticians) and panel data (a name commonly used by econometricians) are considered as synonyms.
Longitudinal/panel data are data from a longitudinal/panel study in which several variables are measured at several moments in time. Time-series data are a special case of longitudinal/panel data in which one variable is measured many times.
Longitudinal/panel and time-series data can be analysed with NCA with different goals in mind. Two straightforward ways are discussed in this book. First, if the researcher is not specifically interested in time, the time data can be pooled together as if the data were from cross-sectional data set (e.g., Jaiswal & Zane, 2022b). Second, if the researcher is interested in time trends, NCA can be applied for each time stamp separately.
3.6.1 NCA with pooled data
Figure 3.9: Scatter plot of Economic prosperity and Life expectancey with two ceiling lines (Pooled Worldbank data from 1960 to 2019 for all countries/years).
Figure 3.9 shows an example of a scatter plot of a time-pooled data. It is an example of the necessity of a country’s economic prosperity for a country’s average life expectancy: A high expected age is not possible without economic prosperity. This necessity claim can be theoretically justified by the effect of economic prosperity on the quality of the health care system. The data are from the Worldbank for 60 years between 1960 and 2019 and for 199 countries. Data is available for 8899 country-years. The scatter plot of time pooled data has Economic prosperity expressed as log GDP per capita on the \(X\) axis, and Life expectancy at birth expressed in years on the \(Y\) axis.
Figure 3.9 shows a clear empty space in the upper left corner. The NCA analysis is done with the C-LP ceiling line, which is a straight ceiling line that has no observations above it, and with the
CE-FDH line that follows the somewhat non-linear trend of the upper left border
between the full and empty space. The empty space in the upper left corner indicates that a certain level of life expectancy is not possible without a certain level of economic prosperity. For example, for a country’s life expectancy of 75 years, a economic prosperity of at least 3 (103 = 1000 equivalent US dollar) is necessary. The effect sizes for the two ceiling techniques are 0.13 (p < 0.001) and 0.16 (p < 0.001), respectively. This suggests that a necessity
relationship exists between Economic prosperity and Life expectancy.
(There is also a well-known positive average relationship (imaginary line through the middle of the data), but this average trend is
not considered here. Furthermore, the lower right corner is empty as well suggesting that the absence of \(X\) is necessary for the absence of \(Y\), which could be evaluated with the corner = 4 argument in the nca_analysis function of the NCA software.)
3.6.2 NCA for describing time trends
When the researcher is interested in time trends, NCA can be applied for each time stamp separately. Such approach can be considered a multiple cross-sectional NCA analysis. As an example in Table 3.1 a longitudinal analysis is done with the same countries and years as in Figure 3.9, but now analysed per year and using only the C-LP ceiling line. For making the NCA results comparable per year, the scope for each year is standardized to the scope of the pooled data (based on the absolute minima and maxima of empirically observed Economic prosperity and Life expectancy in the data). This scope is entered in the NCA analysis as the theoretical scope for each year.
Table 3.1 shows several NCA parameters for each time-point. The effect sizes range from 0.13 to 0.29 and the p values for all years is less than 0.001. In general, the effect size decreases over the years, such that the constraint that economic prosperity puts on life expectancy is decreasing over time.

Figure 3.10: Animation with countries per year with the ceiling line in red.
Figure 3.10 is an animated figure showing the time trends. In the figure, each data point is a country. The size of a data point refers to the country’s population size, and the color to the geographic region to which it belongs, e.g., yellow for the Sub-Saharan region, and violet for East Asian and Pacific region.
3.6.3 Interpretation
The interpretation of longitudinal analysis with NCA focuses on the change of the effect size and ceiling line over time. For example, Table 3.1 shows that the size of the necessity effect of economic prosperity for life expectancy reduces over time. This indicates that economic prosperity has become less of a bottleneck for high life expectancy. Figure 3.10 shows that this decrease of effect size is particularly due to the increase of the intercept (upward moving of the ceiling line). This indicates a rise of the maximum possible life expectancy for a given level of prosperity.

Figure 3.11: Scatter plot of Economic prosperity and Life expectancey for 1960 and 2019.
Figure 3.11 shows that in 1960 the maximum life expectancy for a prosperity of 3.4 (103.4 = 2500 equivalent US dollars) was about 65 years, and in 2019 it was about 75 years. The reduction of necessity is also partly due to the flattening of the ceiling line, indicating that the difference between the best performing less prosperous countries, and the best performing more prosperous countries, is diminishing. In 1960 countries with prosperity of 3.4 (2500 dollar) had a maximum possible life expectancy that was 10 years less than that for countries with prosperity of 4.4 (25000 dollar): 65 versus 75 years. However, in 2019 countries with prosperity of 3.4 (2500 dollar) had a maximum possible life expectancy that was only 5 years less than that for countries with prosperity of 4.4 (25000 dollar): 75 versus 80 years.
Another observation is that the density of countries near the ceiling line has increased over the years. This indicates that the relative differences in life expectancy between the more and less performing countries has reduced.
Socio-economic policy practitioners could probably make new interesting interpretations from these necessity trends. For example, in the past, economic prosperity was a major bottleneck for high life expectancy. Currently, most countries (but surely not all) are rich enough for having a decent life expectancy of 75 years; if these countries do not reach that level of life expectancy, other factors than economic prosperity are the reason that it is not achieved. In the future, economic prosperity may not be a limiting factor for high life expectancy when all countries have reached an GDP per capita of 2500 dollar and the empty space in the upper left corner has disappeared.
3.7 Set membership data
NCA can be used with set membership scores. This is usually done when NCA is combined with QCA. In QCA ‘raw’ variable scores are ‘calibrated’ into set membership scores with values between 0 and 1. A set membership score indicates to which extend a case belongs to the set of cases that have a given characteristic, in particular the \(X\) and the \(Y\). Several studies have been published that use NCA with set membership data (e.g., Torres & Godinho, 2022). These studies combine NCA with QCA for gaining additional insights (in degree) about the conditions that must be present in all sufficient configurations. Section 4.7 discusses how NCA can be combined with QCA.
3.8 Outliers
Outliers are observations that are “far away” from other observations. Outliers can have a large influence on the results of any data analysis, including NCA. In NCA an outlier is an ‘influential’ case or observation that has a large influence on the necessity effect size when removed.
3.8.1 Outlier types
Because the effect size is defined by the numerator ceiling zone divided by the denominator scope and an outlier is defined by its influence on the effect size, two types of outliers exist in NCA: an ‘ceiling zone outlier’ and a ‘scope outlier’.
A ceiling zone outlier is an isolated case in the otherwise empty corner of the scatter plot that reflects necessity (usually the upper left corner). Such case determines the location of the ceiling line, thus the size of the ceiling zone, and thus the necessity effect size. When a ceiling zone outlier is removed, it usually increases the ceiling zone and thus increases the necessity effect size.
A scope outlier is an isolated case that determines the minimum or maximum value of the condition or the outcome, thus the scope, and thus the necessity effect size. When a scope outlier is removed, it usually decreases the scope and thus increases the effect size.
When a case is both a ceiling zone outlier and a scope outlier, it determines the position of the ceiling and the minimum or maximum of value of \(X\) or \(Y\). When such case is removed it simultaneously decreases the ceiling zone and the scope. The net effect is often is a decrease of the necessity effect size.
When duplicate cases determine the ceiling line or the scope the effect size will not change when only one of the duplicate cases is removed. Single cases that have a duplicate have no influence on the effect size when removed, and therefore are no candidates for potential outliers, unless a duplicate set cases is defined as outlier and removed. Cases that are below the ceiling line and away from the extreme values of \(X\) and \(Y\) are not potential outliers.
It depends on the ceiling line technique which cases are candidates for potential ceiling zone outliers. The CE-FDH and CR-FDH ceiling techniques use the upper left corner points of the CE-FDH ceiling line (step function) for drawing the ceiling line. These upper left corner points are called ‘peers’. Therefore, the peers are potential outliers when these ceiling lines, which are the default lines of NCA, are used. The C-LP ceiling line uses only two points of the peers for drawing the ceiling line, and these points can therefore be potential ceiling zone outliers. The scope outliers do not depend on the ceiling technique.
3.8.2 Outlier identification
There are no scientific rules for deciding if a case is an outlier. This decision depends primarily on the judgment of the researcher. For a first impression of possible outliers, the researcher can visually inspect the scatter plot for cases that are far away from other cases. In the literature rules of thumb are used for identifying outliers. For example, a score of a variable is an outlier score ‘if it deviates more than three standard deviations from the mean’, or ‘if 1.5 interquartile ranges is above the third quartile or below the first quartile’. These pragmatic rules address only one variable (\(X\) or \(Y\)) at a time. Such single variable rules of thumb may be used for identifying potential scope outliers (unusual minimum and maximum values of condition or outcome). These rules are not suitable for identifying potential ceiling zone outliers. The reason is that ceiling zone outliers depend on the combination of \(X\) and \(Y\) values. For example, a case with a non-extreme \(Y\)-value may be a regular case when it has a large \(X\) value, because it does not define the ceiling. Then removing the case does not change the effect size. However, when \(X\) is small the case defines the ceiling and removing the case may change the effect size considerably. This means that both \(X\) and \(Y\) must be considered when identifying ceiling zone outliers in NCA.
No pragmatic bivariate outlier rules currently exist for NCA. Because a case is a potential outlier if it considerably changes the necessity effect size when it is removed, the researcher can first select potential outlier and then calculate the effect size change when the case is removed. If no clear potential outlier case can be identified, the researcher may decide that the data set does not contain outliers.
All potential ceiling zone outliers and potential scope outliers can be evaluated one by one by calculating the absolute and relative effect size changes when the case is removed (with replacement). An outlier may be identified if the change is ‘large’ –according to the judgment of the researcher–. Again, no scientific rules exist for what can be considered as a ‘large’ effect size change. In my experience single cases that change the effect size more than 30% when removed could be serious outliers, worth for a detailed further assessment. This does not mean that these cases are outliers, nor that single cases that change the effect size less than 30% are not outliers.
The NCA software from version 3.2.0 includes the nca_outliers function to evaluate potential outliers in a scatter plot. For illustration an outlier analysis is done with the example that is part of the NCA software to test the hypothesis that a country’s Individualism is necessary for a country’s Innovation performance. Data are available for 28 cases (countries).
library(NCA)
data(nca.example)
model <- nca_analysis(nca.example, 1,3)
nca_output(model, plots=TRUE, summaries =FALSE)The scatter plot with the two default ceiling lines is shown in Figure 3.12.
Figure 3.12: Scatter plot of nca.example
From visual inspection no clear outlier case that is very far away from the other case can be recognized.
The nca_outliers function can evaluate potential outliers in a scatter plot as follows:
## outliers eff.or eff.nw dif.abs dif.rel ceiling scope
## 1 Japan 0.42 0.55 0.14 32.7 X
## 2 USA 0.42 0.33 -0.09 -21.5 X X
## 3 Sweden 0.42 0.43 0.02 3.6 X
## 4 South Korea 0.42 0.40 -0.01 -3.0 X X
## 5 Finland 0.42 0.42 0.00 0.2 X
## 6 Mexico 0.42 0.42 0.00 0.1 X
The output table shows in the first column the case names of the potential outliers. The second column displays the original effect size when no cases are removed (eff.or) and the third column displays the new effect size when the outlier is removed (eff.nw). The fourth column shows the absolute difference (dif.abs) between the new and the original effect sizes, and the fifth column the relative difference (dif.rel) between the new and the original effect sizes expressed as a percentage. A negative sign means that the new effect size is smaller than the orginal effect size.
The output shows six potential outliers. The new effect sizes range from 0.33 to 0.55, absolute differences range from -0.09 to +0.14, and relative differences range from -21.5% to +32.7%. Five outliers are ceiling zone outliers and three are scope outliers. It is possible that a case can be both types of outlier. South Korea defines the ceiling line and is thus a potential ceiling zone outlier, and it also defines the minimum \(X\) and is a potential scope outlier. USA is also both a ceiling zone outlier and a scope outlier because it defines the ceiling line and the maximum \(X\) and the maximum \(Y\). Mexico does not define the ceiling line but defines the minimum \(Y\). Finland, Japan and Sweden define the ceiling line but not the minimum or maximum value of \(X\) or \(Y\).
For visual inspection of the outliers in the scatter plot, the plotly = TRUE argument in the nca_outliers function displays an interactive scatter plot with highlighted outliers (plot not shown here):
As expected, the three potential outliers that are only ceiling zone outliers (Finland, Japan, Sweden) increase the effect size when removed. Their absolute differences range from virtually 0 to 0.14, and their relative effect size differences from 0.2% to 32.7%. As expected, the potential outlier that is only an potential scope outlier (Mexico) increases the effect size when removed, but this influence is marginal. As expected, the two potential ceiling zone outliers that are also potential scope outliers reduce the effect size when removed (South Korea and USA) with absolute effect size differences of -0.01 and -.0.09, respectively, and relative effect size differences of -3.0% and - 21.5%, respectively. All other cases are no potential outliers because they have no influence on the effect size when removed.
The two default ceiling lines CE-FDH and CR-FDH have the same potential outliers. For other ceiling lines the outliers can be different. For example, the C-LP ceiling technique selects two cases for drawing the ceiling line, and therefore only these two cases can be potential ceiling zone outliers. The ceiling line can be specified with the ceiling argument in the nca_outliers function as follows:
## outliers eff.or eff.nw dif.abs dif.rel ceiling scope
## 1 Japan 0.16 0.33 0.16 101.0 X
## 2 USA 0.16 0.06 -0.11 -65.3 X X
## 3 South Korea 0.16 0.14 -0.02 -12.3 X X
## 4 Mexico 0.16 0.16 0.00 0.1 X X
Note that after a potential outlier is removed and the effect size difference is calculated, the case is added again to the data set before another potential outlier is evaluated (removing with replacement).
With the nca_outlier function it is also possible to evaluate two or more potential outliers at once by specifying k (= number of outliers). This evaluates the change of effect size when k potential outliers are removed at once. For example, a researcher can evaluate two potential outliers as follows:
## outliers eff.or eff.nw dif.abs dif.rel ceiling scope
## 1 Japan - Finland 0.42 0.59 0.18 42.3 X
## 2 Japan - South Korea 0.42 0.58 0.16 38.8 X X
## 3 Japan - Sweden 0.42 0.57 0.15 36.4 X
## 4 Japan - Austria 0.42 0.56 0.14 34.0 X
## 5 Japan - Mexico 0.42 0.55 0.14 32.9 X X
## 6 Japan 0.42 0.55 0.14 32.7 X
## 7 Japan - Portugal 0.42 0.55 0.14 32.7 X
## 8 Japan - Greece 0.42 0.55 0.14 32.7 X
## 9 Japan - Spain 0.42 0.55 0.14 32.7 X
## 10 Japan - Germany 0.42 0.55 0.14 32.7 X
## 11 Japan - Switzerland 0.42 0.55 0.14 32.7 X
## 12 Japan - Australia 0.42 0.55 0.14 32.7 X
## 13 Japan - Turkey 0.42 0.55 0.14 32.7 X
## 14 USA - Sweden 0.42 0.30 -0.12 -28.3 X X
## 15 USA - South Korea 0.42 0.31 -0.10 -24.9 X X
## 16 USA 0.42 0.33 -0.09 -21.5 X X
## 17 USA - Portugal 0.42 0.33 -0.09 -21.5 X X
## 18 USA - Greece 0.42 0.33 -0.09 -21.5 X X
## 19 USA - Spain 0.42 0.33 -0.09 -21.5 X X
## 20 USA - Austria 0.42 0.33 -0.09 -21.5 X X
## 21 USA - Germany 0.42 0.33 -0.09 -21.5 X X
## 22 USA - Switzerland 0.42 0.33 -0.09 -21.5 X X
## 23 USA - Turkey 0.42 0.33 -0.09 -21.5 X X
## 24 USA - Mexico 0.42 0.33 -0.09 -21.4 X X
## 25 USA - Finland 0.42 0.33 -0.09 -21.3 X X
## # Not showing 44 possible outliers
The output shows the combinations of two potential outliers with the largest influence on the effect size when the combination is removed. The output also include single potential outliers when the single potential outlier has a similar influence on the effect size as combinations of potential outliers. A combination of more than 2 outliers is also possible; for larger data sets this may increase the computation time may considerably.
A potential outlier combination consists always of a single ceiling outliers or a single scope outlier (or both) as indicated in the output. When more k > 1 the plotly scatter plot only shows the single outliers in red as for k = 1.
From the example it appears that Japan is the most serious potential outlier.
3.8.3 Outlier decision approach
After a potential outlier is identified, the next question is what to do with it. NCA employs a two step approach for making a decision about an outlier. In the first step it is evaluated whether the outlier is caused by a sampling or measurement error. In the second step it is decided if an ‘outlier for unknown reasons’ should be part of the phenomenon (using the deterministic perspective on necessity) or should be considered an exception (using the typicality perspective on necessity, see Dul, 2024a).
Figure 3.13: Outlier decision tree for Step 1 of the outlier decision approach.
The decision tree for the first step of NCA’s outlier decision approach is illustrated in Figure 3.13. First, the potential outlier case is selected. Next it is evaluated for sampling error. Sampling error refers a case that is not part of the theoretical domain of the necessity theory that is hypothesized by the researcher. For example, the case may be a large company, whereas the necessity theory applies to small companies only. A outlier case that is a sampling error should be removed from further analysis. If there is no sampling error, the potential outlier case may have measurement error. The condition or the outcome may have been incorrectly scored, which could happen for a variety of reasons. If there is measurement error but the error can be corrected, the outlier case becomes a regular case is kept for the analyses. If the measurement error cannot be corrected two situations may apply. If the measurement error is in the score of the outcome, the case should be removed from further analysis of all necessary conditions (if there are multiple necessary conditions). If the measurement error is in the score of the condition value, the case should be removed from further analysis of that condition, but the researcher may want to keep the case for the analysis of other conditions (as the case may not be an outlier for other conditions). If the the outlier is not caused by sampling error or measurement error or if no information about sampling error or measurement error is available, the outlier may be considered an ‘outlier for unknown reasons’. The researcher may then decide to apply an outlier rule that decides whether the case is kept or removed. Existing mono-variate outlier rules may be used for scope outliers in NCA. For example, a case may be considered an outlier if it is three standard deviations away from the mean of the condition or the outcome. For bi-variate ceiling outliers no generally accepted outlier rule exists. Such outlier rule may be stated by the researcher, for example based on the magnitude of the absolute or relative effect size changes when the case is removed (see section 3.8.2). Outlier rules should be specified and justified. If no outlier rule is applied the potential outlier case is kept and the next step of NCA’s outlier decision approach begins.
Figure 3.14: Outlier decision tree for for Step 2 of the outlier decision approach.
The decision tree for the second step is illustrated in Figure 3.14. The second step starts with the researcher’s decision about the causal necessity perspective. Two perspectives are distinguished for necessity causality (Dul, 2024a). The deterministic perspective can be formulated as ‘if \(X\) then always \(Y\)’. This perspective does not allow exceptions. An outlier for unknown reasons is then considered to be part of the phenomenon of interest, and the analysis is done with the outliers. The typicality perspective can be formulated as ‘if \(X\) then typically \(Y\)’. This perspective does allows exceptions. An outlier for unknown reasons is then considered to be an exception. The analysis is done without the outlier. When reporting the results, the exceptions are discussed as well.
It is the choice of the researcher to adopt a deterministic or typicality perspective on NCA. Handling an outlier is a decision made by the researcher. If another outlier decision is plausible as well, it is advised to perform a robustness check to evaluate the sensitivity of the results (see section 4.4).
Chapter 4 Data analysis
4.1 Visual inspection of the scatter plot
The starting point for NCA’s data analysis is a visual inspection of the \(XY\) scatter plot. This is a qualitative examination of the data pattern. By visual inspection the following questions can be answered:
- Is the expected corner of the \(XY\) plot empty?
- What is an appropriate ceiling line?
- What are potential outliers?
- What is the data pattern in the rest of plot?
Visual inspection of the scatter plot is illustrated with nca.example, in particular for testing of the hypothesis that Individualism is necessary for Innovation performance. Figure 4.1 shows the scatter plot of Individualism versus Innovation performance with all 28 cases as black dots.
Figure 4.1: Scatter plot of Individualism and Innovation performance for evaluating the empty space, the appropriateness of the ceiling line, potential outliers, and the density of the cases in relevant areas.
4.1.1 Is the expected corner empty?
According to the hypothesis a high level of \(X\) is necessary for a high level of \(Y\) such that the upper left corner is expected to be empty. Figure 4.1 shows that cases with a low value of \(X\) have a low value of \(Y\), and that cases with a high value of \(Y\) have a high value of \(X\). The upper left corner is indeed empty. NCA’s effect size quantifies the size of the empty area in the scatter plot. After visual inspection the size of the empty space can be obtained with the NCA software by using the summaries argument of the nca_output function.
4.1.2 What is an appropriate ceiling line?
The ceiling line represents the border between the area with cases and the area without cases. Figure 4.1 shows the two default ceiling lines. The CR-FDH ceiling is often selected when the border is theoretically assumed to be linear, or when the condition and outcome have many levels (e.g., are continuous). The CE-FDH ceiling is often selected when the condition or outcome have few levels (e.g., are discrete). When the decision about the ceiling line is not made a priori the ceiling line can be selected by visual inspection of the scatter plot. When de border looks linear the CR-FDH line may be selected, and when it looks non-linear the CE-FDH line may be the best choice. After visual inspection the appropriateness of the ceiling line may be verified with the NCA’s ceiling accuracty and fit measures. Ceiling accuracy is the percentage of cases on or below the ceiling line. The ceiling accuracy of an appropriate ceiling line is close to 100%. NCA’s fit measure is the effect size of a selected ceiling as a percentage of the effect size of the CE-FDH line. The selected ceiling line may be inappropriate when fit deviates considerably from 100%. Ceiling accuracy and fit can be obtained with the NCA software by using the summaries argument of nca_output function.
4.1.3 What are potential outliers?
Outliers are cases that are relatively ‘far away’ from other cases. These cases can be identified by visual inspection of the scatter plot. In NCA potential outliers are the cases that construct the ceiling line (‘ceiling outliers’) and the cases that construct the scope (‘scope outliers’). NCA defines an outlier as a case that has a large influence on the effect size when removed (see Section 3.8). After visual inspection, potential outliers can be verified with the NCA software by using the nca_outlier function.
4.1.4 What is the data pattern in the rest of plot?
Although NCA focuses on the empty area in the scatter plot, the full space can also be informative for necessity. In particular the density of cases in other corners, the density of cases near the scope limits, and the density of cases near the ceiling line contain relevant information for necessity.
4.1.4.1 Density of cases in other corners
The presence of many cases in the lower left corner, thus cases with a low value of \(X\) that do not show a high value of \(Y\), is supportive for the necessary condition hypothesis. Similarly, the presence of many cases in the upper right corner, thus cases with a high value of \(X\) that show a high value of \(Y\), is also supportive for the necessary condition hypothesis. If only a few cases were present in these corners the emptiness of the upper left corner could be a random result. This also applies when the majority of cases are in the lower right corner. After visual inspection, the randomness of the empty space (when the variables are unrelated) is identified with NCA’s statistical test that is part of the NCA software. The NCA’s p value can be obtained by using the test.rep argument in the nca_analysis function and by subsequently by using the summaries argument in the nca_output function.
Although NCA focuses on the emptiness of the corner that is expected to be empty according to the hypothesis, it is also possible to explore the emptiness of other corners. When theoretical support is available, the emptiness of another corner could be formulated as an additional necessary condition hypothesis. Such hypothesis is formulated in terms of the absence or a low value of \(X\) or \(Y\) (see Section 2.6). After visual inspection, any corner in the scatter plot can be evaluated with the NCA software by using the corner argument in the nca_analysis function.
4.1.4.2 Density of cases near the scope limits
Cases near the scope limit of \(X = X_{max}\) have met the necessary condition of a high level of \(X\) being necessary for a high level of \(Y\). For certain levels of \(X > X_c\), where \(X_c\) is the intersection between the ceiling line and the line \(Y = Y_{max}\), \(X\) is not necessary for \(Y\) (‘condition inefficiency’). When most cases are in the condition inefficiency area \(X_c < X < X_{max}\), the necessary condition could be considered as ‘trivial’. Most cases have met the necessary condition, whereas only a few cases have not.
Cases near the scope limit of \(Y = Y_{min}\) have a low level of the outcome. Up to a level \(Y = Y_c\), where \(Y_c\) is the intersection between the ceiling line and the line \(X = X_{min}\), \(Y\) is not constrained by \(X\) (‘outcome inefficiency’). When most cases are in the outcome inefficiency area \(Y_{min} < Y < Y_c\), the necessary condition could be considered ‘irrelevant’; the condition is not constraining the outcome in that area. The condition and outcome inefficiencies can be obstained with the NCA software by using the summaries argument of nca_output function.
4.1.4.3 Density of cases near the ceiling line
Cases near the ceiling line will be able to achieve a higher outcome unless the necessary condition increases. These cases can be considered as “best cases” (assuming that the outcome is desirable, and the condition is an effort). For a given level of the condition the maximum possible outcome for that level of condition is achieved by other unknown variables). Thus, for a certain level of the condition, cases near the ceiling have achieved a relatively high level of the outcome compared to cases with similar level of the condition. Furthermore, cases near the outcome ‘support’ the estimation of the ceiling line. With many cases near the ceiling line, the support of the ceiling line is high.
4.2 The ‘empty space: Necessary condition ’in kind’
Necessary condition hypotheses are qualitative statements like ‘\(X\) is necessary for \(Y\)’. The statement indicates that it is impossible to have \(Y\) without \(X\). Consequently, if the statement holds, the space corresponding to having \(Y\) but not \(X\) in an \(XY\) plot or contingency table does not have observations, thus is empty. To calculate the size of the empty space, NCA draws a border line (ceiling line) between the empty space without observation and the full space with observations. The size of the empty space relative to the full space is the effect size and indicates the constraint that \(X\) poses on \(Y\). When the effect size is relevant (e.g., \(d > 0.1\)), and when the empty space is unlikely to be a random result of unrelated \(X\) and \(Y\) (e.g., \(p < 0.05\)), the researcher may conclude that there is empirical evidence for the hypothesis. Thus, after having evaluated theoretical support, the effect size and the p value, the hypothesis ‘\(X\) is necessary for \(Y\)’ may be supported. This hypothesis is formulated in a qualitative way and describes the necessary condition in kind. The effect size and its p value can be produced with the NCA software using the nca_analysis function.
Even for small samples, NCA can estimate an effect size an a relevant p value. An effect size can be calculate for a sample size \(N > 1\) (at least two cases must be available) and a relevant p value can be calculated when for a sample size \(N > 3\). The reasons for these thresholds are as follows. NCA’s effect size can be calculated as long as is a ceiling line can be drawn in the \(XY\) plot. NCA estimates the ceiling line from empirical data and for drawing a line at least two points are needed (\(N = 2\)). NCA assumes that the ceiling line is not pure horizontal and not pure vertical (although the CE-FDH step function has horizontal and vertical parts). When the ceiling line represents the situation that the presence or high value of \(X\) is necessary for the presence or high value of Y, the empty space is located in the upper left corner of the scatter plot. For \(N = 2\) the first case is in the lower left corner (\(x = 0, y = 0\)), and the second case is in the upper right corner (\(x = 1, y = 1\)). Then the effect size is 1 (CE-FDH). For all other situations with \(N = 2\), the effect size is 0 or not defined (pure horizontal or pure vertical line). For calculating the p value, NCA’s statistical test (see Section 6.2) compares the effect size of the observed sample (with \(N\) observed cases) with the effect sizes of created samples with \(N\) fictive cases when \(X\) and \(Y\) are unrelated. Fictive cases that represent non-relatedness between \(X\) and \(Y\) are obtained by combining observed \(X\) values with observed \(Y\) values into new samples. The total number of created samples with a unique combination (permutations) of fictive cases is \(N!\) (\(N\) factorial). Only one of the permutations corresponds to the observed sample. For each sample the effect size is calculated. The p value is then defined as the probability (p) that the effect size of the observed sample is equal to or larger than the effect size of all samples. If this probability is small (e.g., \(p < .05\)), a ‘significant’ result is obtained. This means that the observed sample is unlikely the result of a random process of unrelated variables (the null hypothesis is rejected), suggesting support for an alternative hypothesis.
For example, for a sample size of \(N = 2\) the total number of unique samples or permutations (including the observed sample) is \(1 * 2 = 2\). When the observed sample consists of case 1 \((x_1,y_1)\) and case 2 \((x_2,y_2)\) then the observed \(x\)-values \((x_1,x_2)\) and the observed \(y\)-values \((y_1,y_2)\) can be combined into two unique samples of size \(N = 2\): the observed sample with observed case 1 \((x_1,y_1)\) and observed case 2 \((x_2, y_2)\), and the alternative created sample of \(N = 2\) with two fictive cases \((x_1,y_2)\) and \((x_2, y_1)\). For example, when the observed sample has case 1 is \((0,0)\) and case 2 is \((1,1)\) the observed effect size is 1. The effect size of the alternative sample has the cases \((1,0)\) and \((0,1)\) with effect size is 0. The probability that the effect size of the observed sample is equal to or larger than the effect sizes of the two sample is 1 in 2, thus \(p = 0.5\). This means that the effect size of 1 is a ‘non-significant’ result because the probability that the observed effect size is caused by unrelated variables is not small enough (not below 0.05).
Similarly, for sample size \(N = 3\) the total number of unique samples is \(1 * 2 * 3 = 6\), and the smallest possible p value is \(1/6 = 0.167\), for \(N = 4\) the total number of unique samples is \(1 * 2 * 3 * 4 = 24\), and the smallest possible p value is \(1/24 = 0.042\), and for \(N = 5\) the total number of unique samples is \(1 * 2 * 3 * 4 * 5 = 120\), and the smallest possible p value is \(1/120 = 0.008\), etc. Thus, only from \(N = 4\) it is possible to obtain a p value that is small enough for making conclusions about the ‘statistical significance’ of an effect size.
When sample size increases, the total number of unique samples increases rapidly, and the possible p value decreases rapidly. For \(N = 10\) the total number of samples (permutations) is 3628800 and the corresponding possible p value is smaller than 0.0000003. For \(N = 20\) is the total number of samples is a number of 19 digits with a corresponding possible p value that has 18 zero’s after the decimal point. When N is large the computation of the effect sizes of all samples (permutations) requires unrealistic computation times. Therefore, NCA uses a random sample from all possible samples and estimates the p value with this selection of samples. Therefore, NCA’s statistical test is an ‘approximate permutation test’. In the NCA software this test is implemented with the test.rep argument in the nca_analysis function to provide the number of samples to be analyzed, for example 10000 (the larger the more precision but also more computation time). When the test.rep value is larger than \(N!\) (which is relevant for small N), the software selects all \(N!\) samples for the p value calculation.
The NCA software can also be used for estimating the effect size and p value for small N.
4.3 The bottleneck table: Necessary conditions ‘in degree’
For additional insights, a necessity relationship can be formulated in a quantitative way: the necessary condition in degree: “level of \(X\) is necessary for level of \(Y\)”. The bottleneck table is a helpful tool for evaluating necessary conditions in degree. The bottleneck table is the tabular representation of the ceiling line. The first column is the outcome \(Y\) and the next columns are the necessary conditions. The values in the table are levels of \(X\) and \(Y\) corresponding to the ceiling line.
By reading the bottleneck table row by row from left to right it can be evaluated for which particular level of \(Y\), which particular threshold levels of the conditions \(X\) are necessary. The bottleneck table includes only conditions that are supposed to be necessary conditions in kind. Conditions that are not supposed to be necessary (e.g., because the effect size is too small or the p value too large) are usually excluded from the table ((see Section 4.8). The bottleneck table can be produced with the NCA software using the argument bottlenecks = 'TRUE' in the nca_output function.
Figure 4.2 shows the software output of a particular bottleneck table (Dul, Hauff, et al., 2021) showing two personality traits of sales persons that were identified as necessary conditions for Sales performance (\(Y\)): Ambition (\(X_1\)) and Sociability (\(X_2\)) because there is theoretical support for it, the effect sizes are relatively large (d > 0.10), and the p values are relatively low (p < 0.05).
Figure 4.2: Bottleneck table with two necessary conditions for sales performance (Adapted from Dul, Hauff, et al., 2021). NN = not necessary.
The example shows that up to level 40 of Sales performance, Ambition and Sociability are not necessary (NN). For level 50 and 60 of Sales performance only Ambition is necessary and for higher levels of Sales performance both personality traits are necessary. For example, for a level of 70 of Sales performance, Ambition must be at least 29.4 and Sociability at least 23.2. If a case (a sales person) has a level of a condition that is lower than the threshold value, this person cannot achieve the corresponding level of Sale performance. The condition is a bottleneck. For the highest level of Sales performance, the required threshold levels of Ambition and Sociability are 66.8 and 98.4 respectively.
4.3.1 Levels expressed as percentage of range
Figure 4.2 is an example of a default bottleneck table produced by the NCA software. This table has 11 rows with levels of \(X\) and \(Y\) expressed as ‘percentage.range’. The range is the maximum level minus the minimal level. A level of 0% of the range corresponds to the minimum level, 100% the maximum level, and 50% the middle level between these extremes. In the first row, the \(Y\) level is 0% of the \(Y\) range, and in the eleventh row it is 100%. In the default bottleneck table the levels of \(Y\) and \(X\)’s are expressed as percentages of their respective ranges.
4.3.2 Levels expressed as actual values
The levels of \(X\) and \(Y\) in the bottleneck table can also be expressed as actual values. Actual values are the values of \(X\) and \(Y\) as they are in the original dataset (and in the scatter plot). This way of expressing the levels can help to compare the bottleneck table results with the original data and with the scatter plot results. Expressing the levels of \(X\) with actual values can be done with the argument bottleneck.x = 'actual' in the nca_analysis function of the NCA software, and the actual values of \(Y\) can be shown in the bottleneck table with the argument bottleneck.y = 'actual'.
One practical use of a bottleneck table with actual values is illustrated with the example of sales performance. Figure 4.3 combines the bottleneck table with the scatter plots.
Figure 4.3: Left: Bottleneck table with two necessary conditions for sales performance. Right: The red dot is a specific sales person with sales performance = 4, Ambition = 65 and Sociability = 59 (Adapted from Dul, Hauff, et al., 2021). NN = not necessary.
The actual values of Sales performance range from 0 to 5.5, and for both conditions from 0 to 100. The left side of Figure 4.3 shows that up to level of 2 of Sales performance, none of the conditions are necessary. The scatter plots shows that cases with very low level of Ambition or Sociability still can achieve a level of 2 of Sales performance. However, for level 4 of Sales performance Ambition must be at least 33 and Sociability at least 29. The scatter plot shows that several cases have not reached these threshold levels of the conditions. This means that these cases do not reach level 4 of Sales performance. The scatter plots also show that cases exist with (much) higher levels of the conditions than these threshold levels and yet do not reach level of 4 of Sales performance: Ambition and Sociability are necessary, but not sufficient for Sales performance.
The right side of Figure 4.3 shows a particular case with Sales performance level 4, Ambition level 65 and Sociability level 59. For this person Sociability is the bottleneck for moving from level 4 to level 5 of Sales performance. Level 5 of Sales performance requires level 55 of Ambition and this is already achieved by this person. However, the person’s level of Sociability is 59 and this is below the threshold level that is required for level 5 of Sales performance. For reaching this level of Sales performance, this person must increase the level of Sociability (e.g., by training). Improving the Ambition without improving Sociability has no effect and is a waste of effort. For other persons, the individual situation might be different (e.g., Ambition but not Sociability is the bottleneck, both are bottlenecks, or none is a bottleneck). This type of bottleneck analysis allows the researcher to better understand the bottlenecks of individual cases and how to act on individual cases.
4.3.3 Levels expressed as percentiles
The levels of \(X\) and \(Y\) can also be expressed as percentiles. This can be helpful for selecting ‘important’ necessary conditions when acting on a group of cases. The percentile is a score where a certain percentage of scores fall below that score. For example, 90 percentile of \(X\) is a score of \(X\) that is so high that 90% of the observed \(X\)-scores fall below that \(X\)-score. Similarly, 5 percentile of \(X\) is a score of \(X\) that is so low that 5% of the observed \(X\)-scores fall below that \(X\)-score.
The bottleneck can be expressed with percentiles by using the argument bottleneck.x = 'percentile' and/or bottleneck.y = 'percentile' in the nca_analysis function of the NCA software. Figure 4.4 shows the example bottleneck table with the level of \(Y\) expressed as actual values, and the level of the \(X\)s as percentiles.
Figure 4.4: Bottleneck table with levels of \(Y\) expressed as actual and levels of \(X\) as percentiles. Between brackets are the cumulative number of cases that have not reached the threshold levels. The total number of cases is 108. (Adapted from Dul, Hauff, et al., 2021).
A percentile level of \(X\) corresponds to the percentage of cases that are unable to reach the threshold level of \(X\) and thus the corresponding level of \(Y\) in the same row. If in a certain row (e.g., row with \(Y\) = 3) the percentile of \(X\) is small (e.g., 4% for Ambition), only a few cases (4 of 108 = 4%) where not able to reach the required level of \(X\) for the corresponding level of \(Y\). If the percentile of \(X\) is large (e.g., row with \(Y\) = 5.5), many cases where not able to reach the required level of \(X\) for the corresponding level of \(Y\): 68 of 108 = 63% for Ambition and 106 of 108 = 98% for Sociability. Therefore, the percentile for \(X\) is an indication of the ‘importance’ of the necessary conditions: how many cases were unable to reach the required level of the necessary condition for a particular level of the outcome. When several necessary conditions exist, this information may be relevant for prioritizing a collective action on a group of cases by focusing on bottleneck conditions with high percentile values of \(X\).
Further details of using and interpreting the bottleneck table in this specific example can be seen in this video.
4.3.4 Levels expressed as percentage of maximum
The final way of expressing the levels of \(X\) and \(Y\) is less commonly used. It is possible to express levels of \(X\) and \(Y\) as percentage of their maximum levels. The bottleneck table can be expressed with percentage of maximum by using the argument bottleneck.x = 'percentage.max' or bottleneck.y = 'percentage.max' in the nca_analysis function of the NCA software.
4.3.5 Interpretation of the bottleneck table with other corners
The above sections refer to analyzing the upper left corner in the \(XY\) plot, corresponding to the situation that the presence or a high value of \(X\) is necessary for the presence or a high value of \(Y\). Then, when \(X\) is expressed as ‘percentage range’, ‘actual value’ or ‘percentage maximum’ the bottleneck table shows the minimum required level of \(X\) for a given value of \(Y\). When \(X\) is expressed as ‘percentiles’, the bottleneck table shows the percentage of cases that are unable to reach the required level of \(X\) for a given value of \(Y\).
The interpretation of the bottleneck table is different when other corners than the upper left corner are analysed (see Section 1.3).
4.3.5.1 Interpretation of the bottleneck table with corner = 2
For corner = 2, the upper right corner is empty suggesting that the absence or low value of \(X\) is necessary for the presence or high value of \(Y\). This means that for a given value of \(Y\), the value of \(X\) must be equal to or lower than the threshold value according to the ceiling line. When \(X\) is expressed as ‘percentage range’, ‘actual value’ or ‘percentage maximum’ the bottleneck table shows the maximum required level of \(X\) for a given value of \(Y\). In other words, for each row in the bottleneck table (representing the target level of \(Y\)), the corresponding level of \(X\) must be at most the level mentioned in the bottleneck table. When \(X\) is expressed as ‘percentiles’, the bottleneck table still shows the percentage and number of cases that are unable to reach the required level of \(X\) for a given value of \(Y\).
4.3.5.2 Interpretation of the bottleneck table with corner = 3
For corner = 3, the lower left corner is empty suggesting that the presence or high value of \(X\) is necessary for the absence or low value of \(Y\). This means that for a given value of \(Y\), the value of \(X\) must be equal to or higher than the threshold value according to the ceiling line. When \(X\) is expressed as ‘percentage range’, ‘actual value’ or ‘percentage maximum’ the bottleneck table shows the minimum required level of \(X\) for a given value of \(Y\). In other words, for each row in the bottleneck table (representing the target level of \(Y\)), the corresponding level of \(X\) must be at least the level mentioned in the bottleneck table. However, the first column in the bottleneck table (representing \(Y\)) is now reversed. The first row has a high \(Y\) value and the last row has the low values as the target outcome is low. When percentages are used for \(Y\) (percentile or percentage of maximum) then 0% corresponds to a highest level of \(Y\) and 100% to the lowest level of \(Y\). When \(X\) is expressed as ‘percentiles’, the bottleneck table still shows the percentage and number of cases that are unable to reach the required level of \(X\) for a given value of \(Y\).
4.3.5.3 Interpretation of the bottleneck table with corner = 4
For corner = 4, the lower right corner is empty suggesting that the absence or low value of \(X\) is necessary for the absence or low value of \(Y\). This means that for a given value of \(Y\), the value of \(X\) must be equal to or lower than the threshold value according to the ceiling line. When \(X\) is expressed as ‘percentage range’, ‘actual value’ or ‘percentage maximum’ the bottleneck table shows the maximum required level of \(X\) for a given value of \(Y\). In other words, for each row in the bottleneck table (representing the target level of \(Y\)), the corresponding level of \(X\) must be at most the level mentioned in the bottleneck table. However, the first column in the bottleneck table (representing \(Y\)) is now reversed. The first row has a high \(Y\) value and the last row has the low values as the target outcome is low. When percentages are used for \(Y\) (percentile or percentage of maximum) then 0% corresponds to a highest level of \(Y\) and 100% to the lowest level of \(Y\). When \(X\) is expressed as ‘percentiles’, the bottleneck table still shows the percentage and number of cases that are unable to reach the required level of \(X\) for a given value of \(Y\).
4.3.6 NN and NA in the bottleneck table
A NN (Not Necessary) in the bottleneck table means that \(X\) is not necessary for \(Y\) for the particular level of \(Y\). With any value of \(X\) it is possible to achieve the particular level of \(Y\).
An NA (Not Applicable) in the bottleneck table is a warning that it is not possible to compute a value for the \(X\). There are two possible reasons for it, the first more often than the second:
The maximum possible value of the condition for the particular level of \(Y\) according to the ceiling line is lower than the actually observed maximum value. This can happen for example when the CR ceiling (which is a trend line) runs at \(X\) = \(X_{max}\) (which is the right vertical line of the scope in the scatter plot) under the line \(Y\) = \(Y_{max}\) (which is the upper horizontal line of the scope). If this happens the researcher can either explain why this NA appears in the bottleneck table, or can change NA into the highest observed level of \(X\). The latter can be done with the argument
cutoff = 1in thenca_analysisfunction.In a bottleneck table with multiple conditions, one case determines the \(Y_{max}\) value and that case has a missing value for the condition with the NA (but not for another condition). When all cases are complete (have no missing values) or when at least one case exist that has a complete observation (\(X\), \(Y_{max}\)) for the given condition, the NA will not appear. The action to be taken is either to explain why this NA appears, or to delete the incomplete case from the bottleneck table analysis (and accept that the \(Y_{max}\) in the bottleneck table does not correspond to the actually observed \(Y_{max}\)).
4.4 Robustness checks
When conducting empirical research, a researcher must make a variety of theoretical and methodological choices to obtain results. Often, also other plausible choices could have been made. In a robustness check the sensitivity of the results of other plausible choices is evaluated. The check focuses on the sensitivity of the main estimates and the researcher’s main conclusion (e.g., about a hypothesis). Evaluating the robustness of a result is therefore a good practice for any empirical research method. For example, in regression analysis the regression coefficient is a main estimate that can be sensitive for inclusion or exclusion of potential confounders in the regression model (model specification) (X. Lu & White, 2014) or for the selection of the functional form of the regression equation (linear or non-linear). Another example of a researcher’s choice is the threshold p value (e.g., \(p = 0.05\) or \(p = 0.01\)) for (non)rejection of the hypothesis (Benjamin et al., 2018). In NCA, the effect size and the p value are two main estimates for concluding whether a necessity relationship is credible. These estimates can be sensitive for several choices. Some choices are outside the realm of NCA, for example choices related to the data that are used as input to NCA (research design, sampling, measurement, pre-processing of data) or the threshold level of statistical significance. Other choices are NCA-specific, such as the choice of the ceiling line (e.g., CE-FDH or CR-FDH), the choice of the scope (empirical or theoretical), the threshold level of the necessity effect size (e.g., 0.1 or 0.2), and the handling of NCA-relevant outliers (keep or remove). All these choices have an effect on the necessity in kind conclusion whether or not a condition is necessary. A robustness check for necessity in degree evaluates the effect on the number of bottleneck cases (cases that are unable to achieve the required level of the condition for the target level of the outcome.
This section discuss these researcher’s choices that are candidates for a robustness check. The selected candidates are coices regarding ceiling line, threshold levels of the d value and the p value, scope and outliers. The section introduces the NCA robustness table. This table shows the influence of researcher’s choices on the main NCA results.
4.4.1 Choice of ceiling line
In NCA model specification refers to the variables that are selected as potential necessary conditions. Functional form refers to the form of the ceiling line. NCA is a (multiple) bivariate analysis where the inclusion or exclusion of other variables does not affect the results. However, the functional form of the necessity model may affect the results. The two default ceiling lines are linear (straight line CR-FDH) and piece-wise linear (step function CE-FDH), and the NCA results depend on the choice of the ceiling line. The researcher usually selects the ceiling line based on the type of data (discrete or continuous) or on whether the expected or observed pattern of the border between the area with and without data is linear or non-linear. For example, when the data has a small number of discrete levels with a jumpy border, the researcher may decide to select the CE-FDH ceiling line. When the researcher assumes a linear ceiling line in the population, the straight ceiling line CR-FDH may be selected. The choice of the ceiling line is partly subjective because there are no hard criteria for the best ceiling form (see also Section 6.3.3). Therefore, a robustness check with another plausible ceiling line is warranted. When the selected ceiling line is obviously the best choice (e.g., CE-FDH when the condition or outcome is dichotomous), it makes no sense to mechanistically select another line (e.g., CR-FDH) as this is not a reasonable alternative. If other ceiling line choices are also plausible, it makes sense to check the effect of this other choice. For example, Figure 4.5 shows the scatter plot with the two default ceiling lines for testing the hypothesis that in Western countries a culture of individualism is necessary for innovation performance (Dul, 2020).
Figure 4.5: Example of a ceiling line robustness check: Comparing the results of two ceiling lines.
In this example the choice of the ceiling line is not obvious. As suggested in Dul (2020) a robustness check could consist of performing the analysis with both ceiling lines and comparing the results. The results for the CE-FDH ceiling line are \(d = 0.58\) and \(p = 0.002\), and for the CR-FDH ceiling line are \(d = 0.51\) and \(p = 0.003\). Given the researcher’s other choices (e.g., effect size threshold = 0.1; p value threshold = 0.05) the ceiling line robustness check consists of evaluating whether the researcher’s conclusion about the necessity hypothesis remains the same (robust result) or differs (fragile result). In this case both ceiling lines produce the same conclusion regarding necessity in kind: the necessity hypothesis is supported, which suggests that this is a robust result.
In the situation of a dichotomous necessary condition where the condition or the outcome (or both) have only two values, the only feasible ceiling line is the CE_FDH ceiling line. The CR_FDH ceiling line is not a plausible alternative as it does not fit the step-wise data pattern, and the results are already known: the CR_FDH effect size is half of the CE_FDH effect size, whereas the p values are the same. In this situation, the robustness check should exclude selecting another ceiling line.
Regarding necessity in degree the bottleneck tables (with outcome and conditions expressed as percentiles) shows that the results are more variable. For example, Figure ?? shows that for a “high” level of the outcome that can only be achieved by 25% of the cases (75th percentile), 32% of the cases (8 cases) cannot achieve the required level for the condition individualism when the CE-FDH line is used, whereas 20% of the cases (5 cases) cannot achieve when the CR-FDH line is used.
Figure 4.6: Bottleneck tables of for two ceiling lines.
4.4.2 Choice of the threshold level of the effect size
The researcher could also have made another choice for the effect size threshold level. If the threshold level is changed from the common 0.1 value (“small effect”) to a larger value of 0.2 (“medium effect”), the conclusion about necessity would not change. Since the observed effect size is verly large, the robustness check of effect size threshold suggests a robust result.
4.4.3 Choice of the threshold level of the p value
The researcher could also have made another choice for the p value threshold level. If the threshold level is changed from the common 0.05 value to a smaller value of 0.01, the conclusion about necessity would not change. Singe the estimated p values is very small, the robustness check of effect size threshold suggests a robust result.
4.4.4 Choice of the scope
Whereas regression analysis assumes that the variables of the regression model are unbounded (can have values between minus and plus infinity, see Section 4.5), NCA assumes that the variables in the necessity model are bounded (have minimum and maximum values). As a default the NCA selects the bounds based on the observed minimum and maximum values of the condition and the outcome to define the ‘empirical scope’. However, it is also possible to conduct NCA with a theoretically defined scope (‘theoretical scope’). The robustness of the result could be checked by selecting another plausible scope (‘theoretical scope’) than the default empirical scope, or when the original choice was a theoretical scope to select the empirical scope or a different theoretical scope. For example, the researcher may have selected the empirical scope for an analysis with variables measured with a Likert scale, but the scale’s minimum and maximum values are not used. Then the researcher can conduct a robustness check with a theoretical scope defined with the extreme values of the scale. Changing the scope for a larger theoretical scope generally results in a larger effect size. Therefore, such change may affect the researcher’s original conclusion that the hypothesis is rejected, but will not change an original conclusion that the hypothesis is supported. The latter is shown in Figure 4.7. The scatter plot has a theoretical scope that is larger than the empirical scope. The condition ranges from 20 to 100 and the outcome from 0 to 120. The effect size for the CE-FDH ceiling line has increased from \(d = 0.58\) (\(p = 0.002\)) to \(d = 0.61\) (\(p = 0.002\)). Changing a theoretical scope for a smaller scope generally results in a smaller effect size. Such change may affect the researcher’s original conclusion that the hypothesis is supported, but will not change an original conclusion that the hypothesis is rejected.
Figure 4.7: Example of a scope robustness check: Comparing the results with the empirical and the theoretical scope (difference is shaded).
When the researcher would have selected a theoretical scope for the analysis and changes that for a smaller theoretical scope, the effect size will be smaller and may also affect the researcher’s conclusion about the hypothesis from ‘rejected’ to ‘not rejected’.
4.4.5 Choice of outlier removal
A removal of outliers potentially has a large influence on the results as NCA results can be sensitive for outliers (see Section 3.8). Ceiling outliers (outliers that define the ceiling line) and scope outliers (outliers that define the scope) usually increase the effect size when removed. For example, in Figure 4.10 Finland is a potential ceiling outlier that increases the CE-FDH effect size from 0.58 (\(p = 0.002\)) to 0.62 (\(p = 0.001\)) and Mexico is a potential scope outlier that increases the effect size slightly. However, when an outlier is both a ceiling outlier and a scope outlier the effect may decrease. This applies to the potential outlier USA, where the effect size decreases from 0.58 (\(p = 0.002\)) to 0.52 (\(p = 0.012\)) when this potential outlier is removed.
For getting a first impression about the role of removing outliers two robustness checks can be done. In the first check the most influential single outlier (largest effect on the effect size if removed is selected, and this potential outlier is removed from the dataset. The potential outliers can be identified with the NCA software as follows:
The results are shown in Figure 4.8, where eff.or is the original effect size, eff.nw is the new effect size after removing the potential outlier, dif.abs and dif.rel are the absolute and relative differences between the new and original effect size and ‘ceiling’ and ‘scope’ indicate whether the potential outliers is a ceiling outlier or a scope outlier (or both). It turns out the USA is the largest outlier. When this case is removed from the dataset the NCA results are changed as indicated above.
Figure 4.8: The influence of removing a single potential outlier on the effect size.
In the second check, multiple outliers (for example a set of two) are selected that have the largest influence on the effect size when removed as a set. This outlier analysis can be initiated as follows:
Figure 4.9: The influence of removing two potential outliers on the effect size.
The results show that the set ‘Finland-Sweden’ is the most influential outlier duo. If this duo is removed from the dataset, the effect size increases and the p value reduces.
Figure 4.10: Potential outliers. Mexico = potential scope outlier; Finland, Sweden = potential ceiling outliers; USA = potential scope and ceiling outlier. USA is the most influential single outlier. Finland - Sweden is the most influential combination of multiple (two) outliers.
If this crude outlier approach with removing a single most influential outlier and aset of multiple most influential outliers does not change the conclusions, the results can be considered robust. Note, however, that a careful consideration is needed about an outlier decision: What are potential outliers, what are reasons of removing or not removing them (see decision tree about outliers in Section 3.8), and what is their influence on the effect size. Outliers are usually only removed when they are erroneous (measurement error or sampling error) or when they are exceptional (very large influence on the effect size when removed). In the current example, the influence of removing potential outliers is relatively modest; keeping them seems to be the most appropriate approach.
4.4.6 Choice of target outcome
The last robustness check explores the stability of the bottleneck analysis in terms of the number of bottleneck cases (that cannot achieve the target outcome because the condition is not satisfied) when the target outcome is mildly changed. For example, when the original target outcome is 75% (percentile) what is the influence on the percentage and number of bottleneck cases when the target outcome is somewhat lower (70%) or higher (80%).
Figure 4.11: The effect of changing the target outcome from 75 percentile to 70 and 80 percentile.
Figure 4.11 shows that for each of these levels of the outcome the required minimum level of the condition is 63. Eight cases (32%) have not reached that level of the condition, which makes them bottleneck cases. The number of bottleneck cases does not change with minor changes of the target outcome.
4.4.7 Robustness table
The results the robustness checks can be summarized in a NCA robustness table (4.1) where the original NCA results are compared with the results when different, also feasible choices are made. The first row shows the original results, and the next rows give the results after changes are explored. The nine changes: ceiling line change, d threshold change, p threshold change, scope change, single outlier removal, multiple outlier removal, target lower, and target higher. For checking the robustness of necessity in kind, effect size, p value, and conclusion about necessity (assuming theoretical support) are displayed. For checking the robustness of necessity in degree the percentage (%) and number (#) of bottleneck cases that are unable to achieve the required level of the condition for a selected target level of the outcome are shown. The NCA robustness table shows that the original results of this example are robust.
| Robustness check | Effect size | p value | Necessity | Bottlenecks(%) | Bottlenecks(#) |
|---|---|---|---|---|---|
| Individualism | |||||
| Original | 0.58 | 0.100 | no | 32 | 8 |
| Ceiling change | 0.51 | 0.100 | no | 20 | 5 |
| d threshold change | 0.58 | 0.100 | no | 32 | 8 |
| p threshold change | 0.58 | 0.100 | no | 32 | 8 |
| Scope change | 0.61 | 0.100 | no | 32 | 8 |
| Single outlier removal | 0.52 | 0.100 | no | 33.3 | 8 |
| Multiple outlier removal | 0.67 | 0.100 | no | 34.8 | 8 |
| Target lower | 0.58 | 0.100 | no | 32 | 8 |
| Target higher | 0.58 | 0.100 | no | 32 | 8 |
The NCA robustness table for a specific necessity relationship with one condition and one outcome can be produced with the following code that makes use of three functions: nca_robustness_table_general, nca_robustness_checks_general, and get_outliers. The R code for these functions can be found in Sections 7.4.1, 7.4.2, and 7.4.3, respectively.
# General robustness table for a single necessity relationship.
library(NCA)
source("nca_robustness_table_general.R")
source("nca_robustness_checks_general.R")
source("get_outliers.R")
# Example (nca.example with Western countries)
data(nca.example)
data <- nca.example
data <- data[-c(14,22,26),] #exclude non-Western countries
conditions <- "Individualism"
outcome <- "Innovation performance"
bottleneck.y <- "percentile"
plots <- FALSE # do not show scatter plots
# Define original analysis
define_check <- function(
name,
ceiling = "ce_fdh", # original
d_threshold = 0.1, # original
p_threshold = 0.05, # original
scope = NULL, # original
outliers = 0, # original
target_outcome = 75 # original
) {
list(
name = name,
ceiling = ceiling,
d_threshold = d_threshold,
p_threshold = p_threshold,
scope = scope,
outliers = outliers,
target_outcome = target_outcome
)
}
# Define robustness checks (differences with Original)
checks <- list(
define_check("Original"),
define_check("Ceiling change", ceiling = "cr_fdh"),
define_check("d threshold change", d_threshold = 0.2),
define_check("p threshold change", p_threshold = 0.01),
define_check("Scope change", scope = list(c(20, 100, 0, 250))),
define_check("Single outlier removal", outliers = 1),
define_check("Multiple outlier removal", outliers = 2),
define_check("Target lower", target_outcome = 80),
define_check("Target higher", target_outcome = 90)
)
# Conduct robustness checks and produce robustness table
results <- nca_robustness_table_general(
data = data,
conditions = conditions,
outcome = outcome,
ceiling = ceiling,
scope = scope,
d_threshold = d_threshold,
p_threshold = p_threshold,
outliers = outliers,
bottleneck.y = bottleneck.y,
target_outcome = target_outcome,
plots = plots,
checks = checks
)
# View results
print(results)4.5 Combining NCA with regression analysis
4.5.1 Introduction
Regression is the mother of all data analyses in the social sciences. It was invented more than 100 years ago when Francis Galton (Galton, 1886) quantified the pattern in the scores of parental height and child height (see Figure 4.12 showing the original graph).
Figure 4.12: Francis Galton’s (1886) graph with data on Parent height (‘mid-parents height’) and Child height (‘Adult children height’).
In Figure 4.13 Galton’s data are shown in two \(XY\) scatter plots.
Figure 4.13: Scatter plots of the relationship between Parent height (\(X\)) and Child height (\(Y\)) (after Galton (1886). A. With a regression line. B. With a ceiling line.
Galton drew lines though the middle of the data for describing the average trend between Parental height and Child height: the regression line (Figure 4.13 A). For example, with a Parent height of 175 cm, the estimated average Child height is about 170 cm. Galton could also have drawn a line on top of the data for describing the necessity of Parent height for Child height: the ceiling line (Figure ?? B). For example, with a Parent height of 175 cm, the estimated maximum possible Child height is about 195 cm. But Galton did not draw a ceiling line, and the social sciences have adopted the average trend line as the basis for many data analysis approaches. Regression analysis has developed over the years and many variants exist. The main variant is Ordinary Least Squares (OLS) regression. It is used for example in Simple Linear Regression (SLR), Multiple Linear Regression (MLR), path analysis, variance-based Structural Equation Modeling (SEM) and Partial Least Squares Structural Equation Modeling (PLS-SEM). In this section I compare OLS regression with NCA.
4.5.2 Logic and theory
OLS regression uses additive, average effect logic. The regression line (Figure 4.13 A) predicts the average \(Y\) for a given \(X\). Because the cases are scattered, for a given \(X\) also higher and lower values of \(Y\) than the average value of \(Y\) are possible. With one \(X\) (Simple Linear Regression), \(Y\) is predicted by the regression equation is:
\[\begin{equation} \tag{4.1} Y = β_0 + β_1 X + ɛ(X) \end{equation}\]
where \(β_0\) is the intercept of the regression line, \(β_1\) is the slope of the regression line, and \(ɛ(X)\) is the error term representing the scatter around the regression line for a given \(X\). The slope of the regression line (regression coefficient) is estimated by minimizing the squared vertical distances between the observed \(Y\)-values and the regression line (‘least squares’). The error term includes the effect of all other factors that can contribute to the outcome \(Y\).
For the parent-child data, the regression equation is \(Y = 57.5 + 0.64 X + ɛ(X)\). OLS regression assumes that on average \(ɛ(X) = 0\). Thus, when \(X\) (Parent height) is 175 cm, the estimated average Child height is about 170 cm. In contrast NCA’s C-LP ceiling line is defined by \(Y_c = -129 + 1.85 X\). Thus, when \(X\) (Parent height) is 175 cm, the estimated maximum possible Child height is about 195 cm. Normally, in NCA the ceiling line is interpreted inversely (e.g., in the bottleneck table): \(X_c = (Y_c + 129)/1.85\) indicating, while assuming a non-decreasing ceiling line, that a minimum level of \(X = X_c\) is necessary (but not sufficient) for a target level of \(Y =Y_c\). When parents wish to have a child of 200 cm it is necessary (but not sufficient) that their Parent height is at least about 177 cm.
To allow for doing statistical tests with OLS, it is usually assumed that the error term for a given \(X\) is normally distributed (with average value 0): cases close to the regression line for the given \(X\) are more likely than cases far from the regression line. The normal distribution is unbounded, hence very high or very low values of \(Y\) are possible, though not likely. This implies that any high value of \(Y\) is possible. Even without the assumption of the normal distribution of the error term, a fundamental assumption of OLS is that the \(Y\) value is unbounded (Berry, 1993). Thus, very large child heights (e.g., 300 cm) are theoretically possible in OLS, but unlikely. This assumption contradicts NCA’s logic in which \(X\) and \(Y\) are presumed bounded. \(X\) puts a limit on \(Y\) and thus there is a border represented by the ceiling line. The limits can be empirically observed in the sample (e.g., the height of the observed tallest person in the sample is 205 cm) for defining NCA’s empirical scope or can be theoretically defined (e.g., the height of the ever-observed tallest person of 272 cm) for defining the NCA’s theoretical scope.
Additivity is another part of regression logic. It is assumed that the terms of the regression equation are added. Next to \(X\), the error term is always added in the regression equation. Possibly also other \(X\)’s or combination of \(X\)’s are added in the regression equation (multiple regression, see below). This means that the terms that make up the equation can compensate for each other. For example, when \(X\) is low, \(Y\) can still be achieved when other terms (error term or other \(X\)’s) give a higher contribution to \(Y\). The additive logic implies that for achieving a certain level of \(Y\), no \(X\) is necessary. This additive logic contradicts NCA’s logic that \(X\) is necessary: \(Y\) cannot be achieved when the necessary factor does not have the right level, and this absence of \(X\) cannot be compensated by other factors.
Results of a regression analysis are usually interpreted in terms of probabilistic sufficiency. A common probabilistic sufficiency-type of hypotheses is ‘\(X\) likely increases \(Y\)’ or ‘\(X\) has an average positive effect on \(Y\)’. Such hypothesis can be tested with regression analysis. The hypothesis is considered to be supported if the regression coefficient is positive. Often, it is then suggested that \(X\) is sufficient to produce an increase the likelyhood of the outcome \(Y\). The results also suggest that a given \(X\) is not necessary for producing the outcome \(Y\) because other factors in the regression model (other \(X\)’s and the error term) can compensate for the absence of a low level of \(X\).
4.5.3 Data analysis
Most regression models include more than one \(X\). The black box of the error term is opened and other \(X\)’s are added to the regression equation (Multiple Linear Regression - MLR), for example:
\[\begin{equation} \tag{4.2} Y = β_0 + β_1 X_1 + β_2 X_2 + \epsilon_X \end{equation}\]
where \(β_1\) and \(β_2\) are the regression coefficients. By adding more factors that contribute to \(Y\) into the equation, \(Y\) is predicted for given combinations of \(X\)’s,and a larger part of the scatter is explained. R\(^2\) is the amount of explained variance of a regression model and can have values between 0 and 1. By adding more factors, usually more variance is explained resulting in higher values of R\(^2\).
Another reason to add more factors is to avoid ‘omitted variable bias’. This bias is the result of not including factors that correlate with \(X\) and \(Y\), which causes in biased estimations of the regression coefficients. Hence, the common standard of regression is not the simple OLS regression with one factor, but multiple regression with many factors including control variables to reduce omitted variable bias. By adding more relevant factors, the prediction of \(Y\) becomes better and the risk of omitted variable bias is reduced. Adding factors in the equation is not just adding new factors (\(X\)). Some factors may be combined such as squaring a factor (\(X^2\)) to represent a non-linear effect of \(X\) on \(Y\), or taking the product of two factors \((X_2 * X_2)\) to represent the interaction between these factors. Such combination of factors are added as a separate terms into the regression equation. Also, other regression-based approaches such as SEM and PLS-SEM include many factors. In SEM models factors are ‘latent variables’ of the measurement model of the SEM approach.
A study by Bouquet & Birkinshaw (2008) is an example of the prediction of an average outcome using MLR by adding many terms including combined factors in the regression equation. This highly cited article in the Academy of Management Journal studies multinational enterprises (MNE’s) to predict how subsidiary companies gain attention from their headquarters (\(Y\)). They use a multiple regression model with 25 terms (\(X\)’s and combination of \(X\)’s) and an ‘error’ term \(ɛ\). With the regression model the average outcome (average attention) for a group of cases (or for the theoretical ‘the average case’) for given values of the terms can be estimated. The error term represents all unknown factors that have a positive or negative effect on the outcome but are not included in the model, assuming that the average effect of the error term is zero. \(β_0\) is a constant and the other \(β_i\)’s are the regression coefficients of the terms, indicating how strong the term is related to the outcome (when all other terms are constant). The regression model is:
\(Attention = \\ β_0 \\ + β_1\ Subsidiary\ size \\ + β_2\ Subsidiary\ age \\ + β_3\ (Subsidiary\ age)^2 \\ + β_4\ Subsidiary\ autonomy \\ + β_5\ Subsidiary\ performance \\ + β_6\ (Subsidiary\ performance)^2 \\ + β_7\ Subsidiary\ functional\ scope \\ + β_8\ Subsidiary\ market\ scope \\ + β_9\ Geographic\ area\ structure \\ + β_{10}\ Matrix\ structure \\ + β_{11}\ Geographic\ scope \\ + β_{12}\ Headquarter\ AsiaPacific\ parentage \\ + β_{13}\ Headquarter\ NorthAmerican\ parentage \\ + β_{14}\ Headquarter\ subsidiary\ cultural\ distance \\ + β_{15}\ Presence\ of\ MNEs\ in\ local\ market \\ + β_{16}\ Local\ market\ size \\ + β_{17}\ Subsidiary\ strength\ within\ MNE\ Network \\ + β_{18}\ Subsidiary\ initiative\ taking \\ + β_{19}\ Subsidiary\ profile\ building \\ + β_{20}\ Headquarter\ subsidiary\ geographic\ distance \\ + β_{21}\ (Initiative\ taking * Geographic\ distance) \\ + β_{22}\ (Profile\ building * Geographic\ distance) \\ + β_{23}\ Subsidiary\ downstream\ competence \\ + β_{24}\ (Initiative\ taking * Downstream\ competence) \\ + β_{25}\ (Profile\ building * Downstream\ competence) \\ + \epsilon\)
The 25 terms of single and combined factors in the regression equation explain 27% of the variance (R\(^2\) = 0.27). Thus, the error term (representing the not included factors) represent the other 73% percent (unexplained variance). Single terms predict only a small part of the outcome. For example, ‘subsidiary initiative taking’ (term 18) is responsible for 2% to the explained variance.
The example shows that adding more factors makes the model more complex and less understandable and therefore less useful in practice. The contrast with NCA is large. NCA can have a model with only one factor that perfectly explains the absence of a certain level of an outcome when the factor is not present at the right level for that outcome. Whereas regression models must include factors that correlate with other factors and with the outcome to avoid biased estimation of the regression coefficient, NCA’s effect size for a necessary factor is not influenced by the absence or presence of other factors in the model. This is illustrated with and example about the effect of a sales person’s personality on sales performance using data of 108 cases (sales representatives from a large USA food manufacturer) obtained with The Hogan Personality Inventory (HPI) personality assessment tool for predicting organizational performance (Hogan & Hogan, 2007). Details of the example are in Dul, Hauff, et al. (2021). The statistical descriptives of the data (mean, standard deviation, correlation) are shown in Figure 4.14 A. Ambition and Sociability are correlated with \(Y\) as well as each other. Hence, if one of them is omitted from the model the regression results may be biased.
Figure 4.14: Example of the results of a regression analysis and NCA. Effect of four personality traits of sales persons on sales performance. A. Descriptive statistics. B. Results of regression analysis and NCA for two different models. Data from Hogan & Hogan (2007)
The omission of one variable is shown in Figure 4.14 B, middle column. The full model (Model 1) includes all four personality factors. The regression results show that Ambition and Sociability have positive average effects on Sales performance (regression coefficients 0.13 and 0.16 respectively, and Learning approach has a negative average effect on Sales performance (regression coefficient -0.11). Interpersonal sensitivity has virtually no average effect on Sales performance (regression coefficient 0.01). The p values for Ambition and Sociability are relatively small. Model 2 has only three factors because Sociability is omitted. The regression results show that the regression coefficients of all three remaining factors have changed. The regression coefficient for Ambition has increased to 0.18, and the regression coefficients of the other two factors have minor differences (because these factors are less correlated with the omitted variable). Hence, in a regression model that is not correctly specified because factors that correlate with factors that are included in the model and with the outcome are not included, the regression coefficients of the included factors may be biased (omitted variable bias). However, the results of the NCA analysis does not change when a variable is omitted (Figure 4.14 B, right column). This means that an NCA model does not suffer from omitted variable bias.
4.5.4 How to combine NCA and regression
Regression and NCA are fundamentally different and complementary. A regression analysis can be added to a NCA study to evaluate the average effect of the identified necessary condition for the outcome. However, the researcher must then include all relevant factors, also those that are not expected to be necessary, to avoid omitted variable bias, and must obtain measurement scores for these factors. When NCA is added to a regression study, not much extra effort is required. Such regression study can be a multiple regression analysis, or the analysis of the structural model of variance based structural equation modeling (SEM), Partial Least Squares structural equation modeling (PLS-SEM) or another regression technique. If a theoretical argument is available for a factor (indicator or latent construct) being necessary for an outcome, any factor that is included in the regression model (independent variables, moderators, mediators) can also be treated as a potential necessary condition that can be tested with NCA. This could be systematically done:
For all factors in the regression model that are potential necessary conditions.
For those factors that provide a surprising result in the regression analysis (e.g., in terms of direction of the regression coefficient, see below the situation of disparate duality) to better understand the result.
For those factors that show no or a limited effect in the regression analysis (small regression coefficient) to check whether such ‘unimportant’ factors on average still may be necessary for a certain outcome.
For those factors that have a large effect in the regression analysis (large regression coefficient) to check whether an ‘important’ factor on average may also be necessary.
When adding NCA to a regression analysis more insight about the effect of \(X\) on \(Y\) can be obtained.
Figure 4.15 shows a example of a combined NCA and simple OLS regression analysis.
Figure 4.15: Example of interpretation of findings from regression analysis and NCA
\(X\) and \(Y\) are related with correlation coefficient 0.58. The data may be interpreted as an indication of a necessity relationship, an indication of an average effect relationship, or both. The average relationship is illustrated with a green OLS regression line with intercept 0.66 and slope 0.9 (p < 0.001). The ceiling line (C-LP) is illustrated with the dashed blue with intercept 1.1 and slope 1.0 (effect size d = 0.24; p < 0.001). According the ceiling line, for an outcome value \(Y = 1.3\), a minimum level of the condition of \(X = 0.15\) is necessary. According to the vertical line \(X = 0.15\), the average value of the outcome for this value the condition is \(Y = 0.8\). In other words, for a given value of \(X\) (e.g., \(X =0.15\)), NCA predicts the maximum possible value of \(Y\) (\(Y = 1.3\)), whereas OLS regression predicts the average value of \(Y\) (\(Y = 0.8\)). OLS regression does not predict a maximum value of \(Y\). Regression analysis assumes that any value of \(Y\) is possible. Also very high values of \(Y\), up to infinity, are possible, but unlikely. The horizontal line \(Y = 1.3\) not only intersects the ceiling line, showing the required level of \(X = 0.15\) that all cases must have satisfied to be able to reach \(Y = 1.3\), but also the OLS regression line, showing that the average outcome \(Y = 1.3\) is obtained when \(X = 0.72\). The vertical line \(X = 0.72\) intersects the ceiling line at \(Y = 1.9\), showing that this outcome level is maximally possible when the condition level \(X = 0.72\).
In this example the regression line has the same direction as the ceiling line. There is a positive average effect and a ‘positive’ necessity effect (high level of \(X\) is necessary for high level of \(Y\)). I call this situation: ‘commensurate duality’. Commensurate duality also applies when both lines have negative slopes. It is also possible, but less common that the slope of the ceiling line is positive and the slope of the regression line is negative. In this situation there is a negative average effect and a ‘positive’ necessity effect. A high level of \(X\) is necessary for high level of \(Y\), but increasing \(X\) on average reduces \(Y\). This can occur when a relatively high number of cases are in the lower right corner of the scatter plot (cases with high \(X\) that do not reach high \(Y\)). The situation when both lines have opposite slopes is called ‘disparate duality’. A third situation is possible that there is no significant average effect and yet a significant necessity effect, or the other way around. I call this situation ‘impact duality’. The word ‘duality’ refers to a data interpretation battle. Should the observed data pattern be describe with regression analysis, NCA or both? The answer depends on the researcher’s theory. When a conventional theory with additive/average effect logic is used, regression analysis ensures theory-method fit. When a necessity theory is used, NCA ensures theory-method fit. When a conventional theory and a necessity theory are both used (e.g., in an ‘embedded necessity theory,’ see Bokrantz & Dul, 2023 and see Chapter 2) both methods should be used to ensure theory-method fit. Hence, it depends on the underlying theory what method(s) should be selected to analyse the data.
4.5.5 What is the same in NCA and regression?
I showed that regression has several characteristics that are fundamentally different from the characteristics of NCA. Regression is about average trends, uses additive logic, assumes unbounded \(Y\) values, is prone to omitted variable bias, needs control variables, and is used for testing sufficiency-type of hypotheses, whereas NCA is about necessity logic, assumes limited \(X\) and \(Y\), is immune for omitted variable bias, does not need control variables, and is used for testing necessity hypotheses.
However, NCA and regression also share several characteristics. Both NCA and regression are variance-based approaches and use linear algebra (although NCA can also be applied with the set theory approach with Boolean algebra; see Section 4.7 on NCA and QCA). Both methods need good (reliable and valid) data without measurement error, although NCA may be more prone to measurement error. For statistical generalization from sample to population both methods need to have a probability sample that is representative for the population, and having larger samples usually give more reliable estimations of the population parameters, although NCA can handle small sample sizes. Additionally, for generalization of the findings of a study both methods need replications with different samples; a one-shot study is not conclusive. Both methods cannot make strong causal interpretations when observational data are used; then at least also theoretical support is needed. When null hypothesis testing is used in both methods, such tests and the corresponding p values have strong limitations and are prone to misinterpretations; a low p value only indicates a potential randomness of the data and is not a prove of the specific alternative hypothesis of interest (average effect, or necessity effect).
When a researcher uses NCA or OLS, these common fundamental limitations should be acknowledged. When NCA and OLS are used in combination the fundamental differences between the methods should be acknowledged. It is important to stress that one method is not better than the other. NCA and OLS are different and address different research questions. To ensure theory-method fit, OLS is the preferred method when the researcher is interested in an average effect of \(X\) on \(Y\), and NCA is the preferred method when the researcher is interested in the necessity effect of \(X\) on \(Y\).
4.6 Combining NCA with (PLS-)SEM
One of the most common applications of combining NCA with a regression-based method is the use of NCA in the context of Partial Least Squares - Structural Equation Modeling (PLS-SEM). The reason for this popularity may be two-fold.
Leading PLS-SEM proponents introduced NCA as a methodological enrichment of PLS-SEM, and provided specific recommendations (Richter, Schubring, et al., 2020; Richter et al., 2022; Richter, Hauff, Ringle, et al., 2023) and extensions (Hauff et al., 2024; Sarstedt et al., 2024) on how to use NCA in combination with PLS-SEM.
A basic version of the NCA software became part of a popular software package for conducting PLS-SEM (SmartPLS, see Section 7.1.2).
NCA has also been applied in combination with other types of SEM such as the classical covariance-based SEM (CB-SEM).
A SEM model consists of two parts. The measurement model defines how latent variables are represented by measured indicators. A latent variable is an unobserved construct that is derived from observed indicators. The structural model specifies how the latent variables are related to each other.
In both PLS-SEM and CB-SEM, latent variable scores can be obtained and used for further analysis. However, the estimation approach differs. PLS-SEM uses partial least squares to estimate latent variable scores as weighted composites of indicators and to maximize the explained variance in the dependent variables. CB-SEM estimates model parameters based on the covariance matrix, using techniques such as maximum likelihood or generalized least squares. Latent variable scores are not directly estimated in the model fitting process, but can be computed afterward if needed (e.g., as factor scores).
Combining NCA with SEM involves using the estimated scores of the latent variables as input for NCA. This allows researchers to examine whether a relationship between two latent variables are not only related in terms of probabilistic sufficiency (as modeled in SEM) but also in terms of necessity, assuming a theoretical rationale exists. In NCA, latent variables from the structural model can take the role of condition or outcome to study necessity relationships.
All guidelines for applying NCA in general (see Sections 1.7 and 1.8) also apply to combining NCA with SEM.
4.6.1 Steps for conducting NCA with SEM
Figure 4.16 shows a flowchart for conducting NCA in combination with SEM.
Figure 4.16: Flowchart for conducting NCA in combination with Structural Equation Modeling (SEM).
Below the steps are discussed in detail and an example is given about how to use NCA with PLS-SEM. Since SEM terminology about ‘indicators’, ‘weights’, ‘latent variables’ and ‘rescaling’ varies across the SEM literature, the following terminology is used in this book:
Terminology
General:
Rescaling: normalization or standardization of original scores.
Normalization (or min-max normalization): rescaling of scales with new minimum and maximum values (e.g., 0-1 or 0-100).
Standardization: Rescaling of observed scale values based on the their probability distribution. (z-score)
Indicator:
Indicator (variable). A manifest/measured variable linked to a latent variable.
Indicator score. The value of an indicator.
Raw indicator score. The value of the indicator measured on a scale. The scale usually has minimum and maximum values, e.g., Likert scale ranging from 1-5 or 1-7.
Normalized indicator score. The value of an indicator after min-max normalization of the raw indicator score (e.g., 0-1 scale or percentage scale 0-100).
Standardized indicator score. The value of an indicator after standardization of the raw indicator (z-score: rescaled such that the mean = 0 and standard deviation = 1).
Original indicator score. The indicator that is used as input for the SEM model (raw score or standardized score), which can be raw or standardized depending on the estimation settings.
Weight and loading:
(Indicator) weight. In PLS-SEM, the extent to which an indicator contributes to the latent variable score (as part of a weighted composite).
Standardized indicator weight. Indicator weight using standardized indicators.
Estimated indicator weight. In PLS-SEM, the estimated coefficient that multiplies an indicator to construct the latent variable score.
Factor loading. In CB-SEM, the strength of indicator–latent variable relationships.
Latent variable:
- Latent variable. An unobserved construct linked to multiple indicators.
Latent variable score. The value of a latent variable, calculated as a linear combination (weighted sum) of indicator scores.
Standardized latent variable score. The value of a latent variable obtained by linear combination (weighted sum) of standardized indicator scores (z -score).
Unstandardized latent variable score. The value of a latent variable expressed in the scale of the original indicators (commonly raw original scores).
Normalized unstandardized latent variable score. Unstandardized latent variable score after normalization.
4.6.1.1 Step 1: Theorize probabilistic and necessity relationships
The first step is a fundamental step for any combined NCA and SEM study. An NCA-SEM study implies that the relationships between the variables are considered from two different causal perspectives: probabilistic sufficiency (SEM) and necessity (NCA). Both SEM and NCA require that the study starts with formulating theoretical expectations about the relationship (e.g., hypotheses). According to SEM, all relationships between latent variables in the structural model are considered probabilistic sufficiency relationships. According to NCA all, a few, or none of the relationships can be hypothesized as necessity relationships as well. Each necessity relationship between latent variables should be theoretically justified (see Section 2.2). The theoretical justification of applying these different causal lenses to the structural model is essential (Dul, 2024a). A theory that includes one or more necessity relationships in addition to probabilistic sufficiency relationships is called an ‘embedded necessity theory’ (Bokrantz & Dul, 2023). The latent variables of a structural model can have two different roles. A ‘predictor’ variable (independent variable; ‘condition’ in NCA) explains or predicts a ‘predicted’ variable (dependent variable; outcome in NCA). For example, when in a structural model a latent variable \(M\) mediates the relationship between \(X\) and \(Y\), then \(M\) has two different roles. For the \(X\)-\(M\) relationship \(X\) is the predictor and \(M\) is the predicted variable, and for the \(M\)-\(Y\) relationship \(M\) is the predictor and \(Y\) the predicted variable. When a relationship is (also) considered a necessity relationship, NCA calls the predictor variable the ‘condition’ and the predicted variable the ‘outcome’.
4.6.1.2 Step 2: Conduct SEM
Conducting SEM assumes that data are available on observed indicators that are used to represent latent variables. SEM involves specifying a measurement model, which defines the relationships between indicators and latent variables, and a structural model, which specifies the relationships between latent variables. The complete model is then estimated using a chosen algorithm (e.g., PLS-SEM or CB-SEM). NCA is not part of the SEM estimation process itself, but it uses latent variable scores obtained from SEM as input for its own analysis. Therefore, it is important that the analyst ensures that the latent variable scores extracted from the SEM model are valid, reliable, and interpretable. Recommendations for good SEM practices are available in the literature and are not discussed here. Both commercial and open-source software tools are available to conduct SEM.
4.6.1.3 Step 3: Extract latent variable scores
The latent variable scores obtained from the SEM model serve as input for NCA. During SEM estimation, latent variable scores are often standardized (z-scores), resulting in scores with a mean of 0 and standard deviation of 1. Although NCA results are invariant to affine transformations (such as standardization or linear rescaling), it is recommended for purposes of interpretation to first unstandardize the latent variable scores, and then, if desired, apply normalization (e.g., min-max scaling). Unstandardized latent variable scores (see Step 3a, if needed) are expressed on a scale that is directly related to the original indicator scale, provided that the same measurement scale was used for all indicators of the latent construct. This allows for more meaningful interpretation of the NCA results, especially when discussing real-world implications and when results are discussed in terms of necessity ‘in degree’ with specified levels of \(X\) and \(Y\). Note that not all SEM software packages offer the option to extract unstandardized latent variable scores, particularly in CB-SEM, where latent scores are not estimated by default. Below is an example showing how to convert standardized scores back to unstandardized scores when needed. When all unstandardized latent variable scores are derived from indicators measured on the same scale (i.e., with identical minimum and maximum values), normalization is not required. However, if latent variables have different scales, min-max normalization is recommended (see Step 3b). This ensures that the latent variable scores are comparable, which is particularly important in later steps (e.g., Step 5: producing a BIPMA).
A common approach to min-max normalization is to rescale scores to a 0–100 range, allowing latent variable scores to be interpreted as percentages of their original scale range. Alternatively, rescaling to a 0–1 range can be used, which is often more convenient for NCA, as it yields a scope of 1. However, this is optional and not required for the validity of NCA results.
4.6.1.4 Step 4: Conduct NCA
The unstandardized and possibly normalized latent variable scores are input to NCA. In the first part of the analysis the hypothesized relationships are tested for ‘necessity in kind’, which is the qualitative statement that \(X\) is necessary for \(Y\) without specifying levels of \(X\) and \(Y\) other than absence/presence or low/high. The observed effect size \(d\) and p value are compared with their threshold values (e.g., \(d\) = 0.10; p = 0.05) that are set by the researcher to decide if a predictor variable is necessary for a predicted variable, as suggested by the hypothesis.
In the second part, identified necessary conditions are selected for a the bottleneck analysis for ‘necessity in degree’, which is a quantitative statement that level \(x_c\) of \(X\) is necessary for level \(y_c\) of \(Y\). A specific format of this table, with the outcome values expressed as actual values or percentiles, and the conditions expressed as percentiles, provides information for each latent variable about the percentage of cases that are bottlenecks. A bottleneck case is a case that is unable to achieve the required level of the condition for a target level of the outcome. The case is a bottleneck case if it is not possible to achieve the target outcome with the observed value of the condition.
4.6.1.5 Step 5: Produce BIPMA
The Bottleneck Importance Performance Map Analysis (BIPMA) is an adapted version of the combined Importance Performance Map Analysis (CIPMA) as proposed by (Hauff et al., 2024). CIPMA is a combination of the classic IPMA and NCA.
The goal of IPMA, CIPMA and BIPMA is to assist researchers and practitioners prioritize their actions and resources in terms of selection of the predictor variable that has the largest effect on the predicted variable. An action based on SEM results means that the selected predictor is changed to change the average value of the predicted variable. For a SEM evidence based action on a predictor, it must be assumed that all other predictors are not changing (ceteris paribus). This implies that from IPMA, CIPMA and BIPMA only one predictor can be selected for an action based on SEM. Selection of multiple predictors and taking action on them simultaneously violates the ceteris paribus requirement. Sequential selection of multiple predictors requires that after a change of one predictor, a new SEM analysis must be made that represents the changed situation. Therefore, IPMA, CIPMA and BIPMA are static approaches that can only identify one predictor for evidence-based action based on SEM results. When the action is only based on NCA results, multiple conditions can be addressed as the ceteris paribus assumption does not apply to NCA.
IPMA only uses the SEM results to prioratize actions. It combines two dimensions:
Importance: The total effects (direct and indirect path coefficients) of a predictor variable on the predicted variable. It represents the strengths of the probabilistic sufficiency (average effect) relation.
Performance: The average score of a normalized unstandardized predictor variable. It represents how well the predictor variable performs regarding the average (positive) contribution to the predicted variable (the mean score of the predictor).
Therefore, the practical meaning of IPMA is that action priority should be given to a predictor variable with:
- High level of Importance, and low level of Performance (points in the lower right corner assuming that Importance is represented by the absolute values of the total effects to handle negative total effects).
CIPMA (Hauff et al., 2024) adds a third dimension to the classic IPMA, which I call here the ‘bottleneck’ dimension. This dimension takes into account how effective the action is from the perspective of presence of bottleneck cases according to NCA. While IPMA focuses on prioritization aimed at increasing the average effect across a group of cases, such approach may be less effective when bottlenecks are present. The bottleneck dimension introduces a complementary priority judgement. It prioritizes actions based on the goal that as many cases as possible are able to achieve a specified target level of the predicted variable. This means that for CIPMA a ‘target outcome’ must be selected. This is a specific level of the predicted variable that after action must become achievable by as many as possible cases. If the target outcome is set at a low level, the goal is to enable a base level of the outcome (e.g., mean or even lower outcome, for example corresponding to a minimum level that is achieved by 50 or 75 percent of the cases). If the target outcome is set at a high level, the goal is to enable high level of the outcome (e.g., corresponding to a minimum level that is only achieved by about 25 or 10 percent of the cases).
NCA estimates the minimum required score of a predictor variable that is needed for being able to achieve the target level of the predicted variable. The bottlenecks dimension in CIPMA is the number or percentage of bottleneck cases of the predictor variables. For a given predictor variable, bottleneck cases are cases where the predictor variable score is lower than the minimum required score to make the target outcome level achievable. This information can be obtained from NCA’s bottleneck table produced in step 4b. The CIPMA plot integrates three dimensions: Importance on the horizontal axis, Performance on the vertical axis, and Bottlenecks represented by the size of the points in the Importance-Performance plot. Each point represents a predictor variable with a given combination of Importance and Performance score. The bottlenecks dimension is represented by the size of the points.
When prioritization is based on the results from NCA and SEM, the ceteris paribus assumption of SEM applies such that only one predictor variable can be selected for change, if this change is (also) based on SEM results. CIPMA suggests that the best choice is the predictor with the largest Importance score and lowest Performance score (according to SEM), and the largest number of bottleneck cases (according to NCA). Specifically, Hauff et al. (2024) suggest that priority action based on SEM results should focus predictors located in the lower-right quadrant of the CIPMA plot -implicitly assuming that the total effects are positive-, while priority action based on NCA can focus on any of the quadrants.
Therefore, the practical meaning of CIPMA is that action priority should be given to the predictor variable with:
- High level of Importance, and low level of Performance (points in the lower right corner).
- High number or percentage of bottleneck cases (large points) for the significant necessary conditions.
Note that in IPMA and CIPMA all predictor variables that are hypothesized in the SEM model are usually shown in the plots, even if the total effect is statistically non-significant2. In contrast, a non-significant necessary condition is not included in CIPMA. Such condition has the standard point size illustrating that the predictor should not get priority from the perspective of necessity.
I introduce the ‘Bottlenecks, Importance, Performance Map Analysis’ (BIPMA) as an adaptation and replacement of CIPMA: BIPMA adapts the cIPMA in three ways: for the bottleneck dimension it considers only single bottleneck cases, it excludes also non-significant SEM results, and it handles negative total effects by explicitly using the absolute value of SEM’s total effect, and negative ‘directions’ of necessity by specifying and analysing the expected empty corner in the \(XY\) plot which may be different than the upper-left corner.
The bottlenecks dimension in BIPMA differs from the bottlenecks dimension in CIPMA. Rather than prioritizing the predictor with the largest number or percentage of bottleneck cases, it prioritizes the predictor with the largest number or percentage of single bottleneck cases. Single bottleneck cases are cases that are a bottleneck in only one predictor, and not in multiple predictors. An action on a single predictor is only effective if the bottleneck case is not a bottleneck for other predictors. Normally, a substantial part of the bottleneck cases for a given predictor are also bottlenecks for another predictor. This means that an action on the selected predictor to resolve a bottleneck case, will only be effective for the single bottlenecks cases of this predictor. Therefore, BIPMA uses the number or percentage of single bottleneck cases for a given predictor variable as the bottlenecks dimension of IPMA. When single bottleneck cases are resolved, these cases have the possibility to achieve the target outcome. When multiple bottleneck cases are resolved for a given predictor, these cases remain a bottleneck case for another condition, such that the goal of making the target outcome possible is not achieved for these cases.
A second adaptation compared to CIPMA (and IPMA) is that BIPMA only considers predictor variables for practical action that have a statistically significant total effect on the predicted variable. The reason is threefold. First, only a change of the value of a significant predictor variable will result in a change of the value of the predicted variable; a non-significant total effect suggests that the observed effect is compatible with no effect (Importance = 0). Since, IPMA, CIPMA and BIPMA are all tools for evidence-based practical action, the non-significance of an empirical finding should be taken into account. Second, since CIPMA does not include non-significant necessary conditions3, it is logical for compatibility that the requirement of statistical significance also applies to the total effect. Third, Richter, Schubring, et al. (2020) and Richter, Hauff, Ringle, et al. (2023) distinguish different scenarios for practical action depending on the (non-)significance of both the NCA results and the SEM results. The BIPMA plot aims to inform practice as closely as possible in line with the empirical results. Therefore BIPMA diplays the four possible combinations of statistical (non-)significance of SEM and NCA results using different point colors in the Importance-Performance-plot:
White point: the total effect and the necessity effect are both significant. The size of the point reflects the bottleneck dimension.
Black point: the total effect is significant and the necessity effect is non-significant. The black point has a standard size.
Grey point: the total effect is non-significant and the necessity effect is significant. Since the total effect is compatible with no effect, the point is moved on the horizontal axis to Importance = 0. The size of the point reflects the bottleneck dimension.
No point: the total effect is non-significant and the necessity effect is non-significant. The point is removed from the plot as it does not provide information for practical action.
A final adaptation is that BIPMA also handles different relationship directions between predictor variable and predicted variable. The common situation in SEM is that the predictor variable has a positive (average) effect on the predicted variable, and in NCA is that a high level of the predictor variable is necessary for a high level of the predicted variable. BIPMA also handles predictor variables with hypothesized and observed negative total average effect on the predicted variable. For example, Mwesiumo (in press) added a negative total effect for one of the predictor variable on the negative side of CIPMA’s Importance-axis. Since this is inconsistent with the advice (Hauff et al., 2024) that priority should be to points in the lower-right corner of CIPMA, BIPMA explicitly uses the absolute total effect as Importance score, such that importance scores of positive total effects and negative total effect are comparable and priority should be given to points in the lower right corner independent of the sign of the total effect. The BIPMA plot identifies an Importance score that is based on a negative total effect by adding ‘-inv’ to the name of the predictor, indicating that this predictor has an inverse effect on the predicted variable. While an increase of the predictor variable with a positive total effect will increase the predicted variable, a decrease of the predictor variable with a negative total effect will increase the predicted variable. BIPMA also handles different necessity ‘directions’. For NCA the default necessity ‘direction’ is high-high, meaning that a high level of \(X\) is necessary for a high level of \(Y\). The other ‘directions’ are low-high, high-low, or low-low, suggesting that low \(X\) is necessary for high \(Y\), high \(X\) is necessary for low \(Y\), or low \(X\) is necessary for low \(Y\), respectively. This implies that the expected empty corner of the \(XY\) plot is not upper-left, but that another corner of the \(XY\) plot is expected to be empty and should be analysed. For example, an expected and observed empty corner is the upper-right corner (low \(X\) is necessary for high \(Y\)) implies that for resolving bottleneck cases the predicted variable must decrease, rather than increase.
While taking these adaptations into account, the practical meaning of BIPMA is that action priority should be given to predictor variables with:
- A statistically significant and high level of Importance (absolute total effect) and low level of Performance (points in the lower right corner of the Importance-Performance plot).
- High number or percentage of single bottleneck cases for significant necessary conditions (large points).
One of the goals of BIPMA is to identify predictor variables that should be prioritized for action using these two criteria. Several prioritization approaches and corresponding ways to evaluate the BIPMA plot can be used to combine these criteria. Assuming a positive direction for the average effect and a high-high direction for the necessity effect these strategies can be formulated as follows:
Enable a target outcome. This approach only considers NCA results. It is feasible when SEM results do not give a clear preference for predictors to be changed (e.g., no non-significant points in the bottom-right corner of BIPMA). Since the ceteris paribus assumption does not limit NCA, multiple predictor variables can be selected for an action. This approach implies that the goal of the intervention is to unlock high target score by ensuring that the conditions have no bottleneck cases. For example, if the target outcome is something desirable and \(X\) is necessary for high \(Y\), the target can be set at a high level that is achieved by not more than 25% or 10% percent of the cases (the best performing cases). The intervention then consists of ensuring that most bottleneck cases are resolved by increasing the values of the conditions with bottleneck cases. The approach is also feasible when the goal is to enable a certain minimum level of the outcome for all cases. The target outcome can for example be set at a minimum level that is achieved by more than 50% or 75% of the cases.
Improve the average outcome. This approach only considers the SEM results. It is feasible when NCA results show that none of the conditions are necessary or have only a small number of bottleneck cases (e.g., less than 10%). Only one predictor variable can be selected for action at once given the ceteris paribus requirement. For selecting a second predictor, evidence-based action requires a new SEM and BIPMA with a new dataset representing the situation after the intervention on the first predictor.
Improve the average outcome and enable a target outcome. This approach considers both the SEM and NCA results. Since SEM is part of the consideration, this approach requires that only one predictor is selected for evidence based action, the combined approach is most effective if the predictor with the large number of bottleneck cases (e.g., more than 10%) is in the lower right corner of the BIPMA plot.
Since these idealized situations may not exist in practice, hybrid approaches may be considered.
4.6.1.6 Step 6: Conduct robustness checks
The goal of robustness checks is to explore the sensitivity of choices made by the researcher on key results of NCA. In the context of an NCA-SEM study the following key results may be affected by researchers’ choices:
Identification of necessary conditions based on effect size and p value.
Prioritization of predictors for intervention.
As discussed in Section 4.4, these key results are affected by researcher’s choices of:
Ceiling line.
Threshold level of the effect size.
Threshold level of the p value.
Scope.
Outlier removal.
Target outcome.
A robustness check consists of making another (reasonable) choice than the original choice, and studying its influence on the key results. The output of the the robustness check is the NCA robustness table. If the influence of changes of the researcher’ choices is small, the original results may be considered as robust; if, not the original results may be fragile.
4.6.2 Demonstration of combining NCA and PLS-SEM with R
In this section the steps for combining NCA with PLS-SEM as shown above are demonstrated with an example. The selected example is used in four published studies where NCA is combined with PLS-SEM (Hauff et al., 2024; Richter, Schubring, et al., 2020; Richter, Hauff, Ringle, et al., 2023; Sarstedt et al., 2024). The goal of the demonstration is threefold.
Replication of the four studies by using a different software package for PLS-SEM than the SmartPLS package that was used in the original studies. In contrast to R and its packages, the SmartPLS software is not free and includes only a basic version of NCA. However, it is more user-friendly for users who are not familiar with
R. A quick start guideline for using NCA withRcan be found here.Show the proposed extension of CIPMA by using BIPMA for prioratizing action.
Show how the robustness checks can be conducted.
The selected example evaluates an extended version of the Technology Acceptance Model (TAM) (Richter, Schubring, et al., 2020). Figure 4.17 shows the model consisting of six variables (rectangles) and 9 relationships (arrows).
Figure 4.17: The extended Technology Acceptance Model (TAM) according to Richter, Schubring, et al. (2020).
For the demonstration, the flowchart of Figure 4.16 is followed and the R packages SEMinR for conducting PLS-SEM and NCA for conducting NCA are used. Additional R code for conducting the analysis can be found in Section 7.4.
4.6.2.1 Example Step 1: Theorize probabilistic and necessity relationships
It is assumed that the relationships shown in Figure 4.17 are theoretically justified from both the perspective of probabilistic sufficiency as well as from the perspective of necessity (see Richter, Schubring, et al., 2020). For enhancing a theoretical justification of a necessity relationship see Section 2.3.
4.6.2.2 Example Step 2: Conduct SEM
Following the four original studies that also use the example, the PLS_SEM approach is selected to estimate the SEM model. The dataset is provided by (Schubring & Richter, 2023) at Mendeley Data, and it is explained in Richter, Hauff, Kolev, et al. (2023). The helper function get_indicator_data_TAM imports the dataset, selects relevant columns, and changes the column names for use in SEMinR. The R code of the helper function can be found in Section 7.4.4.
## PU1 PU2 PU3 CO1 CO2 CO3 EOU1 EOU2 EOU3 EMV1 EMV2 EMV3 AD1 AD2 AD3 USE
## 1 4 3 3 3 3 3 5 5 4 4 3 3 2 2 2 2
## 2 3 1 4 3 3 4 4 4 2 4 4 3 5 4 4 3
## 3 4 4 4 3 3 4 4 4 4 4 4 4 4 4 4 3
The original data consists of 174 rows (cases = people using e-readers) and 20 columns. The first 16 columns represent the raw indicators of the 6 variables of the TAM model. The last four columns are not considered in this demonstration and removed from the dataset. After running the helper function, the resulting dataset df is used as input for the SEM model. The raw indicator scores are measured with 5-point-Likert scales, except for the score for Technology use, which is measured with a 7-point-Likert scale. The variable names are PU = Perceived usefulness, CO = Compatibility, EOU = Perceived ease of use, EMV = Emotional value, AD = Adoption intention, and USE = Technology use.
The measurement model (using the indicator scores) and the structural model (Figure 4.17) are specified and estimated with the PLS algorithm. The SEMinR package standardizes the raw scores and produces latent construct scores (mean = 0, sd = 1) and path coefficients and other output. The helper function estimate_sem_model conducts the PLS-SEM model estimation. The R code of the helper function be found in Section 7.4.5.
The summary of the results shows the standardized path coefficients and some metrics about model fit.
##
## Results from package seminr (2.3.7)
##
## Path Coefficients:
## Adoption intention Technology use
## R^2 0.539 0.420
## AdjR^2 0.528 0.403
## Perceived usefulness 0.227 0.050
## Compatibility 0.045 0.107
## Perceived ease of use 0.088 0.010
## Emotional value 0.515 0.137
## Adoption intention . 0.437
##
## Reliability:
## alpha rhoC AVE rhoA
## Perceived usefulness 0.723 0.842 0.642 0.753
## Compatibility 0.858 0.914 0.779 0.859
## Perceived ease of use 0.783 0.873 0.697 0.783
## Emotional value 0.914 0.946 0.853 0.917
## Adoption intention 0.938 0.960 0.889 0.939
## Technology use 1.000 1.000 1.000 1.000
##
## Alpha, rhoC, and rhoA should exceed 0.7 while AVE should exceed 0.5
The results correspond to those reported in the four original publications that use the same example with the SmartPLS software.
In addition, the 95% confidence interval of the path coefficients can be obtained using bootstrapping. A path is significant if its 95% bootstrap confidence interval does not include zero. The helper function get_significance_sem.R can be used to find significant direct effects, indirect effects and total effects as follows. The R code of the helper function be found in Section 7.4.6.
source("get_significance_sem.R")
TAM_sig <- get_significance_sem (sem = TAM_pls, nboot = 5000) #5000 for final analysis
TAM_sig## Path Direct Indirect Total
## 8 Perceived usefulness -> Adoption intention 0.227 0.000 0.227
## 9 Perceived usefulness -> Technology use 0.050 0.099 0.149
## 2 Compatibility -> Adoption intention 0.045 0.000 0.045
## 3 Compatibility -> Technology use 0.107 0.020 0.127
## 6 Perceived ease of use -> Adoption intention 0.088 0.000 0.088
## 7 Perceived ease of use -> Technology use 0.010 0.038 0.049
## 4 Emotional value -> Adoption intention 0.515 0.000 0.515
## 5 Emotional value -> Technology use 0.137 0.225 0.362
## 1 Adoption intention -> Technology use 0.437 0.000 0.437
## Sig_Direct Sig_Indirect Sig_Total Predicted
## 8 TRUE FALSE TRUE Adoption intention
## 9 FALSE FALSE FALSE Technology use
## 2 FALSE FALSE FALSE Adoption intention
## 3 FALSE FALSE FALSE Technology use
## 6 FALSE FALSE FALSE Adoption intention
## 7 FALSE FALSE FALSE Technology use
## 4 TRUE FALSE TRUE Adoption intention
## 5 FALSE TRUE TRUE Technology use
## 1 TRUE FALSE TRUE Technology use
For the direct paths, three out of nine paths are significant: Perceived usefulness -> Adoption intention (direct effect: 0.227), Emotional value -> Adoption intention (direct effect: 0.515) and Adoption intention -> Technology use (direct effect: 0.437). For the indirect paths two out of four paths are significant: Perceived usefulness -> Adoption intention -> Technology use (indirect effect: 0.099) and Emotional value -> Adoption intention -> Technology use (indirect effect: 0.225). The combined direct and indirect paths (total effect) is significant. The total effect of the path Emotional value -> Technology use combined with the path Emotional value -> Adoption intentions -> Technology use is 0.362.
These results suggest that for increasing Technology use on average, only Emotional value and Adoption intention are effective. Perceived usefulness, Compatibility and Perceived ease of use are not candidates for intervention based on the SEM results as they do not have a signigicant total effect on Technology use.
4.6.2.3 Example Step 3: Extract latent variable scores
By default, PLS-SEM model estimation produces standardized latent variable scores and this is the only option in SEMinR (version 2.3.4). However, unstandardized scores are preferred as input for NCA, and normalized unstandardized scores are needed for IPMA, CIPMA and BIPMA. The helper function unstandardize calculates the unstandardized latent variable scores from the standardized latent variable scores using procedures described in (Ringle & Sarstedt, 2016), such that the scale of the latent variable scores correspond to the scale of the original indicator scores. The R code of the helper function can be found in Section 7.4.7.
## Perceived usefulness Compatibility Perceived ease of use Emotional value
## 1 3.276582 3.000000 4.676176 3.322971
## 2 2.668901 3.336436 3.352351 3.663039
## 3 4.000000 3.336436 4.000000 4.000000
## Adoption intention Technology use
## 1 2.000000 2
## 2 4.329378 3
## 3 4.000000 3
## Mean Min Max
## Perceived usefulness 3.569914 1.000000 5
## Compatibility 3.462276 1.000000 5
## Perceived ease of use 4.025616 1.674851 5
## Emotional value 3.806854 1.000000 5
## Adoption intention 3.881627 1.000000 5
## Technology use 3.982759 1.000000 7
The resulting dataset with unstandardized latent variable scores is called dataset. The variables are now interpretable according to the Likert scales that were used to measure its raw indicators. The results show that minimum and maximum latent variable scores correspond to the minimum and maximum values of the Likert scale values. There is one exception: the minimum observed latent variable score for Perceived ease of use is 1.67 whereas the minimum value of the scale is 1. Apparently, none of the 174 cases (persons) scored a value 1 on all three indicators of this latent variable.
The unstandardized latent variable scores can be normalized to obtain normalized unstandardized latent variable scores. Normalization is essential if the predictor variables do not have the same scale values (e.g., one predictor variable is measured with a 1-5-Likert scale while another predictor variable is measured with a 1-7-Likert scale). If the same scale is used for all predictor variables, it is preferred not to normalize the scales and to keep the unstandardized latent variables scores, such that the results are interpretable according to the Likert scale values.
Data can be min-max normalized using the helper function normalize. The input arguments for this function are the data, the theoretical minimum and maximum values of the scale (the observed minimum or maximum values might be different), and the range of the new scale (e.g., 0-1 or 0-100). For example, (c)IPMA commonly uses a 0-100 normalization of the unstandardized latent variable scores. The R code of the helper function can be found in Section 7.4.8.
source("normalize.R")
data <- dataset
theoretical_min <- c(1,1,1,1,1,1)
theoretical_max <- c(5,5,5,5,5,7)
scale = c(0, 100) #percentages
dataset1 <- min_max_normalize (data, theoretical_min = theoretical_min, theoretical_max = theoretical_max, scale = scale)
head(dataset1, 3)## Perceived usefulness Compatibility Perceived ease of use Emotional value
## 1 56.91456 50.00000 91.90439 58.07427
## 2 41.72252 58.41091 58.80878 66.57599
## 3 75.00000 58.41091 75.00000 75.00000
## Adoption intention Technology use
## 1 25.00000 16.66667
## 2 83.23446 33.33333
## 3 75.00000 33.33333
The resulting dataset with 0-100 normalized unstandardized latent variable scores is called dataset1. The variable scores can be interpreted as percentages of the range of the scale. For example, the midpoint 3 of a non-normalized unstandardized 1-5-Likert scale becomes 50 after 0-100 normalization. Note that for the illustrative example normalization is not essential for conducting IPMA, CIPMA or BIPMA because the five predictor variables have the same scale values (1-5-Likert scales).
Since the results of NCA are insensitive for linear transformations, the results are the same for standardized, unstandardized, normalized or non-normalized scores. Unstandardized (normalized or non-normalized) latent variable scores are the preferred input for NCA because of interpretability. The reason is that in contrast to SEM where a relationship is describes in terms of a change of \(X\) producing a change of \(Y\) (e.g., more \(X\) produces more \(Y\)), NCA describes a relationship in terms of the necessity of a level of \(X\) for a level of \(Y\) (level \(X\) is necessary for level \(Y\)). By using interpretable levels linked to the original (unstandardized) scales, NCA results become more insightful.
4.6.2.4 Example Step 4: Conduct NCA
To estimate the necessity of the 9 relationships in the TAM model, 9 necessity analyses are done to obtain necessity effect sizes and p values. These analyses are grouped into two multiple NCA’s: one for the outcome Adoption intention (with four conditions Perceived Usefulness, Compatibility, Perceived ease of use, Emotional value), and one for the outcome Technology use (with five conditions (Perceived usefulness, Compatibility, Perceived ease of use, Emotional value, Adoption intention). The remainder of this demonstration focuses on the outcome Technology use, thus only five necessity relationships are analysed.
In the original four studies that use the example, the researchers make following choices for the NCA analysis:
Ceiling line = CE-FDH.
Effect size threshold level = 0.10.
p value threshold level = 0.05.
Scope: empirical scope.
Outlier removal: none.
Target outcome = 85% (only in Hauff et al., 2024; Sarstedt et al., 2024).
For this demonstration the same choices for the NCA analysis are made for the primary analysis (and different choices for the robustness checks).
The original studies use standardized scores (Richter, Schubring, et al., 2020), non-normalized unstandardized scores (Richter, Hauff, Ringle, et al., 2023), or 0-100 normalized unstandardized scores (Hauff et al., 2024; Sarstedt et al., 2024) as input for NCA. For this demonstration first the preferred scores from NCA perspective are used as input data: unstandardized latent variable scores without normalization (because all indicator scales of the conditions use the same Likert scales).
library(NCA)
# Multiple NCA for Technology use
model1.technology <- nca_analysis(dataset, 1:5, 6, ceilings = "ce_fdh", test.rep = 10000) #10000 for final analysis## Setting up parallelization, this might take a few seconds... Do test for : ce_fdh - Perceived usefulnessDone test for: ce_fdh - Perceived usefulness
## Do test for : ce_fdh - CompatibilityDone test for: ce_fdh - Compatibility
## Do test for : ce_fdh - Perceived ease of useDone test for: ce_fdh - Perceived ease of use
## Do test for : ce_fdh - Emotional valueDone test for: ce_fdh - Emotional value
## Do test for : ce_fdh - Adoption intentionDone test for: ce_fdh - Adoption intention
##
## ---------------------------------------------------------------------------
## ce_fdh p
## Perceived usefulness 0.24 0.001
## Compatibility 0.21 0.000
## Perceived ease of use 0.24 0.016
## Emotional value 0.33 0.000
## Adoption intention 0.29 0.000
## ---------------------------------------------------------------------------
nca_output (model1.technology, summaries = FALSE)
###not run###
# Multiple NCA for Adoption intention
#model1.adoption <- nca_analysis(dataset, 1:5, 6, ceilings = "ce_fdh", test.rep = 10000)
#model1.adoption
#nca_output (model1.adoption, summaries = FALSE)The results show NCA’s effect size and \(p\) value of the five conditions for Technology use. The results correspond to those reported in the four original studies using the SmartPLS software. It can be concluded that the five conditions are necessary conditions for Technology use because the three criteria for identifying necessity in kind are met:
- A necessity hypothesis is formulated and theoretically justified (For the purpose of this demonstration this requirement is assumed to hold).
- The effect size is relatively large (\(d \geq 0.10\)).
- The \(p\) value is relatively small (\(p \leq 0.05\)).
This means that the analysis can continue with the bottleneck table that includes all five conditions for analyzing ‘necessity in degree’. This analysis gives information about the minimum level of a condition that is necessary for the target level of the outcome. It also informs if a selected target outcome level is achievable, given the observed levels of the conditions. If a case has a value of a condition below the minimum required level, this case is a ‘bottleneck case’ for that condition. If the case has a condition value above the minimum required level, the case is not a bottleneck case for this condition, but could be a bottleneck case for another conditions. Only if for all conditions the values are above the threshold levels, the case is not a bottleneck case and the target outcome level becomes possible. Only when all condition values exceed their respective threshold levels, the case is not a bottleneck case, making the target outcome level achievable.
The use of non-normalized unstandardized latent variable scores and of ‘actual values’ in the bottleneck table ensures a direct link between the values in the bottleneck table and the values of the Likert scales that were used for measuring the indicator scores. This means that in NCA’s nca_analysis function the values of conditions in the bottleneck table must be must specified as ‘actual’ using the argument bottleneck.x = 'actual'. Since the outcome variable Technology use has 7 distinct levels, the steps in the bottleneck table preferably corresponds to these levels of the outcome. This can be done with the argument steps which can specify these 7 levels.
library(NCA)
# Arguments for the bottleneck table
bottleneck.y = "actual"
bottleneck.x = "actual"
steps = seq(1, 7, 1)
# Multiple NCA for Technology use
model2.technology <- nca_analysis(dataset,# unstandardized (non-normalized) latent variable scores
1:5, # five conditions
6, # outcome
ceilings = "ce_fdh",
bottleneck.x = bottleneck.x,
bottleneck.y = bottleneck.y,
steps = steps)
nca_output (model2.technology, bottlenecks = TRUE, summaries = FALSE, plots = FALSE)##
## ---------------------------------------------------------------------------
## Bottleneck CE-FDH (cutoff = 0)
## Y Technology use (actual)
## 1 Perceived usefulness (actual)
## 2 Compatibility (actual)
## 3 Perceived ease of use (actual)
## 4 Emotional value (actual)
## 5 Adoption intention (actual)
## ---------------------------------------------------------------------------
## Y 1 2 3 4 5
## 1 NN NN NN NN NN
## 2 NN NN 2.015 NN NN
## 3 NN NN 2.015 NN NN
## 4 1.628 2.021 2.339 2.986 2.353
## 5 1.628 2.348 2.339 2.986 2.353
## 6 2.925 2.348 2.355 2.986 2.353
## 7 3.648 2.348 3.676 2.986 4.000
##
The outcome variable Technology use is the perceived frequency of utilizing an e-book. The 7 anchor points are 1 = never, 2 = seldom; 3 = several times a month; 4 = once a week; 5 = several times a week; 6 = daily; 7 = several times daily. The condition variables are measured on a 5 point disagree-agree Likert scale where the anchor points range from 1 = strongly disagree to 5 = agree fully. In the original studies (and here) it is assumed that these Likert scales are interval scales, meaning the distances between anchor points are treated as being equal. This assumption facilitates quantitative analysis of the data, although it is often a strong assumption.
The bottleneck table can be evaluated row-wise. It shows that for a given target outcome level of Technology use (first column), the conditions must meet a certain minimum level (next columns). For example, for a level of 4 of Technology use (‘once a week’), it is necessary to have level 1.628 of Perceived usefulness, and for level 6 of Technology use the Perceived usefulness must be at least 2.925.
The bottleneck tables that are used by Hauff et al. (2024) and Sarstedt et al. (2024) have a large number of steps. They used the 0-100 normalized unstandardized latent variable. Their bottleneck analyses use steps of 5% Technology use, starting from 0% = original level 1 to 100% = original level 7. For the purpose of CIPMA, ‘actual’ values for the outcome are selected (because the input data are already percentage of range) for the outcome and ‘percentile’ values for the conditions. Their analysis is replicated as follows:
library(NCA)
# Arguments for the bottleneck table
bottleneck.y = "actual"
bottleneck.x = "percentile"
steps=seq(0, 100, 5)
test.rep = 10000 #10000 for final analysis
# Multiple NCA for Technology use
model3.technology <- nca_analysis(dataset1, 1:5, 6, ceilings = "ce_fdh", bottleneck.x = bottleneck.x , bottleneck.y = bottleneck.y, steps = steps, test.rep = test.rep)## Setting up parallelization, this might take a few seconds... Do test for : ce_fdh - Perceived usefulnessDone test for: ce_fdh - Perceived usefulness
## Do test for : ce_fdh - CompatibilityDone test for: ce_fdh - Compatibility
## Do test for : ce_fdh - Perceived ease of useDone test for: ce_fdh - Perceived ease of use
## Do test for : ce_fdh - Emotional valueDone test for: ce_fdh - Emotional value
## Do test for : ce_fdh - Adoption intentionDone test for: ce_fdh - Adoption intention
##
## ---------------------------------------------------------------------------
## Bottleneck CE-FDH (cutoff = 0)
## Y Technology use (actual)
## 1 Perceived usefulness (percentile)
## 2 Compatibility (percentile)
## 3 Perceived ease of use (percentile)
## 4 Emotional value (percentile)
## 5 Adoption intention (percentile)
## ---------------------------------------------------------------------------
## Y 1 2 3 4 5
## 0 NN (0) NN (0) NN (0) NN (0) NN (0)
## 5 NN (0) NN (0) 0.6 (1) NN (0) NN (0)
## 10 NN (0) NN (0) 0.6 (1) NN (0) NN (0)
## 15 NN (0) NN (0) 0.6 (1) NN (0) NN (0)
## 20 NN (0) NN (0) 0.6 (1) NN (0) NN (0)
## 25 NN (0) NN (0) 0.6 (1) NN (0) NN (0)
## 30 NN (0) NN (0) 0.6 (1) NN (0) NN (0)
## 35 1.7 (3) 5.7 (10) 1.1 (2) 5.7 (10) 4.6 (8)
## 40 1.7 (3) 5.7 (10) 1.1 (2) 5.7 (10) 4.6 (8)
## 45 1.7 (3) 5.7 (10) 1.1 (2) 5.7 (10) 4.6 (8)
## 50 1.7 (3) 5.7 (10) 1.1 (2) 5.7 (10) 4.6 (8)
## 55 1.7 (3) 8.6 (15) 1.1 (2) 5.7 (10) 4.6 (8)
## 60 1.7 (3) 8.6 (15) 1.1 (2) 5.7 (10) 4.6 (8)
## 65 1.7 (3) 8.6 (15) 1.1 (2) 5.7 (10) 4.6 (8)
## 70 17.2 (30) 8.6 (15) 2.9 (5) 5.7 (10) 4.6 (8)
## 75 17.2 (30) 8.6 (15) 2.9 (5) 5.7 (10) 4.6 (8)
## 80 17.2 (30) 8.6 (15) 2.9 (5) 5.7 (10) 4.6 (8)
## 85 47.1 (82) 8.6 (15) 28.7 (50) 5.7 (10) 39.1 (68)
## 90 47.1 (82) 8.6 (15) 28.7 (50) 5.7 (10) 39.1 (68)
## 95 47.1 (82) 8.6 (15) 28.7 (50) 5.7 (10) 39.1 (68)
## 100 47.1 (82) 8.6 (15) 28.7 (50) 5.7 (10) 39.1 (68)
##
In this version of the bottleneck table, the outcome is expressed as actual values (here the 0-100% normalized values) and the conditions as percentiles. The percentile value corresponds to the percentage of cases that are unable to achieve the selected target level of the outcome. The number between brackets refers to the number of cases that were unable to meet the required level of the condition for the given target level of the outcome. For example, for the target level of Technology use of 85%, 47.1% of cases (82 cases) were unable to achieve the required level for Perceived usefulness. This means that these cases will not have a level of 85% Technology use. A case that is not able to achieve a target outcome because the required level of the necessary condition is not met is a bottleneck case.
The level of 85% outcome on a 0-100 normalized scale corresponds to level 6.1 on the original 1-7-Likert scale. A value of 6 on the Likert scale (daily use of the e-reader) corresponds to 83.33% on the 0-100 normalized scale. It shows that although 0-100 normalization is common in the context of IPMA the link with the original scales are obscured.
The percentage of bottleneck cases for a given condition and target outcome can be extracted from the the bottleneck table if percentiles were used as values for the conditions by using the helper function get_bottleneck_cases. The R code of the helper function be found in Section 7.4.9.
source("get_bottleneck_cases.R")
# Multiple NCA for Technology use
data <- dataset1
predicted <- "Technology use"
predictors <- c("Perceived usefulness",
"Compatibility",
"Perceived ease of use",
"Emotional value",
"Adoption intention")
corner = 1 # default expected empty space; if needed specify for each condition, e.g. corner = c(1,2,1)
target_outcome <- 85
ceiling <- "ce_fdh"
bottlenecks_technology <- get_bottleneck_cases(data = data, conditions = predictors, outcome = predicted, corner = corner, target_outcome = target_outcome, ceiling = ceiling)
bottlenecks_technology## $bottleneck_cases_per
## Bottlenecks (Y = 85)
## Perceived usefulness 47.126437
## Compatibility 8.620690
## Perceived ease of use 28.735632
## Emotional value 5.747126
## Adoption intention 39.080460
##
## $bottleneck_cases_num
## Bottlenecks (Y = 85)
## Perceived usefulness 82
## Compatibility 15
## Perceived ease of use 50
## Emotional value 10
## Adoption intention 68
These numbers correspond the the number in row Y = 85 of the bottleneck table where the values of the conditions are expressed in percentiles. The percentage of bottleneck cases is used as input to the CIPMA.
4.6.2.5 Example Step 5: Produce BIPMA
Before producing the new BIPMA (see Section 4.6.1.5), this demonstration first produces IPMA and CIPMA.
For producing the classic IPMA Importance and Performance scores are extracted from the SEM results (steps 2 and 3). The Importance score of each predictor variable corresponds to the total effect (path coefficients) on the predicted variable (step 2). The Performance score of each predictor variable is the mean of the 0-100 normalized unstandardized variable score (step 3). The helper function get_ipma_df can be used for extracting these values from the SEM results. The R code of the helper function be found in Section 7.4.10.
source("get_ipma_df.R")
data <- dataset1 # 0-100 normalized unstandardized
sem <- TAM_pls
# Multiple NCA for Technology use
predicted <- "Technology use"
predictors <- c("Perceived usefulness",
"Compatibility",
"Perceived ease of use",
"Emotional value",
"Adoption intention")
IPMA_df_technology <- get_ipma_df(data = data, sem = sem, predictors = predictors, predicted = predicted)
IPMA_df_technology## predictor Importance Performance
## 1 Perceived usefulness 0.14921041 64.24785
## 2 Compatibility 0.12699788 61.55690
## 3 Perceived ease of use 0.04863022 75.64040
## 4 Emotional value 0.36169649 70.17135
## 5 Adoption intention 0.43705233 72.04067
The IPMA is produced by mapping the predictor variables on a 2 x 2 plot with the horizontal axis representing Importance and the vertical axis Performance. This can be done with the helper function get_ipma_plot, which R code can be found in Section 7.4.11.
source("get_ipma_plot.R")
# Multiple NCA for Technology use
ipma_df <- IPMA_df_technology
x_range <- c(0,0.6) # range of the Importance axis
y_range <- c(0,100) # range of the Performance axis
IPMA_plot_technology <- get_ipma_plot(ipma_df = ipma_df, x_range = x_range, y_range = y_range) The results for Technology use are shown in Figure 4.18. Although the SEM results show that Compatibility and Perceived ease of use have no significant effect on Technology use, the plot includes the points for all predictors. The reason is that this choice was made in the publications that previously used this example.
According to IPMA, priority of action should be given to a predictor with high Importance and low Performance scores. From the two predictors with the highest Importance (Emotional value and Adoption intention), Emotional value has the lowest Performance score and could be selected to prioritize action. This action should result in an increase of its current Performance score (mean score of the latent variable), which is somewhat below 75%, to a higher score.
Figure 4.18: Classic Importance Performance Map Analysis (IPMA) for the outcome Technology use.
CIPMA adds the bottleneck dimension to IPMA. In selecting the priority predictor, CIPMA not only considers the Importance and Performance scores of the predictor, but also the percentage of bottleneck cases of the predictor: the percentage of cases that are unable to achieve a particular target outcome level. As shown above, the percentage of bottleneck cases per predictor can be obtained with the the helper function get_bottleneck_cases. For producing CIPMA the IPMA dataset with Importance and Performance scores is extended with the percentage of bottleneck cases to get the CIPMA dataset. The function get_cipma_df is used for this; the R code of the helper function be found in Section 7.4.12. Note that the output includes the column ‘Necessity’ that indicates of the predictor is necessary or not given the selected threshold values for the effect size \(d\) and the \(p\) value. These predictors should not show up in the bottleneck table and therefore should not be part of the bottleneck dimension of CIPMA; Therefore, in the get_cipma_df function a standard point size as in IPMA is given to such predictor.
source("get_cipma_df.R")
# Multiple NCA for Technology use
# Identify predictors that are necessary
d_threshold <- 0.1
p_threshold <- 0.05
model <- model3.technology
effect_size <- sapply(predictors, function(p) model$summaries[[p]][[2]][[2]])
p_value <- sapply(predictors, function(p) model$summaries[[p]][[2]][[6]])
necessity <- ifelse(effect_size >= d_threshold & p_value <= p_threshold, "yes", "no")
ipma_df <- IPMA_df_technology
bottlenecks <- bottlenecks_technology
CIPMA_df_technology <- get_cipma_df(ipma_df = ipma_df, bottlenecks = bottlenecks, necessity = necessity)
CIPMA_df_technology## predictor Importance Performance Bottleneck_cases_per
## 1 Perceived usefulness 0.14921041 64.24785 47.126437
## 2 Compatibility 0.12699788 61.55690 8.620690
## 3 Perceived ease of use 0.04863022 75.64040 28.735632
## 4 Emotional value 0.36169649 70.17135 5.747126
## 5 Adoption intention 0.43705233 72.04067 39.080460
## Bottleneck_cases_num Necessity Predictor_with_cases
## 1 82 yes Perceived usefulness (47%, n=82)
## 2 15 yes Compatibility (9%, n=15)
## 3 50 yes Perceived ease of use (29%, n=50)
## 4 10 yes Emotional value (6%, n=10)
## 5 68 yes Adoption intention (39%, n=68)
Now the CIPMA plot can be produced with the helper function get_cipma_plot, which R code can be found in Section 7.4.13.
source("get_cipma_plot.R")
# Multiple NCA for Technology use
cipma_df <- CIPMA_df_technology
x_range <- c(0,0.6)
y_range <- c(0,100)
size_limits = c(0,100)
size_range <- c(0.5,50) # the size of the bulbs
name_plot <- "Original"
cIPMA_plot_technology <- get_cipma_plot(cipma_df = cipma_df,
x_range = x_range,
y_range = y_range,
size_limits = size_limits,
size_range = size_range)
Figure 4.19: Combined Impotance Performance Map Analysis (CIPMA) for the outcome Technology use. The size of the dots is an indication of the number of cases that cannot achieve the target outcome of 85% of maximum outcome.
The results are shown in Figure 4.19, which corresponds to the CIPMA plots in Hauff et al. (2024) and Sarstedt et al. (2024). The IPMA plot is extended with points sizes that depend on the number or percentage of bottleneck cases. Since all predictors are necessary, each point size is relevant. The percentage and number of bottleneck cases are between brackets. The NCA results show large differences in percentage and number of bottleneck cases between the five conditions. The order from high to low percentages is: Perceived usefulness, Adoption intention, Perceived ease of use, Compatibility and Emotional value. Perceived usefulness has 47% bottleneck cases, whereas Emotional value has only 6%. This means that from the perspective of NCA Perceived usefulness is a more relevant than emotional value. Successful interventions on a single condition (with the goal that bring all bottleneck cases above the threshold level) will reduce more bottleneck cases when the intervention focuses on Perceived usefulness, rather than on emotional value. Note that such intervention to eliminate bottlenecks does not guarantee that the target outcome level (85%) will be achieved: a necessary condition for an outcome is not a sufficient condition for it. Additionally, cases may be bottlenecks in multiple conditions. Note also the relevance of a necessary condition in terms of effect size may differ from the relevance of a necessary condition in terms of number of bottleneck cases. The first refers to the magnitude of the constraining role of the ceiling line (the phenomenon), whereas the second refers to distribution of cases below the ceiling (the size of a group of cases not able to ‘escape’ from the constraint). For emotional value the effect size is largest (0.33) but the percentage of bottleneck cases the lowest (6%).
The BIPMA extends the CIPMA by considering only single bottleneck cases per predictor as explained in Section 4.6.1.5. The number of single bottleneck cases can be extracted with the helper function get_single_bottleneck_cases. The R code of the helper function be found in Section 7.4.14.
source("get_single_bottleneck_cases.R")
data <- dataset1
ceilings = "ce_fdh"
target_outcome <- 85
# Multiple NCA for Technology use
predicted <- "Technology use"
predictors <- c("Perceived usefulness",
"Compatibility",
"Perceived ease of use",
"Emotional value",
"Adoption intention")
corner = 1 # default expected empty space; if needed specify for each condition, e.g. corner = c(1,2,1)
single_bottlenecks_technology <- get_single_bottleneck_cases(data, conditions = predictors, outcome = predicted, corner = corner, target_outcome = target_outcome, ceiling = ceilings)
single_bottlenecks_technology## $single_bottleneck_cases_per
## Bottlenecks (Y = 85)
## Perceived usefulness 14.9425287
## Compatibility 0.5747126
## Perceived ease of use 4.0229885
## Emotional value 0.0000000
## Adoption intention 8.0459770
##
## $single_bottleneck_cases_num
## Bottlenecks (Y = 85)
## Perceived usefulness 26
## Compatibility 1
## Perceived ease of use 7
## Emotional value 0
## Adoption intention 14
Next, the significant predictor variables for the predicted variable must be identified which can be done as follows:
sem_sig <- TAM_sig
for_select_predicted <- sem_sig[sem_sig$Predicted == predicted, ]
sufficiency <- ifelse(for_select_predicted$Sig_Total, "yes", "no")
names(sufficiency) <- predictorsSubsequently, the BIPMA dataset with Bottlenecks (single bottlenecks), Importance and Performance scores can be obtained with the helper function get_bipma_df; the R code of the helper function be found in Section 7.4.15.
# Function to create a BIPMA dataset with Importance, Performance, and Bottlenecks (percentage of SINGLE bottleneck cases)
source("get_bipma_df.R")
# Multiple NCA for Technology use
ipma_df <- IPMA_df_technology
single_bottlenecks <- single_bottlenecks_technology
BIPMA_df_technology <- get_bipma_df(ipma_df = ipma_df, single_bottlenecks=single_bottlenecks, necessity = necessity, sufficiency = sufficiency)
BIPMA_df_technology## predictor Importance Performance Single_bottleneck_cases_per
## 1 Perceived usefulness 0.14921041 64.24785 14.9425287
## 2 Compatibility 0.12699788 61.55690 0.5747126
## 3 Perceived ease of use 0.04863022 75.64040 4.0229885
## 4 Emotional value 0.36169649 70.17135 0.0000000
## 5 Adoption intention 0.43705233 72.04067 8.0459770
## Single_bottleneck_cases_num Necessity Sufficiency
## 1 26 yes no
## 2 1 yes no
## 3 7 yes no
## 4 0 yes yes
## 5 14 yes yes
## Predictor_with_single_cases
## 1 Perceived usefulness (15%, n=26)
## 2 Compatibility (1%, n=1)
## 3 Perceived ease of use (4%, n=7)
## 4 Emotional value (0%, n=0)
## 5 Adoption intention (8%, n=14)
Now the BIPMA can be created with the helper function get_bipma_plot, which R code can be found in Section 7.4.16.
source("get_bipma_plot.R")
#Multiple NCA for Technology use
bipma_df <- BIPMA_df_technology
x_range <- c(0,0.6)
y_range <- c(0,100)
size_limits = c(0,100)
size_range <- c(0.5,50) # the size of the bulbs
BIPMA_plot_technology <- get_bipma_plot(bipma_df = bipma_df, x_range = x_range, y_range = y_range, size_limits = size_limits, size_range = size_range)
Figure 4.20: Bottleneck Importance Performance Map Analysis (BIPMA) for the outcome Technology use. The size of the dots is an indication of the number of single bottleneck cases that cannot achieve the target outcome of 85% of maximum outcome. Grey dots: Non-significant average effect according to SEM (Importance score compatible with 0). Black dots: No significant necessity effect according to NCA. Conditions that are non-significant according to both NCA and SEM are not shown.
The results are shown in Figure 4.20. For each condition the percentage and number of single bottleneck cases is given between brackets. The results again show large differences in the percentage and number of single bottleneck cases between the five conditions. Also the order from high to low percentages is the same as in CIPMA. However, the number of percentages in BIPMA are considerably lower than in CIPMA. Perceived usefulness has most single bottleneck cases (15%, n=26), whereas Emotional value has none. This means that, in contrast to the conclusion from CIPMA, emotional value is not a relevant predictor for an action based on NCA. Even if the bottlenecks for this predictor are eliminated, the outcome is not achievable because still bottlenecks of other conditions are active. Successful group interventions on a single predictor (with the goal to bring all bottleneck cases above the threshold level) could focus on Perceived usefulness, which has almost twice an many single bottlenecks than Adoption intention. Perceived usefulness, Compatibility and Perceived ease of use are non-significant results according to SEM (no average effects on Technology use). Predictors hat are necessary from the perspective of NCA, but are non-significant predictors from the perspective of SEM, are placed on the Importance axis at \(x = 0\) and the corresponding points are shown in grey. Predictors that are significant from the perspective of SEM but non-significant from the perspective of NCA are shown as small black points, but none of the conditions in this BIBMA plot were non-significant from the perspective of NCA. Predictors that are non-significant from the perspective of both SEM and NCA are not included in the BIPMA plot.
For selecting a proper intervention strategy based on the BIPMA results see Section 4.6.1.5.
4.6.2.6 Example Step 6: Conduct robustness checks
For the NCA part of a study that combines NCA with (PLS-)SEM, several robustness checks can be done (see Section 4.6.1.6). For this demonstration eight checks are selected (Table 4.2). In each check one choice is changed and compared with the original results, and it is evaluated if the conclusion regarding necessity is changed.
| Robustness check | Original | Ceiling change | d threshold change | p threshold change | Scope change | Single outlier removal | Multiple outlier removal | Target lower | Target higher |
|---|---|---|---|---|---|---|---|---|---|
| Ceiling line | CE-FDH | CR-FDH | CE-FDH | CE-FDH | CE-FDH | CE-FDH | CE-FDH | CE-FDH | CE-FDH |
| Threshold level of the effect size | 0.10 | 0.10 | 0.20 | 0.10 | 0.10 | 0.10 | 0.10 | 0.10 | 0.10 |
| Threshold level of the p value | 0.05 | 0.05 | 0.05 | 0.01 | 0.05 | 0.05 | 0.05 | 0.05 | 0.05 |
| Scope | empirical | empirical | empirical | empirical | theoretical | empirical | empirical | empirical | empirical |
| Outlier removal | no | no | no | no | no | yes, single | yes, multiple | no | no |
| Target outcome | 85 | 85 | 85 | 85 | 85 | 85 | 85 | 80 | 90 |
The effect of changing several researcher’s choices regarding necessity is shown in the NCA robustness table (Table 4.3). This table is produced with the integrated function ncasem_examplethat includes all previous helper functions as well as the robustness check. The code can be found in Section 7.4.18.
| Robustness check | Effect size | p value | Necessity | Single bottlenecks(%) | Single bottlenecks(#) | Priority |
|---|---|---|---|---|---|---|
| Perceived usefulness | ||||||
| Original | 0.24 | 0.001 | yes | 14.9 | 26 | 1 |
| Ceiling change | 0.19 | 0.001 | yes | 5.2 | 9 | 2 |
| d value change | 0.24 | 0.001 | yes | 14.9 | 26 | 1 |
| p value change | 0.24 | 0.001 | yes | 14.9 | 26 | 1 |
| Scope change | 0.24 | 0.001 | yes | 14.9 | 26 | 1 |
| Single outlier removal | 0.30 | 0.000 | yes | 6.5 | 11 | 1 |
| Multiple outlier removal | 0.29 | 0.000 | yes | 6.6 | 11 | 1 |
| Target lower | 0.24 | 0.001 | yes | 10.3 | 18 | 1 |
| Target higher | 0.24 | 0.001 | yes | 14.9 | 26 | 1 |
| Compatibility | ||||||
| Original | 0.21 | 0.000 | yes | 0.6 | 1 | 4 |
| Ceiling change | 0.15 | 0.000 | yes | 2.3 | 4 | 3 |
| d value change | 0.21 | 0.000 | yes | 0.6 | 1 | 4 |
| p value change | 0.21 | 0.000 | yes | 0.6 | 1 | 4 |
| Scope change | 0.21 | 0.000 | yes | 0.6 | 1 | 4 |
| Single outlier removal | 0.28 | 0.000 | yes | 1.2 | 2 | 5 |
| Multiple outlier removal | 0.29 | 0.000 | yes | 1.2 | 2 | 5 |
| Target lower | 0.21 | 0.000 | yes | 1.1 | 2 | 3.5 |
| Target higher | 0.21 | 0.000 | yes | 0.6 | 1 | 4 |
| Perceived ease of use | ||||||
| Original | 0.24 | 0.015 | yes | 4 | 7 | 3 |
| Ceiling change | 0.20 | 0.013 | yes | 1.7 | 3 | 4 |
| d value change | 0.24 | 0.015 | yes | 4 | 7 | 3 |
| p value change | 0.24 | 0.015 | no | 4 | 7 | 3 |
| Scope change | 0.36 | 0.015 | yes | 4 | 7 | 3 |
| Single outlier removal | 0.18 | 0.047 | yes | 3 | 5 | 3 |
| Multiple outlier removal | 0.13 | 0.051 | no | 3 | 5 | 3 |
| Target lower | 0.24 | 0.015 | yes | 0.6 | 1 | 5 |
| Target higher | 0.24 | 0.015 | yes | 4 | 7 | 3 |
| Emotional value | ||||||
| Original | 0.33 | 0.000 | yes | 0 | 0 | 5 |
| Ceiling change | 0.17 | 0.020 | yes | 0 | 0 | 5 |
| d value change | 0.33 | 0.000 | yes | 0 | 0 | 5 |
| p value change | 0.33 | 0.000 | yes | 0 | 0 | 5 |
| Scope change | 0.33 | 0.000 | yes | 0 | 0 | 5 |
| Single outlier removal | 0.44 | 0.000 | yes | 2.4 | 4 | 4 |
| Multiple outlier removal | 0.44 | 0.000 | yes | 2.4 | 4 | 4 |
| Target lower | 0.33 | 0.000 | yes | 1.1 | 2 | 3.5 |
| Target higher | 0.33 | 0.000 | yes | 0 | 0 | 5 |
| Adoption intention | ||||||
| Original | 0.29 | 0.000 | yes | 8 | 14 | 2 |
| Ceiling change | 0.20 | 0.001 | yes | 5.7 | 10 | 1 |
| d value change | 0.29 | 0.000 | yes | 8 | 14 | 2 |
| p value change | 0.29 | 0.000 | yes | 8 | 14 | 2 |
| Scope change | 0.29 | 0.000 | yes | 8 | 14 | 2 |
| Single outlier removal | 0.38 | 0.000 | yes | 5.3 | 9 | 2 |
| Multiple outlier removal | 0.42 | 0.000 | yes | 5.4 | 9 | 2 |
| Target lower | 0.29 | 0.000 | yes | 1.7 | 3 | 2 |
| Target higher | 0.29 | 0.000 | yes | 8 | 14 | 2 |
Without discussing details, the general results of the NCA robustness table (Table 4.3) are as follows. The results for Perceived usefulness are robust with respect to the conclusion about necessity in kind. For necessity in degree only a change of ceiling line from CE-FDH to CR-FDH resulted in a different priority level (from first to second). Most single bottleneck cases can be found for this predictor. Generally, the original results for this predictor can be considered as robust. The same conclusion applies to Compatibility. The original conclusion about necessity in kind is stable and for all checks the priority level for action remains low. However, the results of Perceived ease of use are more variable. For example, the statistical significance of the original finding and therefore the conclusion of necessity is somewhat fragile. Also the number of bottleneck cases changes from 7 to 1 and is sensitive to small changes of the selected target level. The results for Emotional value and Adoption intention are relatively robust.
Note that the NCA robustness table is a tool for better understanding and communicating the credibility of the original results. The findings from the checks largely depend the the selected parameters for the checks. No hard rules exist to decide about the robustness or fragility of the results as this is a judgement by the researcher and others.
4.6.3 Recommendations for combining NCA and (PLS-)SEM
In publications where NCA is applied in combination with (PLS-)SEM, usually (PLS-)SEM is the main analysis and NCA is used as an additional analysis. However, several guidelines for applying NCA are often violated. This applies, for example, to the following recommendations with ‘must-have’ or ‘should-have’ priority level (see the checklist in Section 1.8):
Checklist item 4: “When comparing necessity (causal) logic and NCA with causal interpretations of conventional regression-based/statistical approaches, use the term “probabilistic sufficiency” and not just “sufficiency” for the latter approaches, as “sufficiency” suggests (quasi-)determinism, like in QCA configurational sufficiency logic. This recommendation is often violated in studies that combine NCA with PLS-SEM. […]“. The results of regression analysis (path coefficients of the structural model) are often interpreted as ‘sufficiency’, whereas sufficiency (like necessity) refers to deterministic causal logic and not to the probabilistic causal logic. A better description of the presumed causal relationships of the structural model (like any relationship that is analysed with regression analysis) would be ‘probabilistic sufficiency’ (Dul, 2024a).
Checklist item 7: “Formulate the necessity relationship explicitly as a necessary condition hypothesis:”X is necessary for Y”. For hypothesis testing research this is done before data analysis; for hypothesis building/exploration research this is done after data analysis when a potential necessity relationship is found.” In studies that combine NCA with (PLS-)SEM often well-founded probabilistic sufficiency hypotheses are formulated (to be tested with the structural (PLS-)SEM model). However, necessity hypotheses are missing. Formulating necessity hypotheses is a requirement since the necessity causal perspective differs from the probabilistic sufficiency causal perspective. This applies also to studies that use NCA for exploration or as an additional analysis. A good practice is to formulate necessity hypotheses prior to conducting the analysis, just as is done with probabilistic sufficiency hypotheses.
Checklist item 9: “Explain why X is necessary for Y using necessity logic (why cases with the outcome will almost always have the condition (if Y then X); why cases without the condition rarely have the outcome (if no X then no Y); why the absence of the condition cannot be compensated or substituted by another factor. Consider doing and reporting the results of a thought experiment (searching for exceptions) in the development of a necessity hypothesis. Note that formulating and justifying a necessity relationship is a creative process, supported by literature and experiences of academics and practitioners.” This often violated recommendation is related to the previous one. Even if a necessity hypothesis is formulated, it should also be explained why it is expected that X is necessary for Y (the theoretical necessity mechanism).
Checklist item 18: “Explain possible data transformations. NCA only allows linear data transformation (e.g., min-max transformation, normalization, standardization, or percentage transformation), unless non-linear transformed data validly represent X and Y of the hypothesis. NCA’s data analysis does not require data transformation. Often non-transformed data are more meaningful and better interpretable (e.g., levels of a Likert scale) than transformed data. This particularly applies to NCA’s necessity in degree for interpreting that a certain level of X is necessary for a certain level of Y. Do not conduct non-linear data transformation (e.g., log-transformation, logistic transformation) unless only the transformed X or Y represent the concepts X and Y in the necessity hypothesis. […]”. In most applications of (PLS-)SEM, latent variable scores are standardized (centering the data around zero and scaling the data to have a standard deviation of one). For proper interpretation of necessity in degree (bottleneck table) the use of unstandardized scores is more meaningful. Unstandardized scores are closer related to the original measurement scale than standardized scores, which makes interpretations of levels more meaningful.
Checklist item 21: “Specify and justify the primary selection of the ceiling line (e.g., CE-FDH when X or Y is discrete or when the ceiling line is expected to be non-linear; CR-FDH when X and Y are continuous or when the ceiling line is expected to be straight).” Often no justification is given for the selection of the ceiling line. The CE-FDH ceiling line is commonly selected without further explanation, possibly because this line was used for good reasons in the original publication that introduced NCA in the (PLS-)SEM context (Richter, Schubring, et al., 2020). However, this reason might not apply in other situations. Similarly, when the two default ceiling lines (CE-FDH and CR-FDH) are used no explanation is given for this selection.
Checklist item 28: “Show in the main text or an appendix the XY tables or XY plots of all tested/explored relationships such that the reader can inspect the patterns.” Often not all scatter plots of tested necessity relationships are presented. Sometime no scatter plots, or only scatter plots of supported necessity relationships are shown.
Checklist item 30: “Conclude about necessity in kind using three criteria: 1. theoretical justification (the hypothesis); 2. Effect size large enough (above the selected threshold value), p value small enough (below the selected threshold value).” In many studies not all three criteria for concluding about necessity (theoretical support, large effect size, small p value) are taken into consideration. Often the requirement of theoretical support is lacking (see above checklist items 7 and 9). Usually only theoretical support for the probabilistic sufficiency relationships of the structural model is provided, but this is not informative about the necessity relationship. Without theoretical support for a necessity relationship, it is impossible to conclude that a necessity relationship was identified, even if the effect size was large enough, and the p value small enough.
Checklist item 34: “Summarize the results of the robustness checks: is the conclusion about necessity sensitive for choices by the researcher regarding ceiling line, effect size threshold, p value threshold, scope (theoretical, empirical), and removing/keeping outliers (ceiling and scope outliers). Conclude if the results are robust or fragile.” In many studies a robustness check is done for the (PLS-)SEM part of the study, but not for the NCA part. Robustness checks for NCA are different than those for (PLS-)SEM, and equally important. For example, outliers for (PLS-)SEM may not be outliers for NCA and vice-versa. NCA’s outlier analysis can be done with the NCA software in R (see Section 4.6.2 for an example).
Checklist item 38: “When NCA is used in combination with another methods (e.g., regression-based methods or QCA), report how the results of NCA and of the other method complement each other.” In many studies (PLS-)SEM results and NCA results are presented separately without discussing the insights that obtained from combining them. The discussion could focus on the consequences of the combined results for theory and practice. The use of BIPMA (see Section 4.6.1.5), an extended version of CIPMA (Hauff et al., 2024) could be helpful to integrate the results.
The quality of studies that combine NCA with (PLS-)SEM could be enhanced by ensuring that these ‘must-have’ recommendations are fulfilled. Once the foundational requirements are met, further improvements can be achieved by addressing the ‘should-have’ and ‘nice-to-have’ recommendations in the checklist (Section 1.8). As the number of combined NCA and (PLS-)SEM studies grows, reviewers may raise the standard for the appropriate application of NCA. The checklist includes references that support the implementation of the recommendations.
4.7 Combining NCA with QCA
4.7.1 Introduction to QCA
4.7.1.1 History of QCA
Qualitative Comparative Analysis (QCA) has its roots in political science and sociology, and was developed by Charles Ragin (Ragin, 1987, 2000, 2008). QCA has steadily evolved and used over the years, and currently many types of QCA approaches exist. A common interpretation of QCA is described by Schneider & Wagemann (2012) and Mello (2021), which I follow in this book.
4.7.1.2 Logic and theory of QCA
Set theory is in the core of QCA. It means that relations between sets, rather than relations between variables are studied. A case can be part of a set or not part of the set. For example, the Netherlands is a case (of all countries) that is ‘in the set’ of rich countries, and Ethiopia is a case that is ‘out of the set’ of rich countries. Set membership scores (rather than variable scores) are linked to a case. Regarding the set of rich countries, the Netherlands has a set membership score of 1 and Ethiopia of 0. In the original version of QCA the set membership scores could only be 0 or 1. This version of QCA is called crisp-set QCA. Later also fuzzy-set QCA (fsQCA) was developed. Here the membership scores can also have values between 0 and 1. For example, Croatia could be allocated a set membership score of 0.7 indicating that it is ‘more in the set’ than ‘out of the set’ of rich countries. In QCA relations between sets are studied. Suppose that one set is the set of rich countries (\(X\)), and another set is the set of countries with happy people (‘happy countries’, \(Y\)). QCA uses Boolean (binary) algebra and expresses the relationship between condition \(X\) and outcome \(Y\) as the presence or absence of \(X\) is related to the presence or absence of \(Y\). More specifically, the relations are expressed in terms of sufficiency and necessity. For example, the presence of X (being a country that is part of the set of rich countries) could be theoretically stated as sufficient for the presence of \(Y\) (being a country that is part of the set of happy countries). All rich countries are happy countries. The set of rich countries is a subset of the set of happy countries. No rich country is not a happy country. Set \(X\) is a subset of set \(Y\). Alternatively, in another theory it could be stated that the presence of \(X\) (being country that is part of the set of rich countries) is necessary for the presence of \(Y\) (being a country that is part of the set of happy countries). All happy countries are rich countries. The set of happy countries is a superset of the set of rich countries. No happy country is not a rich county. Set \(X\) is a superset of set \(Y\). QCA’s main interest is about sufficiency. QCA assumes that a configuration of single conditions produces the outcome. For example, the condition of being in the set of rich countries (\(X_1\)) AND the condition of being in the set of democratic countries (\(X_2\)) is sufficient for the outcome of being in the set of happy countries (\(Y\)). QCA’s Boolean logic statements for this sufficiency relationship is expressed as follows:
\[\begin{equation} \tag{4.3} X_1*X_2 → Y \end{equation}\]
where the symbol ‘\(*\)’ means the logical ‘AND’, and the symbol ‘\(→\)’ means ‘is sufficient for’.
Furthermore, QCA assumes that several alternative configurations may exits that can produce the outcome, known as ‘equifinality’. This is expressed in the following example:
\[\begin{equation} \tag{4.4} X_1*X_2 + X_2*X_3*X_4 → Y \end{equation}\]
where the symbol ‘\(+\)’ means the logical ‘OR’.
It is also possible that the absence of a condition is part of a configuration. This is shown in the following example:
\[\begin{equation} \tag{4.5} X_1*X_2 + X_2*{\sim}X_3*X_4 → Y \end{equation}\]
where the symbol ‘\(\sim\)’ means ‘absence of’.
Single conditions in a configuration that is sufficient for the outcome are called INUS conditions (Mackie, 1965). An INUS condition is an ‘Insufficient but Non-redundant (i.e., Necessary) part of an Unnecessary but Sufficient condition.’ In this expression, the words ‘part’ and ‘condition’ are somewhat confusing because ‘part’ refers to the single condition and ‘condition’ refers to the configuration that consists of single conditions. Insufficient refers to the fact that a part (single condition) is not itself sufficient for the outcome. Non-redundant refers to the necessity of the part (single condition) for the configurations being sufficient for the outcome. Unnecessary refers to the possibility that also other configurations can be sufficient for the outcome. Sufficient refers to the fact that the configuration is sufficient for the outcome. Although a single condition may be locally necessary for the configuration to be sufficient for the outcome, it is not globally necessary for the outcome because the single condition may be absent in another sufficient configuration. INUS conditions are thus usually not necessary conditions for the outcome (the latter are the conditions that NCA considers). Hence, in above generic logical statements about relations between sets, see Equations (4.3), (4.4), (4.5), \(X\) and \(Y\) can only be absent of present (Boolean algebra), even though the individual members of the sets can have fuzzy scores. Both csQCA and fsQCA use only binary levels (absent or present) of the condition and the outcome when formulating the solution. In fsQCA absence means set membership scores < 0.5 and presence means set membership scores > 0.5.
4.7.1.3 Data and data analysis of QCA
The starting point of the QCA data analysis is to transform variable scores into set membership scores. The transformation process is called ‘calibration’. Calibration can be based on the distribution of the data, the measurement scale, or expert knowledge. The goal of calibration is to get scores of 0 or 1 (csQCA) or between 0 and 1 (fsQCA) to represent the extent to which the case belongs to the set (set membership score). Particularly in large \(N\) fsQCA studies and in the business and management field ‘mechanistic’ (data driven) transformation is often done. For this transformation the non-linear logistic function is usually selected. This selection is somewhat arbitrary (build in popular QCA software) and moves the variable scores to the extremes (0 and 1) in comparison to just (linear) normalization of the data: low values move to 0 and high values move to 1. When no substantive reason exists for the logistic transformation, I have proposed (Dul, 2016b) to use a transformation by normalization. This transformation keeps the distribution of the data intact. The reason for my proposal is that moving the scores to the extremes implies that cases in the \(XY\) scatter plot with low to middle values of \(X\) move to the left and cases with middle to high values of \(Y\) move upwards. As a result, the upper left corner is more filled with cases. Consequently, potential meaningful empty spaces in the original data (indicating necessity) may not be identifiable. With the transformation by normalization, the cases stay where they are; an empty space in a corner of the \(XY\) plot with the original data stays empty. The transformation by normalization is an alternative to an arbitrary transformation: it just changes variable score into set membership scores, without affecting the distribution of the data. A calibration evaluation tool to check the effect of calibration on the necessity effect size is available at https://r.erim.eur.nl/r-apps/qca/.
QCA performs two separate analyses with calibrated data: a necessity analysis for identifying (single) necessary conditions, and a sufficiency analysis (‘truth table’ analysis) for identifying sufficient configurations. In this book I focus on the necessary condition analysis of single necessary conditions, which precedes the sufficiency analysis. In csQCA the necessity analysis is similar to a dichotomous necessary condition analysis of NCA with the contingency table approach when \(X\) and \(Y\) are dichotomous set membership scores that can only be present (in the set) or absent (not in the set). By visual inspection of the contingency table a necessary condition ‘in kind’ can be identified when the upper left cell is empty (Figure 4.21) using set membership scores 0 and 1.
Figure 4.21: Necessity analysis by dichotomous NCA and crist set QCA.
For fuzzy set membership scores the necessity analyses of fsQCA and NCA differ. In fsQCA a diagonal is drawn in the \(XY\) scatter plot (Figure 4.22A) with data from Rohlfing & Schneider (2013); see also Vis & Dul (2018)). For necessity, there can be no cases above the diagonal. Necessity consistency is a measure of the extent to which cases are not above the diagonal, which can range from 0 to 1. When some cases are present in the ‘empty’ zone above the diagonal, fsQCA considers these cases as ‘deviant cases’. FsQCA accepts some deviant cases as long as the necessity consistency level, which is computed from the total vertical distances of the deviant cases to the diagonal, is not smaller than a certain threshold, usually 0.9. The necessity consistency is large enough, fsQCA makes a qualitative (‘in kind’) statement about the necessity of \(X\) for \(Y\): ‘\(X\) is necessary for \(Y\)’, e.g., the presence of \(X\) (membership score > 0.5) is necessary for the presence of \(Y\) (membership score > 0.5).
Figure 4.22: Comparison of necessity analysis with fsQCA’s (A) and with NCA (B).
4.7.2 The differences between NCA and QCA
The major differences between NCA and QCA are summarized in Figure 4.23 (see also Dul (2016a) and Vis & Dul (2018)) and discussed below.
Figure 4.23: Comparison of NCA and QCA.
4.7.2.1 Logic and theory
NCA and QCA are only the same in a very specific situation of ‘in kind’ necessity: A single \(X\) is necessary for \(Y\), and \(X\) and \(Y\) are dichotomous set membership scores (0 and 1). Then the analyses of NCA and QCA are exactly the same. However, NCA normally uses variable scores, but can also set membership scores when NCA is applied in combination with QCA (see below). In addition to the ‘in kind’ necessity that both methods share, NCA also formulates ‘in degree’ necessity. QCA also formulates ‘in kind’ necessity of ‘OR’ combinations of conditions, as well as ‘in kind’ sufficiency of configurations of conditions. The main interest of NCA is the necessity ‘in degree’ of single factors that enable the outcome, whereas the main interest of QCA is the sufficiency ‘in kind’ of (alternative) configurations of conditions.
4.7.2.2 Data and data analysis
Regarding research strategy most NCA studies are observational studies (both small N and large N), although also experiments are possible. Most QCA studies are small N observational studies, although increasingly also large N studies are employed with QCA, in particular in the business and management area. The experimental research strategy is rare (if not absent) in QCA. Regarding case selection/sampling purposive sampling is the main case selection strategy in QCA. It is also possible in small N NCA studies. For large N studies sampling strategies such as those used in regression analysis (preferably probability sampling) are used both in NCA and QCA. Regarding measurement, NCA uses valid and reliable variable scores unless it is used in combination with QCA, in which case NCA uses calibrated set membership scores. QCA uses calibrated set membership scores and cannot use variable scores. In QCA data with variable scores may be used as input for the ‘calibration’ process to transform variable scores into set membership scores. Regarding data analysis in fsQCA a necessary condition is assumed to exist if the area above the diagonal reference line in an \(XY\) scatter plot is virtually empty (see Figure 4.22 A). In contrast, NCA uses the ceiling line as the reference line (see Figure 4.22 B) for evaluating the necessity of \(X\) for \(Y\) (with possibly some cases above the ceiling line; accuracy below 100%). In situations where fsQCA observes ‘deviant cases’, NCA includes these cases in the analysis by ‘moving’ the reference line from the diagonal position to the boundary between the zone with cases and the zone without cases. (Note that moving the QCA’s diagonal parallel upward to address inaccuracy has been suggested by Ragin, 2000 (p. 225, Figure 8.4), but this was not followed up by other QCA researchers). NCA considers cases around the ceiling line (and usually above the diagonal) as ‘best practice’ cases rather than ‘deviant’ cases. These cases are able to reach a high level of outcome (e.g., an output that is desired) for a relatively low level of condition (e.g., an input that requires effort). For deciding about necessity, NCA evaluates the size of the ‘empty’ zone as a fraction of the total zone (empty plus full zone), which ratio is called the necessity effect size. If the effect size is greater than zero (an empty zone is present), and if according to NCA’s statistical test this is unlikely a random result of unrelated \(X\) and \(Y\), NCA identifies a necessary condition ‘in kind’ that can be formulated as: ‘\(X\) is necessary for \(Y\)’, indicating that for at least a part of the range of \(X\) and the range of \(Y\) a certain level of \(X\) is necessary for a certain level of Y. Additionally, NCA can quantitatively formulate necessary condition ‘in degree’ by using the ceiling line: ‘level \(X_c\) of \(X\) is necessary for level \(Y_c\) of \(Y\)’. The ceiling line represents all combinations \(X\) and \(Y\) where \(X\) is necessary for \(Y\). Although also fsQCA’s diagonal reference line allows for making quantitative necessary conditions statements, e.g., \(X\) > 0.3 is necessary for \(Y\) = 0.3, fsQCA does not make such statements. When the ceiling line coincides with the diagonal (corresponding to the situation that fsQCA considers) the statement ‘\(X\) is necessary for \(Y\)’ applies to all \(X\)-levels [0,1] and all \(Y\)-levels [0,1] and the results of the qualitative necessity analysis of fsQCA and NCA are the same. When the ceiling line is positioned above the diagonal ‘\(X\) is necessary for \(Y\)’ only applies to a specific range of \(X\) and a specific range of \(Y\). Outside these ranges \(X\) is not necessary for \(Y\) (‘necessity inefficiency’). Then the results of the qualitative necessity analysis of fsQCA and NCA can be different. Normally, NCA identifies more necessary conditions than fsQCA, mostly because the diagonal is used as reference line. In the example of Figure 4.22, NCA identifies that \(X\) is necessary for \(Y\) because there is an empty zone above the ceiling line. However, fsQCA would conclude that \(X\) is not necessary for \(Y\), because the necessity consistency level is below 0.9. FsQCA’s necessity analysis can be considered as a special case of NCA: an NCA analysis with discrete or continuous fuzzy set membership scores for \(X\) and \(Y\), a ceiling line that is diagonal, an allowance of a specific number of cases in the empty zone given by the necessity consistency threshold, and the formulation of a qualitative ‘in kind’ necessity statement.
4.7.3 Recommendation for combining NCA and QCA
Although in most NCA applications variable scores are used for quantifying condition \(X\) and outcome \(Y\), NCA can also employ set membership scores for the conditions and the outcome, allowing to combine NCA and QCA. The other way around is not possible: combining QCA to a regular NCA with variable scores is not possible because QCA is a set theoretic approach that does not use variable scores. How can NCA with membership scores complement QCA? For answering this question first another question should be raised: how does QCA integrate an identified necessary condition in kind with the results of the sufficiency analysis: the identified sufficient configurations. By definition the necessary condition must be part of all sufficient configurations, otherwise this configuration cannot produce the outcome. However, within the QCA community five different views exist about how to integrate necessary conditions in sufficiency solution. In the first view only sufficient configurations that include the necessary conditions are considered as a result. Hence, all selected configurations have the necessary condition. In the second view the truth table analysis to find the sufficient configurations are done without the necessary conditions and afterwards the necessary conditions are added to the configuration. This also ensures that all configurations have the necessary conditions. In the third view configurations that do not include the necessary condition are excluded from the truth table before this table is further analysed to find the sufficient configurations. This ‘ESA’ approach (Schneider & Wagemann, 2012) also ensures that all configurations have the necessary conditions. In the fourth view sufficient configurations are analysed without worrying about necessary conditions. Afterwards, the necessary conditions are discussed separately. In the fifth view a separate necessity analysis is not done, or necessity is ignored. All views have been employed in QCA; hence no consensus exists yet. And additional complexity of integrating necessity with sufficient configuration is that NCA produces necessary conditions in degree, rather than QCA’s necessary condition and sufficient configurations in kind. The conditions that are part of the sufficient configurations can only be absent or present. Given these complexities, I suggest, a combination of the second and the fourth view:
Perform the NCA analysis ‘in degree’ before QCA’s sufficiency analysis.
Integrate a part of the results of NCA’s necessity analysis into QCA’s sufficient configurations, namely the conditions (‘in degree’) that are necessary for outcome > 0.5. (use the NEST Tool: the NCA-Extended Solution Table, which adds a column to QCA’s solution table based on NCA results)
Discuss the full results of NCA’s necessity analysis afterwards.
In particular it could be discussed that specific levels of necessary membership scores found by NCA must be present in each sufficient configuration found by QCA. If that membership in degree is not in place, the configuration will not produce the outcome.
4.7.4 Examples
I discuss two examples of integrating NCA in QCA according to this recommendation. The first example is a study by Emmenegger (2011) about the effects of six conditions: S = state-society relationships, C = non-market coordination, L = strength labour movement, R = denomination, P = strength religious parties and V = veto points on JSR = job security regulation in Western European countries. He performed an fsQCA analysis with a necessity analysis and a sufficiency analysis. His necessity analysis showed that no condition was necessary for job security regulation (necessity consistency of each condition was < 0.9).
Figure 4.24: Example of a necessity analysis with NCA (Data from Emmenegger (2011).
However, the NCA analysis in degree with the six conditions and using the CE-FDH ceiling line (Figure 4.24) shows the following effect sizes and corresponding p values (Figure 4.25).
Figure 4.25: NCA necessity analysis. d = effect size; p = p value.
A condition could be considered necessary when the effect size has a small p value (e.g., p < 0.05). Hence, the NCA analysis shows that certain strength of labour movement (L), a certain level of denomination (R), and a certain strength of religious parties (P) are necessary for high levels of job security regulation (JSR). From Figure 4.24 it can be observed that the following conditions are necessary for JSR > 0.5:
L > 0.29 is necessary for JSR > 0.5 (presence of JSR)
R > 0.20 is necessary for JSR > 0.5 (presence of JSR)
P > 0.20 is necessary for JSR > 0.5 (presence of JSR)
Although in QCA’s binary logic these small necessary membership scores of L, R, P (all < 0.5) would be framed as ‘absence’ of the condition, in NCA these membership scores are considered small, yet must be present for having the outcome. Thus, according to NCA the low level of membership scores must be present, otherwise the sufficient configurations identified by QCA will not produce the outcome. Emmenegger (2010) identified four possible sufficient configurations for the outcome JSR:
S*R*~V (presence of S AND presence of R AND absence of V)
S*L*R*P (presence of S AND presence of L AND presence of R AND presence of P)
S*C*R*P (presence of S AND presence of C AND presence of R AND presence of P)
C*L*P*~V (presence of C AND presence of L AND presence of P AND absence of V)
This combination of solutions can be expressed by the following logical expression: S*R*~V + S*L*R*P + S*C*R*P + C*L*P*~V → JSR The presence of a condition and the outcome means that the membership score is > 0.5. The absence of a condition means that the membership score is < 0.5. A common way to summarize the results is shown in Figure 4.26.
Figure 4.26: QCA sufficiency solutions (sufficient configurations).
The NCA necessity results can be combined with the QCA sufficiency results as shown in Figure 4.27.
Figure 4.27: NEST tool for combining QCA sufficiency results with NCA necessity results. NEST = NCA-Extended Solution Table. The extension consist of adding the symbol ◢ when the necessary condition in degree is missing in the sufficiency solution, and adding the column ‘Necessity requirement’ with the required level of the necessary condition.
Figure 4.27 presents the NEST tool, which is the NCA-Extended Solution Table. NEST signifies if a necessary condition ‘in degree’ is missing in the configuration. If so, the triangle symbol (◢) is added to the sufficient QCA configuration to ensure that the minimum required necessity membership score (according to NCA) is fulfilled such that the solution can produce the outcome. The triangle symbol ◢ for necessity ‘in degree’ differs from the square symbol ■ proposed by Greckhamer (2016), and the diamond symbol \(\blacklozenge\) used by Holtrop et al. (2024), which both indicate the presence of a necessary condition ‘in kind’ according to QCA’s necessity analysis. An additional column ‘Necessity requirement’ is added to ensure that the minimum required necessity membership score (according to NCA) is fulfilled such that the solution can produce the outcome. Note that a condition with 0.29 membership score is not interpreted in a binary ‘in kind’ way as the absence of the condition (although the score is < 0.5), but as an ‘in degree’ interpretation where to condition is ‘somewhat’ (0.29) present, like a pinch of salt is necessary for a tasty cake.
The NCA results that the presence of L > 0.29 is necessary for JSR > 0.5 is already achieved in the QCA sufficient configurations 2 and 4, but not in configurations 1 and 3. In these latter configurations the requirement L > 0.29 is added to the configuration (◢). Similarly, R > 0.20 is added to configuration 4, and P > 0.20 is added to configuration 1. Without adding these requirements to the configuration, the configuration cannot produce the outcome. Only configuration 2 includes all three necessary conditions according to NCA, without a need for adding them. If the results of NCA would be ignored and the QCA of configurations 1, 3 and 4 would not produce the outcome (or only by chance if the required minimum levels of the ignored NCA necessary conditions would be present by chance). Additionally, the NCA results can show what levels of the condition would be necessary for a higher level of the outcome than a membership score > 0.5. This can be observed in Figure 3. For example, for a membership score of JSR of 0.9, it is necessary to have membership scores of S = 1, L > 0.45, R = 1, P > 0.2, and ~V > 0.35. I therefore recommend presenting the NCA necessity results together with the QCA sufficient configurations results as in Figure 4.27, and additionally to discuss the full results of NCA for deeper understanding of the sufficient configurations.
The second example is from a study of Skarmeas et al. (2014) that I discuss in my book (Dul, 2020, pp. 77-83). This study is about the effect of four organizational motives (Egoistic-driven motives, absence of Value-driven motives, Strategy-driven motives, Stakeholder-driven motives) on customer scepticism about an organization’s Corporate Social Responsibility (CSR) initiative. The results of NCA’s necessity analysis with raw scores, and with calibrated set membership scores are shown in Figure 4.28 and Figure 4.29, respectively.
Figure 4.28: NCA necessity analysis with raw scores.
Figure 4.29: NCA necessity analysis with calibrated cores.
NCA with raw variable scores shows that Absence of Value-driven motives and Strategy-driven motives could be considered are necessary for Scepticism given the medium effect sizes and the small p values (p < 0.05). Also, the NCA with calibrated set membership scores shows that these two conditions have low p values; however, their effect sizes are small (0.04 and 0.02, respectively). This means that these necessary conditions may be statistically significant but may not be practically significant: nearly all cases reached the required level of necessity. Also, Egoistic-driven motives are statistically, but not practically significant. NCA with raw variable scores (the conventional NCA approach) can be used in combination with regression analysis, as regression analysis uses raw variable scores. NCA with calibrated set scores (set membership scores) can be used in combination with QCA, because QCA uses calibrated set membership scores.
Figure 4.30 shows the two sufficient configurations according the QCA analysis of Skarmeas et al. (2014). (2014).
Figure 4.30: Sufficient configurations (QCA) and necessity requirements (NCA) of the study by Skarmeas et al., 2014.
In each configuration the necessity of Egoistic-driven motives and the Absence of Valuedriven motives are ensured in the configuration. However, the necessity of Strategy-driven motives is not ensured in Sufficient configuration 1. Therefore, the minimum required level of Stakeholder-driven motives according to NCA (0.01) is added to ensure that the configuration is able to produce the outcome. However, the practical meaning of this addition is very limited because the necessity effect size is small. It is added here for illustration of our recommendation.
4.7.5 Logical misinterpretations when combining NCA and QCA
When NCA is combined with QCA sometimes a logical misinterpretation is made about the role of necessary conditions in sufficient configurations. Although a factor that is a necessary condition for the outcome must be part of each sufficient configuration, the opposite is not true: a factor that is part of the sufficient configuration must not automatically be a necessary condition for the outcome. The latter misinterpretation has been introduced in the tourism and hospitality field (Dul, 2022) and can be found for example in studyies by Farmaki et al. (2022), Pappas & Farmaki (2022), Pappas & Glyptou (2021b), Pappas & Glyptou (2021a), Pappas (2021), and Farmaki & Pappas (2022). The misinterpretation was also exported to other fields (e.g., Mostafiz et al., 2023).
This misinterpretation may be caused by mixing necessary conditions for the outcome (as analysed with NCA) with necessary parts of a sufficient configuration (INUS conditions). An INUS condition is an Insufficient but Necessary part of an Unnecessary but Sufficient configuration. INUS conditions are the necessary elements of a configuration to make that configuration sufficient. NCA captures necessary conditions for the outcome, not INUS conditions, see also Dul, Vis, et al. (2021).
4.8 Causal inference
Applications of NCA often use cross-sectional research designs. In order to make a causal interpretation of findings from a cross-sectional study, several requirements need to be met. Cross-sectional studies observe cases at a single point in time without manipulating variables. This contrasts with experimental studies where potential causes are manipulated and effects are observed, which allows a direct causal interpretation. Cross-sectional studies can infer causality only indirectly if certain criteria are fulfilled. These criteria include: relevant association, temporal sequence, theoretical plausibility, and control of confounders. Because of the way that necessity is defined, NCA findings are immune to confounding because the observed necessity relationship is not influenced by including or excluding other variables. Therefore, the three main requirements for inferring causality from an NCA cross-sectional study are (1) observing a relevant association, (2) justifying a temporal sequence, and (3) formulating a plausible theory.
In NCA the requirement for observing a relevant association between \(X\) and \(Y\) means observing that one of the corners of an \(XY\) plot is empty (rather than observing a correlation). When it is expected that the presence of \(X\) is necessary for the presence of \(Y\) the expected empty corner is in the upper left corner.
The requirement for observing a relevant association can be satisfied by having proper values of NCA’s effect size (e.g., \(d\geq0.10\)) representing practical relevance and p value (e.g., \(p\leq0.05\)) representing statistical relevance.
The requirement for justifying the temporal sequence implies that there must be evidence that \(X\) precedes \(Y\): first \(X\) then \(Y\). If \(X\) precedes \(Y\), the empty space is compatible with \(X\) being necessary for \(Y\). However, if \(Y\) precedes \(X\) the empty space is compatible with \(Y\) being sufficient for \(X\) (reverse causality). If both directions can be theoretically justified the empty space may be compatible with reciprocal (bi-directional) causality: \(X\) is necessary for \(Y\), and \(Y\) is sufficient for \(X\). The requirement for justifying a temporal sequence can be satisfied as part of the formulation of a plausible theory (see below).
The requirement for formulating a plausible theory implies that there should be a rational explanation how \(X\) is a necessary cause for \(Y\). This means that the expected causal direction and the causal mechanism are explained theoretically. This requirement is usually satisfied by formulating a hypothesis for example “the presence of \(X\) is a necessary cause for the presence of \(Y\)”, while specifying and justifying the temporal direction, and explaining the mechanism why this relationship exists. Explaining the necessity mechanism can be done by explaining the enabling mechanism why cases with the outcome must have the condition, or by explaining the constraining mechanism why cases without the condition cannot have the outcome and why the absence of this condition is not compensible.
If the above requirements are not convincingly met, an alternative research design may be selected to infer causality. In order of increasing confidence, this can be the time-lagged study design in which \(X\) is measured first followed by \(Y\), the longitudinal study design in which \(X\) and \(Y\) are measured in multiple points in time, and the experimental study design in which \(X\) is manipulated and the effect on \(Y\) is observed.
In practical applications of NCA each of the following requirements need to be fulfilled to interpret an empty space as a necessary causal condition:
- Theoretical support that \(X\) is a necessary cause for \(Y\) (causal direction, mechanism).
- The corresponding empty space is relevant (e.g., \(d \geq 0.10\)).
- The p value of the empty space is small (e.g., p \(\leq 0.05\)).
If one of the conditions is not met, it cannot be concluded that there is empirical evidence for necessity causality.
4.9 Meta-analysis
Given the growth of NCA publications (see Figure 0.1 and Table 0.1), it can become a realistic option to conduct a meta-analysis of NCA studies for a specific topic. The general aim of a meta-analysis is to systematically combine results from multiple independent studies that address the same research question. A common goal is to estimate an overall effect size across studies by combining results from different samples. This gives an estimate of the ‘true’ effect size in an underlying population from which the samples are assumed to be drawn. This is done, by estimating an overall mean effect size using weighting of the effect sizes of the different samples (e.g., based on sample size). In other words, a weighted average is used as an estimate of the overall effect size. The assumption is made that the effect sizes can be compared (e.g., in each study the \(XY\) variables are measured on the same scale), and that there is no measurement error.
However, this approach does not apply to NCA because the sample necessity effect size is always larger than the true effect size, such that the weighted average of the sample effect sizes is not a proper representation of the true effect size. Instead, with the same assumptions as in a regular meta-analysis (no measurement error, comparable effect sizes), and an additional assumption that the scopes of the separate studies are the same (empirically or by setting the same theoretical scope for each study), the minimum of the sample effect sizes might be the best representation of the true effect size. Alternatively, and probably even more convincing, all samples could be combined into one master sample (as they are assumed coming from the same population) and then the effect size of the combined sample could be the estimation of the true effect size. Such meta-analysis is called an “individual participant meta-analysis” (IPD meta-analysis) and assumes that raw data are available. If it cannot be assumed that the samples are from the same (underlying) population, then differences in sample effect sizes could be explained by the different characteristics of the population. If absence of measurement error cannot be assumed, then an NCA outlier-analysis may possibly find cases with measurement error that could have partly caused sample effect size differences (and could be deleted).
Chapter 5 NCA’s mathematical backgrounds
5.1 Formal mathematical expression
Necessary Condition Analysis describes the boundary between the area in the \(XY\)-plane where cases \((X,Y)\) are possible (‘feasible area’) and the area where cases are not possible (‘empty space’). NCA calls this boundary the ceiling. The cases are on or below the ceiling, but not above it. The ceiling is a sharp border indicating that for a certain level of \(X\) it is possible to have values less than or equal to the ceiling value of \(Y\), but it is not possible to have values above the ceiling value of \(Y\). This means that \(X\) is necessary for \(Y\). However, \(X\) is usually not sufficient for \(Y\) because normally there are cases below the ceiling. The ceiling represents the constraining effect of \(X\) on \(Y\): without a certain level of \(X\) it is not possible to have a certain level of Y. The basic mathematical expression of NCA is therefore \[\begin{equation} \tag{5.1} Y \leq f(X) \end{equation}\] where \(f(X)\) is the ceiling function.
Figure 5.1 shows an example of a non-decreasing piecewise linear ceiling function where \(X\) and \(Y\) are bounded (have a minimum and a maximum value). The function indicates that possible outcomes of \(Y\) corresponding to a given \(X\)-value is an interval \([y_{min},f(X)]\).
Figure 5.1: A linear ceiling function (blue).
When the ceiling is non-decreasing, the necessary condition of \(X\) for \(Y\) for a value equal to a specific value \(y_{c}\), can now be expressed as \[\begin{equation} \tag{5.2} Y = y_{c} \quad \Rightarrow \quad X \geq f^{-1} (y_{c}) \end{equation}\] where \(f^{-1}\) is the inverse of \(f\) and \(C\) is a point on the ceiling line. So, rephrasing, it is needed that \(x \geq f^{-1}(y_{c})\) in order to observe a value for \(Y\) equal to \(y_{c}\).
The assumption of bounded \(X\) and \(Y\) allows the definition and calculation of the NCA effect size (see section 5.1.1) and other NCA parameters (e.g., 5.1.2). The assumption of a non-decreasing ceiling allows the use of the bottleneck table as explained in section 4.3. Linearity is not a requirement for NCA.
5.1.1 Effect size
When \(X\) and \(Y\) are bounded, it is possible to define the effect size of a necessary condition. In Figure 5.1 the lines \(X=x_{{min}}\), \(X=x_{{max}}\), \(Y=y_{min}\) and \(Y=y_{{max}}\) define the space of possible values for \(X\) and \(Y\). The area between these lines is called the scope. The difference between the absolute maximum possible \(Y\)-value (\(Y=y_{\text{max}}\)) and the maximum possible \(Y\)-value for a given \(X\) (\(Y=y_{c}\)) can be considered as the constraint that \(X\) puts on \(Y\). The slope of the line expresses the change in constraint under varying \(X=x\). The maximum constraint for absence of values of \(Y\) occurs for \(X = x_{min}\). The effect builds up with increasing \(X\) at a rate determined by the slope of the ceiling line. The total effect is then the surface area between the ceiling line and the maximum possible \(Y\). This area is called the ceiling zone. The effect size of a necessary condition is the ceiling zone divided by the scope, which takes values between 0 and 1. When the minimum and maximum \(X\) and \(Y\) values are theoretically presumed values, the scope is called the theoretical scope. When the minimum and maximum \(X\) and \(Y\) values are empirically observed, the scope is called the empirical scope.
5.1.2 Necessity inefficiency
When \((x_{c},y_{c})\) is a point on the ceiling line and \(x\leq x_{c}\), then \(x\) is a bottleneck for \(y \geq y_{c}\). Only an increased value of \(x\) towards \(x = x_{c}\) enables a value \(y = y_{c}\). For reaching the value of \(y = y_{max}\) it is necessary to have a value of \(x\geq x_{cmax}\), where \(x_{cmax}\) is the value of \(x\) of the point where the ceiling line crosses the \(y = y_{max}\) line. For enabling the maximum possible \(y\) value, \(x\) should be \(x = x_{cmax}\). There is no need to increase \(x\) beyond \(x = x_{cmax}\) for enabling \(y = y_{max}\) , as \(y\) is not constrained anymore. This is called ‘inefficiency’ regarding enabling the maximum outcome.
Condition inefficiency specifies the extent to which \(x\) does not constrain \(y\) for levels of \(x_{cmax}\leq x\leq x_{max}\). Only for \(x_{min}\leq x\leq x_{cmax}\), \(x\) constrains \(y\) (ceiling line exists for \(x_{min} \leq x\leq x_{cmax}\)). Condition efficiency is expressed as a percentage: \((x_{max}-x_{cmax})/(x_{max}-x_{min})*100\%\). Condition inefficiency is 0% if \(x\) constrains \(y\) for all values of \(x\); condition inefficiency is 100% if \(x\) does not constrain \(y\) for any value of \(x\).
Similarly, outcome inefficiency specifies the extent to which \(y\) is not constrained by \(x\) for lower levels of \(y_{min}\leq y\leq y_{cmin}\), where \(y_{cmin}\) is the value of \(y\) of the point where the ceiling line crosses the \(x = x_{min}\) line. Only for \(y_{cmin}\leq y\leq y_{max}\), \(y\) is constrained by \(x\) (ceiling line exists for \(y_{cmin}\leq y\leq y_{max}\)). Outcome efficiency is expressed as a percentage: \((y_{cmin}-y_{min})/(y_{max}-y_{min})*100\%\). Outcome inefficiency is 0% if \(x\) constrains \(y\) for all values of \(y\); outcome inefficiency is 100% if \(y\) is not constrained for any value of \(x\).
5.2 Multiple NCA
NCA considers one condition at a time. With several conditions, NCA conducts successive analyses by considering the ceilings in the separate \(X_iY\)planes. For example, with two conditions (\(X_1\) and \(X_2\)), two separate analyses are done: one in the \(X_1Y\) plane (\(X_1Y\) scatter plot) and the other one in the \(X_2Y\) plane (\(X_2Y\) scatter plot). In other words, in the three dimensional space \((X_1,X_2,Y\)) NCA puts a blanket on the data (ceiling surface) and takes the orthogonal projection of the ceiling surface on the \(X_1Y\) plane and the projection of the ceiling surface on the \(X_2Y\) plane. Therefore, each condition has an independent ceiling line. The two ceiling lines are \(f_1(X_1)\) for \(X_1\) and \(f_2(X_2)\) for \(X_2\). Consequently, for a given value \(Y = y_c\) two conditions must be satisfied: \(X_1 \geq x_{1c}\) AND \(X_2 \geq x_{2c}\). Therefore, the maximum possible \(Y = y_c\) for given values \(X_1 = x_{1c}\), and \(X_2= x_{2c}\) is
\[\begin{equation} \tag{5.3} y_c = min \{f_1(x_{1c}), f_2(x_{2c})\} \end{equation}\]
where \(y_c\) is a particular outcome value, \(x_{ic}\) is the necessary \(X\)-value of the i-th condition, \(f_i\) is the ceiling line of the i-th condition and \(C\) is a point on the ceiling line. With more than two conditions there is a multidimensional ceiling with projections \(f_i(X_i)\). The mathematical descriptions of a necessary AND combination of multiple necessary conditions is: \(X_i \geq x_{ic}\) for \(Y = y_c\) and the maximum possible \(Y = y_c\) for given values of \(X_i = x_{ic}\) is
\[\begin{equation} \tag{5.4} y_c = min \{f_i(X_i)\} \end{equation}\]
where \(y_c\) is a particular outcome value, \(x_{ic}\) is the necessary \(X\)-value of the i-th condition, \(f_i\) is the ceiling line of the i-th condition and \(C\) is a point on the ceiling line.
Although NCA performs separate analyses for each condition, in NCA’s bottleneck table (see section 4.3), the separate analyses are combined and considered in combination. This allows answering the question: “What levels \(x_{ic}\) of \(X_i\) are necessary for a particular level \(Y = y_c\)”? or “For given levels \(x_{ic}\) of \(X_i\) what is the maximum possible level \(y_c\) of \(Y\)”.
There are several reasons why NCA analyses projections of the multidimensional ceiling.
The first reason is the fundamental choice to focus on single factors that are necessary for an outcome. This makes NCA different from conventional analyses. Conventional approaches study multi-causal phenomena by considering a combination of factors and their interplay as a whole. A multivariate analysis is the realistic option for predicting the presence of an outcome, because normally only a combination of factors and not a single factor can produce the outcome. However, for predicting the absence of an outcome is it realistic to study a single factor (the necessary condition or ‘bottleneck’) that can prevent the outcome to exist when the level is too low. Therefore, it is possible and useful to study the necessity of single factors for an outcome with projections.
The second reason is that NCA makes statements about single factors that are necessary independently of other factors. Thus, the necessity of a single factor does not depend on the level of other factors. This allows for a “pure” and straightforward interpretation of necessity: “the factor is necessary” rather than “the factor is necessary depending on other factors”. Such pure necessity statement holds independently of other factors. However, the context where the necessity statement holds is usually not unlimited. The domain where the generic necessary condition is supposed to hold must be defined as the ‘theoretical domain’ of the necessity theory. Such specification of the theoretical domain (sometime called “scope conditions”) must be part of any theory and related hypotheses (for further discussion and examples, see Dul (2020)).
A third reason is that NCA wants to contribute to parsimonious (simple) theories: avoiding that theories become complex, not understandable and (thus) less useful. This is a general goal of theory building in applied sciences. NCA is an elegant way of reducing complexity, in particular in situations where it is hard or impossible to predict the outcome (e.g., when the explained variance of regression models is low) or when a good prediction is only possible with a very complex model.
The fourth reason is that practical recommendations from identified single necessary conditions are immediately clear and useful: “for a given outcome, always satisfy all necessary conditions” otherwise there is guaranteed failure of the outcome. The absence of a necessary condition cannot be compensated by other factors.
The final reason is that the search for single necessary conditions is more efficient with a multiple analyses of planes (several ceiling lines) than with a single analysis of a multidimensional space (one multidimesional ceiling) followed by taking the projections on the planes. Modeling and describing a multidimensional ceiling may be complex (e.g., Figure 5.2).[Note: Describing a multidimensional ceiling is done in ‘frontier analysis’: predicting the maximum outcome for a given combination of factors, which is used for example in benchmarking applications to describe how far a case is from the maximum possible outcome. NCA has a different goal than describing the maximum outcome for different values of the condition. NCA describes the maximum possible outcome for a single condition and therefore can focus directly on the \(XY\) planes and the ceiling line. NCA uses techniques from frontier analysis, for example the Free Disposal Hull for the CE-FDH and CR-FHD ceiling lines, applies them in the two-dimensional plane, interprets the results in terms of necessity, and focuses on the empty space above the ceiling (prediction of absence of the outcome), rather than the space with cases below the ceiling.]
As an illustration Figure 5.2, shows a linear multivariate three-dimensional ceiling (\(Y = X_1 + X_2\)) and its projections on the two two-dimensional XY planes. NCA analyses the two projections separately by considering the ceiling lines in \(X_1Y\) plane and in \(X_2Y\) plane.
Figure 5.2: A linear multivariate three-dimensional ceiling (\(Y = X_1 + X_2\)) and its projection on the two two-dimensional \(XY\) planes (ceiling lines in \(X_1Y\) plane and in \(X_2Y\) plane).
Figure 5.3 shows a general three-dimensional non-linear ceiling surface (‘the surface of a vulcano mountain’). The projections of the surface on the \(XY\) planes result in a non-linear ceiling lines.
Figure 5.3: A nonlinear three-dimensional ceiling (mountain surface) and its projection (“shadow”) on two two-dimensional \(XY\) planes (non-linear ceiling lines).
Chapter 6 NCA’s statistics
[Acknowledgement: Roelof Kuik contributed to this Chapter]
The central idea underlying NCA is that of an area in the \(XY\) plane exists that does not hold data. This empty space is defined by the ceiling line and the scope (bounds on the variables). No assumptions beyond such empty space are being made. So, the theory does not require specification of probability distributions or data generation processes for the area that can hold data, the feasible area (area under the ceiling). Rather than turning to probability theory, NCA bases its analysis on the empty spaces and uses geometry (relations between data points in terms of distances and areas) for developing its notions of strength of estimated ceilings (through calculation of an effect size), and cardinality (number of elements in a set) for measures of fit (ceiling accuracy). Still, NCA is not at odds with assumptions from probability theory or statistics. Extending NCA with such assumptions allows the use of statistical techniques into the analysis.
This chapter discusses two statistical techniques that can be used in the context of NCA. First, NCA’s statistical significance test is a null hypothesis test that evaluates if NCA’s observed effect size could be compatible with effect sizes produced by two unrelated variables. The test rejects the null hypothesis when there is a low probability that the observed effect is a random result of unrelated variables (e.g., p < 0.05). NCA’s statistical test is one of the three parts of NCA. The other parts are the use of necessity logic for formulating the causal assumptions (hypotheses), and the data analysis to calculate the NCA effect size. Second, Monte Carlo simulations with NCA may be performed. Such statistical simulations requires an assumption about the probability distribution of the data in the feasible area. This chapter shows three examples of simulations: estimation of the power of NCA’s statistical test, evaluation of the quality of effect size and ceiling line estimations, and demonstration that necessity can produce correlation.
6.1 NCA’s statistical expression
Based on NCA’s mathematical backgrounds (see Chapter 5), NCA employs a bivariate statistical data analysis for each condition separately (multiple bivariate analysis). The statistical model of NCA can be expressed by an equality equation as
\[\begin{equation} \tag{6.1}y = f(x_i) - \epsilon_{x_i} \end{equation}\]
Here the function \(f(x_i)\) represents the border line of the i-th condition in the \(X_iY\) plane and \(\epsilon_{x_i}\) is a random variable that takes on non-negative values only (when the border line is a ceiling line, i.e., when the upper left or upper right corner of the \(XY\) plot are empty) or a non-positive value only (when the border line is a floor line, i.e. when the lower left or lower right corner of the \(XY\) plot are empty). In the remainder of this Chapter it is assumed that the empty space is in the upper left corner and the error term is non-negative. The NCA model assumes that \(X\) and \(Y\) are bounded (have minimum and maximum values) and that there are no errors of measurement in variables \(X\) and \(Y\). The NCA model does not make strong assumptions about the error term (e.g., no assumption about the type of distribution, the mean value, or the variance). The NCA model differs from a regression model. The regression model is expressed as
\[\begin{equation} \tag{6.2}y = f(x) + \epsilon_x \end{equation}\]
Here the function \(f(x)\) has additive terms consisting of (combinations of) \(X\)’s with coefficients. The regression model assumes that \(X\) and \(Y\) are unbounded variables (can have values between minus and plus infinity) and that there are no errors of measurement in variables \(X\) and \(Y\). The regression model makes several strong assumptions about the error term. For example, it is assumed that \(\epsilon_x\) is independent of \(X\), its average value is zero, and its variance does not depend on \(X\). Additionally, it is often assumed that the errors are normally distributed. Therefore, \(f(x)\) describes the average effect of \(X\) on \(Y\) such that conventional regression techniques are not appropriate for modeling necessity relationships.
NCA’s statistical approach is a ‘semi-parametric’ approach, that only specifies particular features of the distribution (in NCA: the ceiling line, bounded variables within a scope) but not the distribution itself (Greene, 2012, p. 482). Thus, NCA does not require making assumptions about the distributions of \(X\), \(Y\) and \(\epsilon_x\). NCA only specifies a part of the Data Generation Process (DGP): the ceiling function of bounded variables within the scope. NCA does not specify how the data below the ceiling are generated, thus no further specification of \(\epsilon_x\) is needed. This is inherent to NCA’s goal of analyzing necessary but not sufficient conditions: a certain level of \(X\) is required for having a certain level of \(Y\) but it does not automatically produce that level of \(Y\): NCA does not predict \(Y\).
6.2 NCA’s statistical test
NCA’s statistical test is a null hypothesis test that estimates a p value for the effect size using a permutation approach (Dul, 2020; Dul, Van der Laan, et al., 2020)4. Mathematical proofs and simulations have shown (Dul, Van der Laan, et al., 2020) that the estimated p value of NCA’ statistical test is valid. Indeed, the validity of the permutation test on which NCA is based is a theorem (Hoeffding, 1952; Kennedy, 1995; Lehmann et al., 2005). NCA’s statistical test can be classified as a permutation and randomization test in the terminology of Lehmann et al. (2005). The justification of the test rests on the so-called Randomization Hypothesis being true. The Randomization Hypothesis states (see Lehmann et al., 2005, p. 633):
Under the null hypothesis, the distribution of the data \(X\) is invariant under the transformation \(g\), that is, for every transformation \(g\) in \(G\), \(gX\) and \(X\) have the same distribution whenever \(X\) has distribution \(P\) in H0.
In this context \(G\) is the group of permutations of \(n\) elements. The transformation of the sample data \(S\) under a permutation \(g\) in \(G\) is here \(S \mapsto gS\) and the Randomization Hypothesis is that \(S\) and \(gS\) have the same distribution when \(S\) has been sampled from a distribution in NCA’s H0 (variables are independent). In other words, under the Randomization Hypothesis, repeated sampling of \(S\), with each time making \(gS\), the distributions of \(S\) and \(gS\) should be the same. For NCA’s statistical test this condition is satisfied.
NCA’s statistical test is a part of an entire NCA method consisting of (1) formulating necessity theory, (2) calculating necessity effect size (relative size of empty space in \(XY\) plot) and (3) performing a statistical test. Within this context the test has a specific purpose of testing the randomness of the empty space when \(X\) and \(Y\) are unrelated. Therefore, a test result of a large p value (e.g., p > 0.05) means that the empty space is compatible with randomness of unrelated variables. A test result of a small p value (e.g., p < 0.05) means that the empty space is not compatible with randomness of unrelated variables. However, falsifying H0 does not mean that a specific H1 is accepted. The goal of a null-hypothesis test is to test the null (H0) not a specific alternative (H1). The p value is only defined when the null is true. However, the p value is not defined when a specific H1 is true. Therefore, the p value is not informative about which H1 applies. This is a general characteristic of the p value that is often misunderstood. “A widespread misconception … is that rejecting H0 allows for accepting a specific H1. This is what most practicing researchers do in practice when they reject H0 and argue for their specific H1 in turn” (Szucs & Ioannidis, 2017, p. p8).
NCA’s statistical test is only a part of the entire NCA method. With a high p value, the tests accepts the null, and rejects any H1 (including necessity). With a low p value the test rejects the null, but does not accept any specific H1, thus also not necessity. It depends on the results of the entire NCA method (including theory and effect size) and of the researcher’s judgment whether or not necessity is plausible, considering all evidence. Therefore, NCA’s statistical test result of a low p value is a ‘necessary but not sufficient condition’ for concluding that an empty space be considered to be caused by necessity (Dul, Van der Laan, et al., 2020). The test protects the researcher from making a false positive conclusion, namely that necessity is supported when the empty space is likely a random result of two unrelated variables.
6.3 Simulations with NCA
6.3.1 Requirements for simulations with NCA
Although NCA does not specify the full DGP, for conduction simulations the full DGP needs to be specified by the researcher for being able to do such simulation. This means that the researcher must make not only a choice for the ‘true’ ceiling line in the population (\(f(x_i)\)), but also for the distribution of the error term (\(\epsilon_x\)) in equation (6.1). For making this choice two fundamental assumptions of NCA must be met:
A sharp border exist between an area with and without observations defined by the ceiling line (to represent necessity theory: no \(Y\) without \(X\)).
\(X\) and \(Y\) are bounded.
The ceiling line can be linear or non-linear. The distribution of \(X\) and \(Y\) must be bounded. Valid examples of commonly used bounded distributions are the uniform distribution and the truncated normal distribution. The NCA software in R from version 4.0.0 includes the function nca_random that can be used in NCA simulations. Input arguments are the number of observations (N), the intercept of the ceiling line, the slope of the ceiling line, and the type of distribution under the ceiling (uniform-based or truncated normal-based).
library(NCA)
#generate random data
set.seed(123)
data <- nca_random(100, # sample size
0.2, # ceiling intercept
1, # ceiling slope
distribution.x = "uniform", # distribution under the ceiling
distribution.y = "uniform" # distribution under the ceiling
)
model <- nca_analysis(data, "X", "Y", ceilings = "c_lp")
nca_output(model)
model$summaries$X$params[10] # estimated intercept (true intercept = 0.2)
model$summaries$X$params[9] # estimated intercept (true slope = 1.0)The nca_random function produces a bivariate distribution of \(X\) and \(Y\) of points below the ceiling line within the scope [0,1] by first assuming distributions for \(X\) and \(Y\) separately (uniform or truncated normal) and then combine them into one bivariate distribution by removing points above the ceiling line. Figure 6.1 shows two typical random samples of n = 100, one drawn from the uniform-based bivariate distribution (A), and one from the truncated normal-based bivariate distribution (B). In this example, the true ceiling line in the populations has a slope of 1 and an intercept of 0.367544468, resulting in a true necessity effect size of 0.2.
Figure 6.1: Typical sample (n = 100) from a population with true straight ceiling line and effect size = 0.2 with a uniform-based distribution (A) and a truncated normal-based distribution (B).
Note that a necessity relationship cannot be simulated with unbounded distributions such as the normal distribution. With unbounded variables a necessity effect cannot exist in the population. For example, NCA’s necessity effect size for bivariate normal variables is zero in the population. A possible empty space in a sample is not the result of a necessity effect in the population but a result of finite sampling. Thus, a sample empty space has no necessity meaning when the population distribution of the variables is unbounded. With unbounded distributions, a finite sample always leads to a finite (empirical) scope (box) that allows the computation of an ‘effect size’. But, such quantity is not related to necessity as defined in NCA. Producing a number out of a sample is an estimate of some property in the population, but the question is what estimand/property of the population distribution it corresponds to. With population data assumed being generated from an unbounded distribution, empirical scopes would grow beyond any bound with growing size of the sample.
6.3.2 Simulations for estimating the power of NCA’s statistical test
“The power of a test to detect a correct alternative hypothesis is the pre-study probability that the test will reject the test hypothesis (the probability that \(p\) will not exceed a pre-specified cut-off such as 0.05)” (Greenland et al., 2016, p. 345). The higher the power of the test, the more sensitive the test is for identifying necessity if it exists. Knowledge about the power of NCA’s statistical test is useful for planning an NCA study. It can help to establish the minimum required sample size for being able to detect with high probability (e.g., 0.8) an existing necessity effect size that is considered relevant (e.g., 0.10). Note that a post-hoc power calculation as part of the data analysis of a specific study does not make sense (Christogiannis et al., 2022; Lenth, 2001; e.g., Zhang et al., 2019). In a specific study, power does not add new information to the p value. Because power is a pre-study probability, a study with low power (e.g., with a small sample size) can still produce a small p value and conclude that an necessary condition exists, although the probability of identifying this necessity effect is less than with a high powered study (e.g., with a large sample size).
Statistical power increases when effect size and sample size increase. For a given expected necessity effect size in the population, the probability of not rejecting the null hypothesis when necessity is true can be reduced by increasing the sample size.
The power of NCA’s statistical test can be evaluated by using the nca_power function which is available from NCA software version 4.0.0.in R. The simulation presented here includes five population effect sizes ranging from 0.10 (small) to 0.5 (large) (Figure 6.2). The population effect size is the result of a straight population ceiling line with slope = 1 and an intercept that corresponds to the given population effect size.
Figure 6.2: Five ceiling lines (slope = 1) with corresponding effect sizes of of 0.1, 0.2, 0.3, 0.4, and 0.5.
For the simulation a large number of samples (500) of a given sample size are randomly drawn from the bivariate population distribution. This is done for 2 x 5 x 11 = 110 situations: two bivariate distributions (uniform-based or truncnormal-based), five effect sizes (0.1, 0.2, 0.3, 0.4, 0.5), and 11 sample sizes (5, 10, 20, 30, 40, 50, 100, 200, 500, 1000, 5000). In each situation, NCA’s p value is estimated for all 500 samples. The power is calculated as the proportion of samples with estimated p value less than or equal to the selected threshold level of 0.05. This means that if, for example, 400 out of 500 samples have p \(\le0.05\), the power of the test in that situation is 0.8. A power value of 0.8 is a commonly used benchmark for a high powered study. For an acceptable computation time the number of permutations to estimate NCA’s p value for a given sample is limited to 200, and the number of resamples is set to 500; more accurate power estimations are possible with more permutations and more resamples.
The details of the simulation (which may take several hours) are as follows:
library(NCA)
library(ggplot2)
# simulation parameters
rep = 500 #number of datasets (repetitions, iterations)
test.rep = 200 #number of permutations
p.Threshold = 0.05 #pvalue threshold alpha
distribution = c("uniform", "normal")
ns <- c(5, 10, 20, 30, 40, 50, 100, 200, 500, 1000, 5000) #sample sizes
true.effect <- c(0.1, 0.2, 0.3, 0.4, 0.5) #true effect sizes
true.slope <- 1 #rep(1,length(true.effect)) #true slope
results <- matrix(nrow = 0, ncol = 8) # for storing simulation results
# simulation
set.seed(123)
for (d in distribution) {
power <- nca_power(n = ns, effect = true.effect, slope = true.slope,
ceiling = "ce_fdh", p = p.Threshold, distribution.x = d,
distribution.y = d, rep = rep, test.rep = test.rep)
results <- rbind(results, power)
}
# powerplot: x axis is sample size; y axis is power
for (d in distribution) {
dfs <- subset(results, results$distr.x == d & results$distr.y ==
d)
dfs$ES <- as.factor(dfs$ES)
dfs$n <- factor(dfs$n, levels = ns)
dfs$power <- as.numeric(dfs$power)
p <- ggplot(dfs, aes(x = n, y = power, group = ES, color = ES)) +
geom_line() + ylim(0, 1) + geom_hline(aes(yintercept = 0.8),
linetype = "dashed") + theme_minimal() + labs(color = "Effect size") +
labs(color = "Effect size") + labs(x = "Sample size",
y = "Power")
print(p)
}
The relationship between sample size and power for different population necessity effect sizes is shown in Figure 6.3 for the uniform distribution and in Figure 6.4 for the truncated normal distribution. The figures show that when the effect size to be detected is large, the power increases rapidly with increasing sample size. A large necessity effect of about 0.5 can be detected nearly always (power ~ 1.0) with a sample size of about 30. However, to obtain a high power of 0.8 for a small effect size of about 0.1, the sample size needs to be doubled with a uniform distribution (about 60) and be more than 10 times larger (about 300) with a truncated normal distribution. In general, the minimum required effect size for detecting a necessary condition is larger for a truncated normal distribution than for a uniform distribution. Additional simulations indicate that sample sizes must be larger when the the density of observations near the ceiling is smaller, in particular when there are few cases in the upper right or lower left corners under the ceiling. Also larger minimum samples sizes are usually needed when the ceiling line is more horizontal and to a lesser extend when it is more vertical. On the other hand, when sample sizes are large even very small effect sizes (e.g., 0.05) can be detected. Note that a high powered study only increases the probability of detecting a necessity effect when it exists. Low powered studies (e.g., with a small sample size) can still detect necessity (\(p \leq 0.05\)), but have a higher risk of making a false negative conclusion: concluding that necessity does not exist, whereas it actually exists. Note also that small N studies can easily falsify a dichotomous necessary condition where \(X\) and \(Y\) can have only two values, when the necessary condition does not exist in the population (see section 3.3.1).
Figure 6.3: Power as a function of sample size andeffect size for a uniform-based distribution.
Figure 6.4: Power as a function of sample size and effect size for a truncated normal-based distribution.
6.3.3 Simulations for evaluating a ceiling line and its effect size
When analysing sample data for statistical inference, the calculated ‘statistic’ (in NCA the ceiling line and its effect size) is an estimator of the ‘true’ parameter in the population. An estimator is considered to be a good estimator when for finite (small) samples the estimator is unbiased and efficient, and for infinite (large) samples the estimator is consistent. Unbiasedness indicates that the mean of the estimator for repeated samples corresponds to the true parameter value; efficiency indicates that the variance of the estimator for repeated samples is small compared to other estimators of the population parameter. Consistency indicates that the mean of the estimator approaches the true value of the parameter and that the variance approaches zero when the sample size increases. When the latter applies, the estimator is called asymptotically unbiased, even if the estimator is biased in finite (small) samples. An estimator is asymptotically efficient if the estimate converges relatively fast to the true population value when the sample size increases.
There are two ways to determine the unbiasdness, efficiency and consistency of estimators: analytically and by simulation. In the analytic approach the properties are mathematically derived. This is possible when certain assumptions are made. For example the OLS regression estimator of a linear relationship in the population is ‘BLUE’ (Best Linear Unbiased Estimator) when the Gauss-Markov assumptions are satisfied (the dependent variable is unbounded, homoskedasticity, error term unrelated to predictors, etc.).
In the simulation approach a Monte Carlo simulation is performed in which first the true parameters (of variables and distributions) in the population are defined, then repeated random samples are drawn from this population, and next the estimator is calculated for each sample. Finally, the sampling distribution of the estimator is determined and compared with the true parameter value in the population.
For both approaches the following ‘ideal’ situation is usually assumed: the population is infinite, the samples are drawn randomly, the distributions of the variable or estimates are known (e.g. normal distribution), and there is no measurement error. Without these assumptions the analysis and simulations get very complex.
For NCA, no analytical approach exists (yet) to determine bias, efficiency and consistency of its estimators (ceiling lines and their effect sizes) so currently NCA relies on simulations to evaluate the quality of its estimates.
For estimating the ceiling line and effect size with empirical data for \(X\) and \(Y\), two default estimation techniques are available. The first default technique is Ceiling Envelopment - Free Disposal Hull (CE-FDH), which is a local support boundary curve estimation techniques. The free disposal hull (FDH) constructs a space (the hull) encompassing the observations. The FDH is the smallest space encompassing the data points that has the free disposal property. A space is said to have the free disposal property (e.g., Simar & Wilson, 2008), if having a particular point implies that it also includes the points at the lower right of that point. The boundary of the FDH hull is a non-decreasing step function, which can serve as an estimate of the ceiling line, in particular when \(X\) or \(Y\) are discrete, or when the ceiling line is not straight.
The second default technique is Ceiling Regression - Free Disposal Hull (CR-FDH), which is a global support boundary, frontier function and curve estimation technique. The CR-FDH ceiling line is a straight trend line through upper left points of the CE-FDH line using OLS regression. Consequently, the CR-FDH ceiling line has some cases in the otherwise empty space. Therefore, in contrast to CE-FDH, the ceiling accuracy of CR-FDH is usually below 100 percent.
In addition to the two default ceiling lines, another straight line ceiling technique that is available in the NCA software is Ceiling - Linear Programming (C-LP). This estimation approach uses linear programming; a technique that optimizes a linear goal function under a number of linear constraints. When applied to NCA the technique draws a straight line through two corner points of CE-FDH such that the area under the line is minimized.
Monte Carlo simulation is used for estimating the true effect size in a population using the three types of ceiling line (CE-FDH, CR-FDH and C-LP). Variable X has a necessity relationship with Y, represented by a straight ceiling line (Y = 0.4 + X). The corresponding true effect size is 0.18.
In Monte Carlo simulation the full ‘Data Generation Process’ (DGP) needs to be specified. This means that also assumptions must be made about the distribution of the data under the ceiling line. In this simulation we assume a uniform distribution under the ceiling line, normalized for the vertical distance under the ceiling line. Additional simulations have been done with different distributions (Massu et al., 2020) but the similar results are not reported here. The simulation is done with 100 resamples per sample size. The seven sample size vary between 20 and 5000. This is repeated for each type of ceiling line.
Figure 6.5: Monte Carlo simulation results for the effect size of three ceiling lines.True ceiling line = \(Y = 0.4 + X\). True effect size is 0.18.
Figure 6.5 suggests that for small samples the three ceiling lines are upward biased (the true effect size is smaller). When sample size increases, the estimated effect size approaches the true effect size (asymptotically unbiased) and the variance approaches zero. This means that the three estimators are consistent. C-LP and its effect size seems more efficient (less variation). These results only apply to the investigated conditions of a true ceiling line that is straight and there is no measurement error. Therefore, only when the true ceiling line is straight and when there is no measurement error the C-LP line may be preferred. Such ‘ideal’ circumstance may apply in simulation studies, but seldom in reality. When the true ceiling line is straight but cases have measurement error the CR-FDH line may perform better because measurement error usually reduces the effect size (ceiling line moves upwards). When the true ceiling line is not a straight line, CE-FDH may perform better because this this line can better follow the non-linearity of a the border (see Figure 3.9). Further simulations are needed to clarify the different statistical properties of the ceiling lines under different circumstances. In these simulations the effects of different population parameters (effect size, ceiling slope, ceiling intercept, non-linearity of the ceiling, distribution under the ceiling), and of measurement error (error-in-variable models) on the quality of the estimations could be studied.
6.3.4 Simulations of correlation
The correlation between two variables can me expressed as a number \(r\) , which is the correlation coefficient. This coefficient can have a value between -1 and +1. This section shows by simulations that a correlation between \(X\) and \(Y\) can be produced not only by a sufficiency relationship between \(X\) and \(Y\), but also by a necessity relationship. Correlation is not causation, and therefore an observed correlation cannot be automatically interpreted as in indication of sufficiency nor necessity.
6.3.4.1 Correlation by sufficiency
For empirical testing of a sufficiency relationship (e.g. as expressed in a hypothesis) the relationship is usually modeled as set of single factors (\(X\)’s) and possibly combinations of factors that add up to produce the outcome (additive logic). Such model captures a few factors of interest and assumes that all other factors together have on average no effect on the outcome. This sufficiency model corresponds to the well-known regression model with additive terms (with the factors of interest) and an error term (\(\epsilon\)) representing the other factors. Because the error term is assumed to have an average value of zero, the regression model with the factors of interest describes the average effect of these factors on the outcome. Note that it is often assumed that \(\epsilon\) is normally distributed and thus can have any value between minus Infinity and plus Infinity. As a consequence also \(Y\) can have any value between -Inf and + Inf. Moreover, the additive equation indicates that \(X\) is not a necessary cause of \(Y\) because a certain value of \(\epsilon\) can compensate for it.
A simple linear (average) sufficiency model is \(a + bx = y\), in which \(a\) is the intercept and \(b\) is the slope. The average sufficiency effect of \(X\) on \(Y\) can be modeled by the regression equation \(y = a + bx + \epsilon\). Figure 6.6 shows a \(XY\) scatter plot of 100 cases randomly from a population in which this linear relationship holds. \(X\) is a fixed variable between 0 and 1, and \(Y\) and \(\epsilon\) are normally distributed random variables with zero averages and standard deviations of 1. The simulation shows that the sufficiency relationship results in a correlation of 0.34.
Figure 6.6: Correlation with coefficient 0.34 resulting from an average sufficiency relationship. The line through the middle is the regression line representing the sufficiency relationship.
The true (because induced) additive average sufficiency relationship in the population (in this case linear with parameters \(a = 0\) and \(b = 1\)) can be described with a regression line through the middle of the data (solid line). It would not be correct to draw a ceiling line on top of the data and interpret it as representing a necessity relationship between \(X\) and \(Y\) (dashed line).
6.3.4.2 Correlation by necessity
A necessity causal relationship between \(X\) and \(Y\) can also produce a correlation between \(X\) and \(Y\). For empirical testing of a necessity relationship (e.g. as expressed in a hypothesis) the relationship is modeled as a single factor that enables the outcome (necessity logic). Such model captures the single necessary factor independently of all other causal factors. This necessity model corresponds to the NCA ceiling line.
A simple linear necessity model (ceiling line) is \(a_c + b_cx = y\), in which \(a_c\) is the intercept of the ceiling line and \(b_c\) is the slope of the ceiling line that take values of 0.4 and 1 respectively. This can be represented by the ceiling equation \(y \leq a_c + b_cx\).
Figure 6.7 shows a \(XY\) scatter plot of 100 cases randomly selected from a population in which this linear ceiling relationship holds. \(X\) is a random variable between 0 and 1, and \(Y\) is a uniform distributed random variable bounded by the ceiling line. The simulation shows that the necessity relationship results in a correlation of 0.38.
Figure 6.7: Correlation with coefficient 0.38 resulting from a necessity relationship. The line on top of the data is the ceiling line representing the necessity relationship.
The true (because induced) necessity relationship in the population (in this case linear ceiling with parameters \(a\) = 0.4 and \(b\) = 1) can be described with a ceiling line on top of the data (solid line). It would not be correct to draw a regression line through the middle of the data and interpret it as representing a sufficiency relationship between \(X\) and \(Y\) (dashed line).
6.3.4.3 Interpretation of correlation when causality is unknown
When the underlying causality is unknown the correlation coefficient cannot distinguish between the best way to describe it: by a regression line or by a ceiling line. A regression line can be added to the scatter plot when the underlying causality is assumed to be additive, average sufficiency logic, and the ceiling line can be added when the underlying causality is assumed to be necessity logic (or both).
The often implicit assumption that the correlation coefficient is caused by an underlying additive causal model may be wrong and may have two reasons. First, additive logic is the main paradigm of causality. Second, the correlation coefficient \(r\) and the regression coefficient \(b\) are closely related and can be expressed in a mathematical equation: \(r = b * sd(x)/sd(y)\) (\(sd\) is the standard deviation). A similar mathematical equation for the relationship between necessity effect size and correlation coefficient can be derived as well, but is very complex and not intuitive. (You can contact the author for this formulae with the assumption of a uniform distribution of the data below the ceiling line).
Chapter 7 Miscellaneous
7.1 NCA software
7.1.1 Main NCA software: R package
The main NCA software is a free package in R called NCA(Dul & Buijs, 2026).The first version of this software was released in 2015 just before the online publication of NCA’s core paper (Dul, 2016b) on 15 July, 2015. Since then the software was updated several times to correct bugs, integrate new NCA developments, and make improvements based on feedback from users.
The following versions have been released so far:
NCA_1.0 (2015-07-02)
NCA_1.1 (2015-10-10)
NCA_2.0 (2016-05-18)
NCA_3.0 (2018-08-01)
NCA_3.0.1 (2018-08-21)
NCA_3.0.2 (2019-11-22)
NCA_3.0.3 (2020-06-11)
NCA_3.1.0 (2021-03-02)
NCA_3.1.1 (2021-05-03)
NCA_3.2.0 (2022-04-05)
NCA_3.2.1 (2022-09-15)
NCA_3.3.0 (2023-02-06)
NCA_3.3.1 (2023-02-10)
NCA_3.3.2 (2023-06-27)
NCA_3.3.3 (2023-09-05)
NCA_4.0.0 (2024-02-16)
NCA_4.0.1 (2024-02-23)
NCA_4.0.2 (2024-11-09)
NCA_4.0.3 (2025-10-14)
NCA_4.0.4 (2025-11-14)
NCA_4.0.5 (2025-12-21)
When the first digit of the version number increases, major changes were implemented. Version 1 was the first limited version, version 2 was the first comprehensive version, version 3 includes the statistical test for NCA, and version 4 introduced two new functions nca_random and nca_power. The second digit refers to larger changes and the third digit minor changes.
The currently installed version of the NCA software and the availability of a new version can be checked as follows:
The cumulative number of downloads of the NCA software from the CRAN website are shown in Figure 7.1.
Figure 7.1: Cumulative number of downloads from the CRAN website of the NCA software since its launch).
Until 31 December 2025 the software was downloaded almost 70,000 times.
The Quick Start Guide
(also here)
helps novice users of R and NCA to get started, but the guide also includes more advanced features. The NCA package has a build-in help function with examples. Within R, the help function can be called as follows:
When help is needed for a specific function in NCA, for example nca_analysis the help for this function can be called as follows:
7.1.2 Other NCA software packages
Based on the R package a Stata module is available for conducting NCA (Spinelli et al., 2023). NCA is also part of the SmartPLS software for conducting NCA in combination with PLS-SEM (SmartPLS Development Team, 2023). These versions enable conducting a basic NCA in other software environments than R, but lack more advanced functions and recent developments of NCA. Currently, no NCA software is available for other platforms like SPSS or SAS.
7.2 Learning about NCA
Several possibilities exist to learn about NCA. Apart from reading books and publications about the NCA methodology (Table 0.2) and reading publications with examples of NCA applications (Table 0.1) several on site and online courses are available at the introduction and advanced levels. Major international conferences often host a professional development workshop on site to learn about NCA. An example is annual conference of the the Academy of Management. Also online short introduction courses exist for NCA. An example is a free on-demand introduction seminar hosted by Instats. A longer free introduction MOOC course is available from Coursera. At the advanced level, an on-demand course is hosted by Instats. Also an NCA paper development workshop is regularly organized. More information about NCA training and events can be found in the NCA website.
7.3 Producing high-quality NCA scatter plots
One of the primary results of NCA is the ‘NCA plot’, which is a scatter plot with ceiling line(s). Users often wish to save a high quality NCA plot for further use, for example for a publication. There are several ways to make and save a high quality NCA plot. In this section six ways are presented that have different levels of user flexibility:
Standard plot.
Standard plot with basic adaptations.
Standard plot with advanced adaptations.
Advanced plot with
plotly.Advanced plot with
ggplot.From within R script.
7.3.1 Standard plot
When NCA for R is used with RStudio, the standard NCA plot is displayed in the Plots window of RStudio. The plot can be produced with the argument plots = TRUE of the nca_output function. For the example dataset in NCA package, the standard plot can be obtained as follows:
library (NCA)
data(nca.example)
model <- nca_analysis(nca.example, 1, 3)
nca_output(model, plots = TRUE, summaries = FALSE)
Figure 7.2: Standard scatter plot of nca.example.
7.3.2 Standard plot with basic adaptations
It may be desirable to change the appearance of the plot, such as the color of the points and the lines, the type of lines and the type of points. These characteristics can be changed with the graphical functions that are included in the NCA software. Before running nca_output, the NCA plot can be customized by changing the point type (for all points), the line types and line colors (for each ceiling line separately) and the line width (for all ceiling lines). For instance, a publisher may require a black and white or grayscale plot, with thicker lines and with solid points. Then the standard plot can be adapted as follows (changing of plot dimensions and the saving the plot is the same as for the standard plot):
line.colors['ce_fdh'] <- 'black'
line.colors['cr_fdh'] <- 'black'
line.colors['ols'] <- 'grey'
point.color <- "black"
point.type <- 20
line.width <- 2
nca_output(model, plots = TRUE, summaries = FALSE)
Figure 7.3: Standard scatter plot of nca.example in black/grey/white.
7.3.3 Standard plot with advanced adaptations
If further changes in the plot are needed, for example changes of the individual line types or the plot title, a special R script must be downloaded from:
https://raw.githubusercontent.com/eur-rsm/nca_scripts/master/display_plot.R
This script is used as an alternative for making the NCA plot with plots = TRUE in the nca_output function. The script can be copy/paste or otherwise loaded in your R session.
# Default values copied from p_constants
line_colors <- list(ols="green", lh="red3", cols="darkgreen",
qr="blue", ce_vrs="orchid4", cr_vrs="violet",
ce_fdh="red", cr_fdh="orange", sfa="darkgoldenrod",
c_lp="blue")
line_types <- list(ols=3, lh=2, cols=3,
qr=4, ce_vrs=5, cr_vrs=1,
ce_fdh=6, cr_fdh=1, sfa=7,
c_lp=2)
line_width <- 1.5
point_type <- 23
point_color <- 'red'
display_plot <-
function (plot) {
flip.x <- plot$flip.x
flip.y <- plot$flip.y
# Determine the bounds of the plot based on the scope
xlim <- c(plot$scope.theo[1 + flip.x], plot$scope.theo[2 - flip.x])
ylim <- c(plot$scope.theo[3 + flip.y], plot$scope.theo[4 - flip.y])
# Reset/append colors etc. if needed
for (method in names(line_types)) {
line.types[[method]] <- line_types[[method]]
}
if (is.numeric(line_width)) {
line.width <- line_width
}
if (is.numeric(point_type)) {
point.type <- point_type
}
if (point_color %in% colors()) {
point.color <- point_color
}
# Only needed until the next release (3.0.2)
if (!exists("point.color")) {
point.color <- "blue"
}
# Plot the data points
plot (plot$x, plot$y, pch=point.type, col=point.color, bg=point.color,
xlim=xlim, ylim=ylim, xlab=colnames(plot$x), ylab=tail(plot$names, n=1))
# Plot the scope outline
abline(v=plot$scope.theo[1], lty=2, col="grey")
abline(v=plot$scope.theo[2], lty=2, col="grey")
abline(h=plot$scope.theo[3], lty=2, col="grey")
abline(h=plot$scope.theo[4], lty=2, col="grey")
# Plot the legend before adding the clipping area
legendParams = list()
for (method in plot$methods) {
line.color <- line.colors[[method]]
line.type <- line.types[[method]]
name <- gsub("_", "-", toupper(method))
legendParams$names = append(legendParams$names, name)
legendParams$types = append(legendParams$types, line.type)
legendParams$colors = append(legendParams$colors, line.color)
}
if (length(legendParams) > 0) {
legend("topleft", cex=0.7, legendParams$names,
lty=legendParams$types, col=legendParams$colors, bg=NA)
}
# Apply clipping to the lines
clip(xlim[1], xlim[2], ylim[1], ylim[2])
# Plot the lines
for (method in plot$methods) {
line <- plot$lines[[method]]
line.color <- line.colors[[method]]
line.type <- line.types[[method]]
if (method %in% c("lh", "ce_vrs", "ce_fdh")) {
lines(line[[1]], line[[2]], type="l",
lty=line.type, col=line.color, lwd=line.width)
} else {
abline(line, lty=line.type, col=line.color, lwd=line.width)
}
}
# Plot the title
title(paste0("Advanced Standard NCA Plot : ", plot$title), cex.main=1)
}The different default values of the plot can be changed as desired. For example, a researcher may wish to change the ols line into a dotted line (line.type to value 3), and to have a point type that is squared (point.type = 23) with red color of the points (point.color = 'red'). Also, the title of the plot can be changed at the end of the script into for example “Advanced NCA plot …”.
For producing the plot the final call is :
Figure 7.4: Standard scatter plot of nca.example with advance adaptations.
The plot can be reset to default values by:
7.3.4 Plot with plotly
The NCA software can also produce a plot made by plotly. The main goal is to provide the user a possibility for graphical exploration of NCA results. However, it is also possible to save the plot. The plot with plotly can be produced with the nca_output function as follows:.
It is possible to label subgroups of points. For example, the continents of the countries in the nca.example dataset can be identified as follows (in the order of the rows in the dataset):
labels <- c("Australia", "Europe", "Europe", "North America", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Europe", "Asia", "North America", "Europe", "Australia", "Europe", "Europe", "Europe", "Europe", "Asia", "Europe", "Europe", "Europe", "Europe", "Europe", "North America")
nca_output(model, plotly=labels, summaries = FALSE)The plot opens in the Viewer tab of the plots window (Figure 7.5). The interactive version can be approached here. The plot identifies the ‘peers’ in red. Peers are points near the ceiling line that are used for drawing the default and other ceiling lines. When moving in the computer screen the pointer over the top of the plot, a toolbar pops up. One of its functions is “Download plot as png”, which saves the plot in the download folder of the computer (not in the working directory). Saving is also possible with Export tab -> Save as Image.
Figure 7.5: Plotly scatter plot of nca.example. The interactive version can be approached here.
7.3.5 Plot with ggplot
The function ggplot is an advanced graphical function in R. Output of NCA can be used as input for ggplot. For example, when the ceiling line is a straight line (such as the default ceiling line cr_fdh) the intercept and slope of the ceiling line can be used in ggplot to plot the ceiling line.
First, these NCA parameters must be extracted from the NCA results:
intercept <- model$summaries$Individualism$params["Intercept","cr_fdh"]
slope <- model$summaries$Individualism$params["Slope", "cr_fdh"]Next the ggplot can be produced:
library (ggplot2)
ggplot(nca.example, aes(Individualism,`Innovation performance`))+
geom_point() +
geom_abline(intercept=intercept, slope=slope, col = "red")
Figure 7.6: ggplot scatter plot of nca.example.
The ggplot function gives many graphical opportunities (see its documentation) to make the plot as desired.
Changing of plot dimensions and the saving the plot is the same as for the standard plot.
7.3.6 Saving the plot from within the R script
All above options for saving an NCA plot are based on first displaying the plot in R and then saving it. It is also possible to save the plot from within the R script. The following script saves a standard NCA plot as a png file with the name “nca.example.png”) in the working directory with a given size and resolution:
png("nca_example.png",units="cm", 15,15, res=300)
nca_output(model, plots = TRUE, summaries = FALSE)
dev.off() It is also possible to save a pdf file:
7.4 Additional functions for use with the NCA softare in R (beta)
7.4.1 nca_robustness_table_general.R
# Helper function to produce the general robustness table
nca_robustness_table_general <- function(data,
conditions,
outcome,
ceiling = "ce_fdh",
scope = NULL,
d_threshold = 0.1,
p_threshold = 0.05,
outliers = 0,
bottleneck.y = "percentile",
target_outcome = 75,
plots = FALSE,
checks = checks
) {
# Define the configurations for each robustness check
# Initialize an empty list to store results
results_list <- list()
# Perform each robustness check
for (check in checks) {
result <- nca_robustness_checks_general(
data = data,
conditions = conditions,
outcome = outcome,
ceiling = check$ceiling,
scope = check$scope,
d_threshold = check$d_threshold,
p_threshold = check$p_threshold,
outliers = check$outliers,
bottleneck.y = bottleneck.y,
target_outcome = check$target_outcome,
plots = plots
)
result$`Robustness check` <- check$name
results_list[[check$name]] <- result
}
# Combine all results into one data frame
results_all <- do.call(rbind, results_list)
# Reorder columns
results_all <- results_all[c("Condition", "Robustness check", "Effect_size", "p_value", "Necessity", "Bottlenecks_percent", "Bottlenecks_count")]
row.names(results_all) = NULL
# Reorganize the dataframe into new blocks (one block per condition)
n <- length(conditions) # Block size
rows_per_block <- seq(1, n) # Sequence of row indices in one block
# Create a new column to assign new block numbers
results_all$NewBlock <- rep(rows_per_block, length.out = nrow(results_all))
# Split the dataframe into blocks and combine the blocks sequentially
reorganized_df <- do.call(rbind, lapply(rows_per_block, function(i) {
results_all[results_all$NewBlock == i, ] # Subset rows for the current block
}))
# Remove the helper column and reset row names
reorganized_df <- reorganized_df[, -ncol(reorganized_df)]
row.names(reorganized_df) <- NULL
robustness_table_general <- reorganized_df
return(robustness_table_general)
}7.4.2 nca_robustness_checks_general.R
# Helper function to conduct general robustness checks
nca_robustness_checks_general <- function(data,
conditions,
outcome,
ceiling = "ce_fdh",
d_threshold = 0.1,
p_threshold = 0.05,
scope = NULL,
outliers = 0,
bottleneck.y = "percentile",
target_outcome = 75,
plots = FALSE) {
# Remove outliers if needed
if (outliers != 0) {
source("get_outliers.R")
out <- get_outliers(data, conditions, outcome, ceiling, outliers)
all_outliers <- unname(unlist(out$outliers_df)[!is.na(out$outliers_df)])
data <- data[-all_outliers, ]
}
# Run the NCA analysis
model <- nca_analysis(
data,
conditions,
outcome,
ceilings = ceiling,
bottleneck.x = 'percentile',
bottleneck.y = bottleneck.y,
steps = c(target_outcome, NA),
test.rep = 1000,
scope = scope
)
# View scatter plots
if (plots) {
nca_output(model, summaries = FALSE) #add pdf=plots to save pdf scatter plots
}
# Extract effect size and p value
effect_size <- sapply(conditions, function(e) model$summaries[[e]][[2]][[2]])
p_value <- sapply(conditions, function(p) model$summaries[[p]][[2]][[6]])
necessity <- ifelse(effect_size >= d_threshold & p_value <= p_threshold, "yes", "no")
# Extract the bottlenecks data frame from the model
b <- as.data.frame(model$bottlenecks[[1]])
row_index <- which(b[[1]] == target_outcome)
row_values <- b[row_index, -1]
Bottlenecks1 <- as.numeric(row_values) # percentage bottleneck cases
Bottlenecks2 <- round(Bottlenecks1 * nrow(data) / 100) # number bottleneck cases
# Dataframe results
results_all <- data.frame(
Condition = conditions,
Effect_size = effect_size,
p_value = p_value,
Necessity = necessity,
Bottlenecks_percent = Bottlenecks1,
Bottlenecks_count = Bottlenecks2
)
return(results_all)
}7.4.3 get_outliers.R
# Helper function to get outliers
# Revised June 1, 2025
get_outliers <- function (data, conditions, outcome, ceiling, k, row.numbers = TRUE) {
if (row.numbers) {
rownames(data) <- NULL
}
# Apply nca_outliers for each condition in the conditions vector
outliers_list <- lapply(conditions, function (condition) {
nca_outliers(data, x = condition, y = outcome, ceiling = ceiling, k = k)
})
# Extract the k datapoints for the first outlier, add NA's if needed
k_outliers <- lapply(outliers_list, function(o) {
# Check if o is a valid list/matrix and has a non-NULL, non-NA string in position [1,1]
if (is.null(o) || is.null(o[[1, 1]]) || is.na(o[[1, 1]]) || !is.character(o[[1, 1]])) {
return(rep(NA, k))
}
parts <- unlist(strsplit(o[[1, 1]], " - ", fixed = TRUE))
if (row.numbers) {
parts <- as.numeric(parts)
}
c(parts, rep(NA, k - length(parts)))
})
outliers_df <- do.call(rbind, k_outliers)
colnames(outliers_df) <- paste("Outlier", 1:k)
rownames(outliers_df) <- conditions
return(list(outliers_list = outliers_list, outliers_df = outliers_df))
}7.4.4 get_indicator_data_TAM.R
# Helper function for getting indicator data of TAM example
#revised May 23, 2025
# Literature:
# Hauff, S., Richter, N. F., Sarstedt, M., & Ringle, C. M. (2024).
# Importance and performance in PLS-SEM and NCA: Introducing the combined importance-performance map analysis (cIPMA).
# Journal of Retailing and Consumer Services, 78, 103723.
# https://doi.org/10.1016/j.jretconser.2024.103723
# Richter, N. F., Schubring, S., Hauff, S., Ringle, C. M., & Sarstedt, M. (2020).
# When predictors of outcomes are necessary: Guidelines for the combined use of PLS-SEM and NCA.
# Industrial Management & Data Systems, 120(12), 2243–2267.
# https://doi.org/10.1108/IMDS-11-2019-0638
# Richter, N. F., Hauff, S., Ringle, C. M., Sarstedt, M., Kolev, A. E., & Schubring, S. (2023).
# How to apply necessary condition analysis in PLS-SEM. In Partial least squares path modeling: Basic concepts, methodological issues and applications (pp. 267–297).
# Springer.
# https://link.springer.com/chapter/10.1007/978-3-031-37772-3_10
# Sarstedt, M., Richter, N. F., Hauff, S., & Ringle, C. M. (2024).
# Combined importance–performance map analysis (cIPMA) in partial least squares structural equation modeling (PLS–SEM): A SmartPLS 4 tutorial.
# Journal of Marketing Analytics, 1–15.
# https://doi.org/10.1057/s41270-024-00325-y
# Data sources:
# Schubring, S., & Richter, N. (2023).
# Extended TAM (Version V4).
# Mendeley Data.
# https://doi.org/10.17632/pd5dp3phx2.4https://osf.io/35a6d/files/osfstorage?view_only=849040255d43480696cd60a43d664660
# Richter, N. F., Hauff, S., Kolev, A. E., & Schubring, S. (2023).
# Dataset on an extended technology acceptance model: A combined application of PLS-SEM and NCA.
# Data in Brief, 48, 109190.
# https://doi.org/10.1016/j.dib.2023.109190
get_indicator_data_TAM <- function(){
# Load the data
df0 <- read.csv("Extended TAM.csv")
# Preview the data
head(df0, 3)
# Make a new dataset with only indicator scores of SEM model (without last four variables)
df1 <- df0[, 1:(ncol(df0) - 4)]
# Rename the indicators
colnames(df1) <- c("PU1","PU2","PU3",
"CO1","CO2","CO3",
"EOU1", "EOU2","EOU3",
"EMV1", "EMV2","EMV3",
"AD1", "AD2","AD3",
"USE")
# Preview the new dataset
head(df1,3)
return(df1)
}7.4.5 estimate_sem_model_TAM.R
# Helper function to estimate SEM model for the TAM example
# revised 23 May, 2025
estimate_sem_model_TAM <- function(data){
# Load library for conducting SEM
library(seminr)
# Specify the measurement model
TAM_mm <- constructs(
composite("Perceived usefulness", multi_items("PU", 1:3)),
composite("Compatibility", multi_items("CO", 1:3)),
composite("Perceived ease of use", multi_items("EOU", 1:3)),
composite("Emotional value", multi_items("EMV", 1:3)),
composite("Adoption intention", multi_items("AD", 1:3)),
composite("Technology use", single_item("USE"))
)
# Specify the structural model
TAM_sm <- relationships(
paths(from = "Perceived usefulness", to = c("Adoption intention", "Technology use")),
paths(from = "Compatibility", to = c("Adoption intention", "Technology use")),
paths(from = "Perceived ease of use", to = c("Adoption intention", "Technology use")),
paths(from = "Emotional value", to = c("Adoption intention", "Technology use")),
paths(from = "Adoption intention", to = c("Technology use"))
)
# Estimate the pls model (using indicator data)
# Conduct pls estimation with raw indicator scores
TAM_pls <- estimate_pls(data = data,
measurement_model = TAM_mm,
structural_model = TAM_sm)
# Print path coefficients and model fit measures
summary(TAM_pls)
return (TAM_pls)
}7.4.6 get_signficance_sem.R
# Helper function to get significance of SEM predictors
# Revised August 4, 2025
get_significance_sem <- function(sem, nboot = 5000) {
# Run bootstrap
boot_model <- bootstrap_model(sem, nboot = nboot) # alpha is fixed at 0.05
# Extract direct and total path matrices
df_direct <- as.data.frame(summary(boot_model)[[2]])
df_total <- as.data.frame(summary(boot_model)[[6]])
# Rename confidence interval columns
colnames(df_direct)[5:6] <- c("CI_low", "CI_high")
colnames(df_total)[5:6] <- c("CI_low", "CI_high")
# Add Path column from rownames
df_direct <- cbind(Path = rownames(df_direct), df_direct)
df_total <- cbind(Path = rownames(df_total), df_total)
# Reset row names
rownames(df_direct) <- NULL
rownames(df_total) <- NULL
# Keep original order
path_order <- df_direct$Path
# Merge direct and total
merged_df <- merge(df_total, df_direct, by = "Path", suffixes = c("_total", "_direct"))
# Clean column names for safe access
colnames(merged_df) <- make.names(colnames(merged_df))
# Calculate indirect effect
merged_df$Indirect_Estimate <- merged_df$Original.Est._total - merged_df$Original.Est._direct
# Significance flags
merged_df$Sig_Direct <- (merged_df$CI_low_direct > 0 | merged_df$CI_high_direct < 0)
merged_df$Sig_Total <- (merged_df$CI_low_total > 0 | merged_df$CI_high_total < 0)
merged_df$Sig_Indirect <- merged_df$Sig_Total & !merged_df$Sig_Direct
# Final summary
summary_df <- merged_df[, c(
"Path",
"Original.Est._direct", "Indirect_Estimate", "Original.Est._total",
"Sig_Direct", "Sig_Indirect", "Sig_Total"
)]
# Round for readability
summary_df <- within(summary_df, {
Original.Est._direct <- round(Original.Est._direct, 3)
Indirect_Estimate <- round(Indirect_Estimate, 3)
Original.Est._total <- round(Original.Est._total, 3)
})
# Preserve original order
summary_df$Path <- factor(summary_df$Path, levels = path_order)
summary_df <- summary_df[order(summary_df$Path), ]
colnames(summary_df)[2:4] <- c("Direct", "Indirect", "Total")
# Extract predicted variable from path (RHS of arrow)
get_rhs <- function(path_string) {
strsplit(as.character(path_string), "->")[[1]][2] |> trimws()
}
summary_df$Predicted <- sapply(as.character(summary_df$Path), get_rhs)
# Return final table
return(summary_df)
}7.4.7 unstandardize.R
# Helper function to obtain a dataset with the unstandardized latent variables
# using the output of the SEMinR pls model estimation as function argument.
# Revised May 23, 2025
unstandardize <- function(sem) {
# Extract the original indicators
original_indicators_df <- as.data.frame(sem$rawdata)
# Extract the standardized weights and store results in a dataframe
standardized_weights_matrix <- sem$outer_weights
standardized_weights_df <- as.data.frame(as.table(standardized_weights_matrix))
colnames(standardized_weights_df) <- c("Indicator", "Latent variable", "Standardized weight")
standardized_weights_df <- subset(standardized_weights_df, `Standardized weight` != 0)
# Match SDs to indicators
standardized_weights_df$SD <- sem$sdData[as.character(standardized_weights_df$Indicator)]
# Compute unstandardized weights
standardized_weights_df$`Unstandardized weight` <-
standardized_weights_df$`Standardized weight` / standardized_weights_df$SD # Following Ringle and Sarstedt 2016
# Normalize weights within each latent variable
sum_weights <- tapply(
standardized_weights_df$`Unstandardized weight`,
standardized_weights_df$`Latent variable`,
sum
)
standardized_weights_df$`Sum unstandardized weight` <-
sum_weights[match(standardized_weights_df$`Latent variable`, names(sum_weights))]
standardized_weights_df$`Normalized unstandardized weight` <-
standardized_weights_df$`Unstandardized weight` / standardized_weights_df$`Sum unstandardized weight`
# Compute unstandardized latent variables
unstandardized_latent_variable_df <- data.frame(matrix(nrow = nrow(original_indicators_df), ncol = 0))
for (latent_variable in unique(standardized_weights_df$`Latent variable`)) {
latent_data <- subset(standardized_weights_df, `Latent variable` == latent_variable)
indicators <- as.character(latent_data$Indicator)
weights <- latent_data$`Normalized unstandardized weight`
indicator_scores <- original_indicators_df[, indicators, drop = FALSE]
latent_score <- rowSums(sweep(indicator_scores, 2, weights, `*`))
unstandardized_latent_variable_df[[latent_variable]] <- latent_score
}
return(unstandardized_latent_variable_df)
}7.4.8 normalize.R
# Helper function to min-max normalize data (scale 0-1 or 0-100)
# Revised August 9, 2025
min_max_normalize <- function(data, theoretical_min, theoretical_max, scale) {
# Validate inputs
if (!is.numeric(scale) || length(scale) != 2) {
stop("Scale must be a numeric vector with two elements (e.g., c(0, 100)).")
}
if (!is.numeric(theoretical_min) || !is.numeric(theoretical_max)) {
stop("Theoretical min and max must be numeric vectors.")
}
# Define new scale minimum and maximum
new_min <- scale[1]
new_max <- scale[2]
# Apply normalization column by column
normalized_data <- data
for (i in seq_along(data)) {
if (is.numeric(data[[i]])) {
min_val <- theoretical_min[i]
max_val <- theoretical_max[i]
# Standard normalization
norm_values <- ((data[[i]] - min_val) / (max_val - min_val)) *
(new_max - new_min) + new_min
# avoid floating-point error
tol <- sqrt(.Machine$double.eps) * abs(new_max - new_min)
if (new_min == 0) norm_values[data[[i]] == 0] <- 0 # optional: preserve exact zeros
norm_values[abs(norm_values - new_min) < tol] <- new_min
norm_values[abs(norm_values - new_max) < tol] <- new_max
norm_values <- pmax(new_min, pmin(new_max, norm_values))
normalized_data[[i]] <- norm_values
}
}
# Return the normalized dataframe
return(normalized_data)
}7.4.9 get_bottleneck_cases.R
# Helper function to find the number and percentage of bottleneck cases per condition
#revised August 10, 2025
get_bottleneck_cases <- function(data, conditions, outcome, corner = 1, target_outcome, ceiling) {
# Check if target_outcome is within the range of the outcome variable
outcome_min <- min(data[[outcome]], na.rm = TRUE)
outcome_max <- max(data[[outcome]], na.rm = TRUE)
if (length(corner) == 1 && corner == 1) {corner <- rep(1, length(conditions))}
if (target_outcome < outcome_min || target_outcome > outcome_max) {
stop(
sprintf(
"Error: target_outcome (%f) is out of range for the outcome variable '%s'. Minimum: %f, Maximum: %f",
target_outcome, outcome, outcome_min, outcome_max
)
)
}
# Initialize matrices to store bottlenecks
bottleneck_matrix <- matrix(0, nrow = nrow(data), ncol = length(conditions))
colnames(bottleneck_matrix) <- conditions
threshold <- setNames(numeric(length(conditions)), conditions)
eps <- .Machine$double.eps^0.5 # Smallest safe numerical tolerance
for (condition in conditions) {
# Find index of the condition
condition_index <- which(conditions == condition)[1] # Get the index of the current condition
# Get corner value
corner_val <- corner[condition_index]
# Check if corner_val is NA or not in valid range (1 to 4)
if (is.na(corner_val)) {
warning(sprintf("Warning: corner value for condition '%s' is NA. Defaulting to 1.", condition))
corner_val <- 1L
} else if (!(corner_val %in% 1:4)) {
warning(sprintf("Warning: corner value for condition '%s' (%d) is out of valid range (1-4). Defaulting to 1.", condition, corner_val))
corner_val <- 1L
}
# Perform NCA for the given condition
model1 <- nca_analysis(
data,
condition,
outcome,
corner = corner_val,
ceilings = ceiling,
bottleneck.y = "actual",
bottleneck.x = "actual",
steps = c(target_outcome, NA)
)
# Extract accurate threshold
threshold[condition] <- attr(model1[["bottlenecks"]][[ceiling]][[condition]],"mpx.actual")[1, 1]
if (corner_val %in% c(1, 3)) {
bottleneck_matrix[, condition] <- as.numeric(
data[[condition]] < (threshold[condition] - eps)
)
} else {
bottleneck_matrix[, condition] <- as.numeric(
data[[condition]] > (threshold[condition] - eps)
)
}
# If no cases are bottlenecks, reset to 0
if (sum(bottleneck_matrix[, condition]) == nrow(data)) {
bottleneck_matrix[, condition] <- 0
}
if (threshold[condition] == -Inf) {
threshold[condition] <- 0
}
}
# Calculate the total bottlenecks for each column
bottlenecks_per_condition <- colSums(bottleneck_matrix)
bottleneck_cases_num <- as.data.frame (bottlenecks_per_condition) # number
colnames(bottleneck_cases_num)[1] <- paste0("Bottlenecks (Y = ", target_outcome, ")")
bottleneck_cases_per <- as.data.frame (100 * (bottleneck_cases_num / nrow(data))) # percentage
return(list(
bottleneck_cases_per = bottleneck_cases_per,
bottleneck_cases_num = bottleneck_cases_num
))
}7.4.10 get_ipma_df.R
# Helper function to create an IPMA dataset with Importance and Performance
# Revised Aug 8, 2025 - includes inversion handling for negative importance
get_ipma_df <- function(data, sem, predictors, predicted) {
# Importance = total effects
Importance_df <- as.data.frame(summary(sem)$total_effects)
Importance <- Importance_df[predictors, predicted]
# Performance = means of all latent variable scores
Performance_df <- as.data.frame(sapply(data, mean))
Performance <- Performance_df[predictors, 1]
# Invert names and take absolute values where importance is negative
renamed_predictors <- ifelse(Importance < 0,
paste0(predictors, "-inv"),
predictors)
Importance <- abs(Importance)
# Combine into IPMA dataframe
ipma_df <- data.frame(
predictor = renamed_predictors,
Importance = Importance,
Performance = Performance
)
return(ipma_df)
}7.4.11 get_ipma_plot.R
# Helper function to create a IPMA plot
# Revised May 23, 2025
# Load required libraries
library(ggplot2)
library(ggrepel)
get_ipma_plot <- function(ipma_df,
x_range = NULL,
y_range = NULL) {
# Dynamically set x_range if not provided
if (is.null(x_range)) {
x_range <- range(ipma_df$Importance, na.rm = TRUE)
}
# Dynamically set y_range if not provided
if (is.null(y_range)) {
y_range <- range(ipma_df$Performance, na.rm = TRUE)
}
# Generate the IPMA plot
p <- ggplot(ipma_df, aes(x = Importance, y = Performance)) +
geom_point(color = "black", size = 5) + # Single point layer
geom_text_repel(
aes(label = predictor),
size = 3.5,
box.padding = 2
) +
coord_cartesian(xlim = x_range, ylim = y_range) +
scale_x_continuous(limits = x_range) + # Adapt x-axis limits dynamically
scale_y_continuous(limits = y_range) + # Adapt y-axis limits dynamically
labs(
title = "classic IPMA",
x = "Importance",
y = "Performance"
) +
theme_minimal() # Use a clean theme
# Display the plot
print(p)
}7.4.12 get_cipma_df.R
# Helper function to create a cIPMA dataset with Importance, Performance,
# and Bottlenecks (percentage and number of bottleneck cases)
# Revised August 9, 2025
get_cipma_df <- function(ipma_df, bottlenecks, necessity) {
# Extract number and percentage of single bottleneck cases
cases_num <- bottlenecks$bottleneck_cases_num
cases_per <- bottlenecks$bottleneck_cases_per
# Combine IPMA data with bottleneck info
cipma_df <- cbind(
ipma_df,
cases_per,
cases_num
)
rownames(cipma_df) <- rownames(ipma_df)
colnames(cipma_df)[4:5] <- c("Bottleneck_cases_per", "Bottleneck_cases_num")
# Add necessity classification
cipma_df$Necessity <- necessity
# Add predictor labels:
cipma_df$Predictor_with_cases <- ifelse(
cipma_df$Necessity == "yes",
paste0(
cipma_df$predictor,
" (",
round(cipma_df$Bottleneck_cases_per, 0), "%, n=",
cipma_df$Bottleneck_cases_num,
")"
),
paste0(cipma_df$predictor, " (NN)")
)
return(cipma_df)
}7.4.13 get_cipma_plot.R
# Helper function for producing the cIPMA plot
# Revised August 10, 2025
get_cipma_plot <- function(cipma_df, x_range = NULL, y_range = NULL, size_limits, size_range) {
# Load required libraries
library(ggplot2)
library(ggrepel)
# Dynamically determine x_range if not provided
if (is.null(x_range)) {
x_range <- range(bipma_df$Importance, na.rm = TRUE)
}
# Dynamically determine y_range if not provided
if (is.null(y_range)) {
y_range <- range(bipma_df$Performance, na.rm = TRUE)
}
# Extract target Y value from column name
colname <- colnames(cipma_df)[4]
target.Y <- target_outcome
# Set fill color: black only for NN cases
cipma_df$fill_color <- ifelse(
grepl("\\(NN\\)", cipma_df$Predictor_with_cases),
"black",
NA
)
# Set dot size: fixed small size for NN, scaled otherwise
cipma_df$dot_size <- ifelse(
grepl("\\(NN\\)", cipma_df$Predictor_with_cases),
1,
cipma_df[[colname]]
)
# Generate the plot
pc <- ggplot(cipma_df, aes(x = Importance, y = Performance)) +
geom_point(
aes(size = dot_size),
shape = 21,
fill = cipma_df$fill_color,
color = "black",
stroke = 0.7
) +
geom_text_repel(
aes(label = Predictor_with_cases),
size = 3.5,
box.padding = 2
) +
coord_cartesian(xlim = x_range, ylim = y_range) +
scale_x_continuous(limits = x_range) +
scale_y_continuous(limits = y_range) +
scale_size_continuous(limits = size_limits, range = size_range) +
labs(
title = paste("cIPMA for target outcome Y =", target.Y, " ", name_plot),
x = "Importance",
y = "Performance"
) +
theme_minimal() +
guides(size = "none", fill = "none") # REMOVE LEGEND
# Display the plot
print(pc)
}7.4.14 get_single_bottleneck_cases.R
# Helper function to find the number of single bottleneck cases per condition
# Revised August 10, 2025
get_single_bottleneck_cases <- function(data, conditions, outcome, corner = 1, target_outcome, ceiling) {
# Check if target_outcome is within the range of the outcome variable
outcome_min <- min(data[[outcome]], na.rm = TRUE)
outcome_max <- max(data[[outcome]], na.rm = TRUE)
if (length(corner) == 1 && corner == 1) {corner <- rep(1, length(conditions))}
if (target_outcome < outcome_min || target_outcome > outcome_max) {
stop(
sprintf(
"Error: target_outcome (%f) is out of range for the outcome variable '%s'. Minimum: %f, Maximum: %f",
target_outcome, outcome, outcome_min, outcome_max
)
)
}
# Initialize matrices to store bottlenecks
bottleneck_matrix <- matrix(0, nrow = nrow(data), ncol = length(conditions))
colnames(bottleneck_matrix) <- conditions
threshold <- setNames(numeric(length(conditions)), conditions)
eps <- .Machine$double.eps^0.5 # Smallest safe numerical tolerance
for (condition in conditions) {
# Find index of the condition
condition_index <- which(conditions == condition)[1] # Get the index of the current condition
# Get corner value
corner_val <- corner[condition_index]
# Check if corner_val is NA or not in valid range (1 to 4)
if (is.na(corner_val)) {
warning(sprintf("Warning: corner value for condition '%s' is NA. Defaulting to 1.", condition))
corner_val <- 1L
} else if (!(corner_val %in% 1:4)) {
warning(sprintf("Warning: corner value for condition '%s' (%d) is out of valid range (1-4). Defaulting to 1.", condition, corner_val))
corner_val <- 1L
}
# Perform NCA for the given condition
model1 <- nca_analysis(
data,
condition,
outcome,
corner = corner_val,
ceilings = ceiling,
bottleneck.y = "actual",
bottleneck.x = "actual",
steps = c(target_outcome, NA)
)
# Extract accurate threshold
threshold[condition] <- attr(model1[["bottlenecks"]][[ceiling]][[condition]],"mpx.actual")[1, 1]
if (corner_val %in% c(1, 3)) {
bottleneck_matrix[, condition] <- as.numeric(
data[[condition]] < (threshold[condition] - eps)
)
} else {
bottleneck_matrix[, condition] <- as.numeric(
data[[condition]] > (threshold[condition] - eps)
)
}
# If no cases are bottlenecks, reset to 0
if (sum(bottleneck_matrix[, condition]) == nrow(data)) {
bottleneck_matrix[, condition] <- 0
}
if (threshold[condition] == -Inf) {
threshold[condition] <- 0
}
}
# Calculate the total bottlenecks for each row
total_bottlenecks_per_row <- rowSums(bottleneck_matrix)
# Count the number of rows where each case is the sole bottleneck
single_bottlenecks_per_condition <- colSums(bottleneck_matrix & (total_bottlenecks_per_row == 1))
single_bottleneck_cases_num <- as.data.frame (single_bottlenecks_per_condition) # number
colnames(single_bottleneck_cases_num)[1] <- paste0("Bottlenecks (Y = ", target_outcome, ")")
single_bottleneck_cases_per <- as.data.frame (100 * (single_bottleneck_cases_num / nrow(data))) # percentage
return(list(
single_bottleneck_cases_per = single_bottleneck_cases_per,
single_bottleneck_cases_num = single_bottleneck_cases_num
))
}7.4.15 get_bipma_df.R
# Helper function to create a BIPMA dataset with Importance, Performance,
# and Bottlenecks (percentage and number of SINGLE bottleneck cases)
# Revised November 8, 2025
get_bipma_df <- function(ipma_df, single_bottlenecks, necessity, sufficiency) {
# Extract number and percentage of single bottleneck cases
single_cases_num <- single_bottlenecks$single_bottleneck_cases_num
single_cases_per <- single_bottlenecks$single_bottleneck_cases_per
# Combine IPMA data with bottleneck info
bipma_df <- cbind(
ipma_df,
single_cases_per,
single_cases_num
)
rownames(bipma_df) <- rownames(ipma_df)
colnames(bipma_df)[4:5] <- c("Single_bottleneck_cases_per", "Single_bottleneck_cases_num")
# Add necessity classification
bipma_df$Necessity <- necessity
# Add corner classification
bipma_df$Corner <- corner
# Add target_outcome
bipma_df$Target_outcome <- target_outcome
# Add probabilistic sufficiency classification
bipma_df$Sufficiency <- sufficiency
# Add predictor labels:
bipma_df$Predictor_with_single_cases <- ifelse(
bipma_df$Necessity == "yes",
paste0(
bipma_df$predictor,
" (",
round(bipma_df$Single_bottleneck_cases_per, 0), "%, n=",
bipma_df$Single_bottleneck_cases_num,
ifelse(
bipma_df$Corner %in% c(2, 3, 4),
paste0(", corner=", bipma_df$Corner),
""
),
")"
),
paste0(bipma_df$predictor, " (NN)")
)
return(bipma_df)
}7.4.16 get_bipma_plot.R
# Helper function for producing the BIPMA plot
# Revised November 8, 2025
get_bipma_plot <- function(bipma_df, x_range = NULL, y_range = NULL, size_limits, size_range) {
library(ggplot2)
library(ggrepel)
# For visibility of overlapping filled points
bipma_df <- bipma_df[order(bipma_df$Single_bottleneck_cases_num, decreasing = TRUE), ]
# Dynamically determine x_range if not provided
if (is.null(x_range)) {
x_range <- range(bipma_df$Importance, na.rm = TRUE)
}
# Dynamically determine y_range if not provided
if (is.null(y_range)) {
y_range <- range(bipma_df$Performance, na.rm = TRUE)
}
# Extract the bottleneck column name
colname <- colnames(bipma_df)[4]
target.Y <- target_outcome
bipma_df$fill_color <- ifelse(
grepl("\\(NN\\)", bipma_df$Predictor_with_single_cases),
"black",
NA_character_
)
bipma_df$fill_color[is.na(bipma_df$fill_color) & bipma_df$Sufficiency == "no"] <- "grey90"
bipma_df$fill_color[is.na(bipma_df$fill_color)] <- "white"
# Define dot size: fixed small size for NN, scaled otherwise
bipma_df$dot_size <- ifelse(
grepl("\\(NN\\)", bipma_df$Predictor_with_single_cases),
1,
bipma_df[[colname]]
)
# Adjust importance for plotting
x_no <- -0.00 # x-position for "no sufficiency" predictors
bipma_df$Importance_adj <- ifelse(
bipma_df$Sufficiency == "no",
x_no,
bipma_df$Importance
)
# Define x-range (include the no sufficiency zone to give space for points)
x_range_adj <- c(x_no - 0.02 , max(bipma_df$Importance, na.rm = TRUE) + 0.1)
x_breaks <- pretty(bipma_df$Importance)
## 1) keep the NN & NS names BEFORE removing them
dropped_idx <- (bipma_df$Necessity == "no" & bipma_df$Sufficiency == "no")
dropped_names <- bipma_df$predictor[dropped_idx]
# Remove predictors that are not necessary and not sufficient
bipma_df <- bipma_df[!dropped_idx, ]
# Plot
pc1 <- ggplot(bipma_df, aes(x = Importance_adj, y = Performance)) +
geom_point(
aes(size = dot_size, fill = fill_color),
shape = 21,
color = "black",
stroke = 0.7
) +
scale_fill_identity() +
geom_text_repel(
aes(label = Predictor_with_single_cases),
size = 3.5,
box.padding = 2
) +
coord_cartesian(xlim = x_range_adj, ylim = y_range) +
scale_x_continuous(
breaks = x_breaks,
limits = x_range_adj
) +
scale_y_continuous(limits = y_range) +
scale_size_continuous(limits = size_limits, range = size_range) +
labs(
title = paste("BIPMA for target outcome Y =", target.Y, name_plot),
x = "Importance",
y = "Performance"
) +
theme_minimal() +
theme(
axis.text.x = element_text(),
axis.ticks.x = element_line(),
panel.grid.minor = element_blank()
) +
guides(size = "none")
## 2) add the textbox in the lower-left corner (only if there were dropped ones)
if (length(dropped_names) > 0) {
pc1 <- pc1 +
annotate(
"label",
x = x_range_adj[1] + 0.01, # a little inside the panel
y = y_range[1] + 0.01,
hjust = 0,
vjust = 0,
label = paste(
c("Non-significant necessity and average effects:", dropped_names),
collapse = "\n"
),
size = 3
)
}
print(pc1)
}7.4.17 ncasem.R
# Function to conduct NCA-SEM
# Revised November 8, 2025
#Helper functions to be sourced (below):
# source("unstandardize.R")
# source("normalize.R")
# source("get_outliers.R")
# source("get_ipma_df.R")
# source("get_ipma_plot.R")
# source("get_bottleneck_cases.R")
# source("get_cipma_df.R")
# source("get_cipma_plot.R")
# source("get_single_bottleneck_cases.R")
# source("get_bipma_df.R")
# source("get_bipma_plot.R")
ncasem <- function(sem,
sem_sig,
outliers = 0,
standardize = 0, # unstandardized
normalize = 1, # normalized
scale = c(0,100), # normalized 0-100 (percentage)
predictors,
predicted,
theoretical_min,
theoretical_max,
corner = corner,
ceiling = "ce_fdh",
test.rep = test.rep,
d_threshold = 0.10,
p_threshold = 0.05,
scope = NULL, # empirical scope
target_outcome,
plots = FALSE,
name_plot = name_plot) {
#Step 3 select latent variable scores
data <- sem$construct_scores
# Standardization step
if (standardize == 0) {
source("unstandardize.R")
data <- unstandardize(sem)
}
# Normalization step
if (normalize == 0) {
data <- data # No normalization
} else {
source("normalize.R")
data <- min_max_normalize(data, theoretical_min, theoretical_max, scale)
}
# Step 4: Conduct NCA
library(NCA)
data <- data
ceilings = ceiling
corner = corner
test.rep = test.rep #set the number of permutations for estimating the p value
# bottleneck.y = "actual"
# bottleneck.x = "percentile"
# steps=seq(0, 100, 5)
scope=scope
# Process outliers if needed
if (outliers != 0) {
source("get_outliers.R")
conditions = predictors
outcome = predicted
k = outliers
out <- get_outliers(data = data,
conditions = conditions,
outcome = outcome,
ceiling = ceiling,
k = k)
all_outliers <- unname(unlist(out$outliers_df)[!is.na(out$outliers_df)])
# Remove outliers
data <- data[-all_outliers, ]
}
# Run the NCA analysis
model <- nca_analysis(
data,
predictors,
predicted,
corner = corner,
ceilings = ceiling,
# bottleneck.x = bottleneck.x,
# bottleneck.y = bottleneck.y,
# steps = steps,
test.rep = test.rep,
scope = scope
)
nca_output(model, summaries = FALSE, pdf = plots)
# Step 5: Produce BIPMA
# IPMA
source("get_ipma_df.R")
IPMA_df <- get_ipma_df(data = data, sem = sem, predictors = predictors, predicted = predicted)
ipma_df <- IPMA_df
source("get_ipma_plot.R")
IPMA_plot <- get_ipma_plot(ipma_df = ipma_df, x_range = x_range, y_range = y_range)
if (plots) {
current_time <- format(Sys.time(), "%Y-%m-%d_%H-%M-%S")
filename <- paste0("IPMA plot_", current_time, ".pdf")
ggsave(filename, plot = IPMA_plot, width = 8, height = 6, dpi = 300)
}
# CIPMA
# NCA parameters
effect_size <- sapply(predictors, function(d) model$summaries[[d]][[2]][[2]])
p_value <- sapply(predictors, function(p) model$summaries[[p]][[2]][[6]])
# Select predictors that are necessary
necessity <- ifelse(effect_size >= d_threshold & p_value <= p_threshold, "yes", "no")
#number and percentage of bottleneck cases (more accurate via loop)
source("get_bottleneck_cases.R")
bottlenecks <- get_bottleneck_cases(data = data, conditions = predictors, outcome = predicted, corner = corner, target_outcome = target_outcome, ceiling = ceiling)
source("get_cipma_df.R")
CIPMA_df <- get_cipma_df(ipma_df = ipma_df, bottlenecks = bottlenecks, necessity = necessity)
source("get_cipma_plot.R")
cipma_df <- CIPMA_df
CIPMA_plot <- get_cipma_plot(cipma_df = cipma_df, x_range = x_range, y_range = y_range, size_limits = size_limits, size_range = size_range)
if (plots) {
current_time <- format(Sys.time(), "%Y-%m-%d_%H-%M-%S")
filename <- paste0("CIPMA plot_", current_time, ".pdf")
ggsave(filename, plot = CIPMA_plot, width = 8, height = 6, dpi = 300)
}
# BIPMA
for_select_predicted <- sem_sig[sem_sig$Predicted == predicted, ]
sufficiency <- ifelse(for_select_predicted$Sig_Total, "yes", "no")
names(sufficiency) <- predictors
source("get_single_bottleneck_cases.R")
single_bottlenecks <- get_single_bottleneck_cases (data, conditions = predictors, outcome = predicted, corner = corner, target_outcome = target_outcome, ceiling = ceiling)
source("get_bipma_df.R")
BIPMA_df <- get_bipma_df(ipma_df = ipma_df, single_bottlenecks=single_bottlenecks, necessity = necessity, sufficiency = sufficiency)
bipma_df <- BIPMA_df
source("get_bipma_plot.R")
BIPMA_plot <- get_bipma_plot(bipma_df = bipma_df, x_range = x_range, y_range = y_range, size_limits = size_limits, size_range = size_range)
if (plots) {
current_time <- format(Sys.time(), "%Y-%m-%d_%H-%M-%S")
filename <- paste0("BIPMA plot_", current_time, ".pdf")
ggsave(filename, plot = BIPMA_plot, width = 8, height = 6, dpi = 300)
}
# Extract results
effect_size <- sapply(predictors, function(p) model$summaries[[p]][[2]][[2]])
p_value <- sapply(predictors, function(p) model$summaries[[p]][[2]][[6]])
necessity <- ifelse(effect_size >= d_threshold & p_value <= p_threshold, "yes", "no")
results_df <- data.frame(
predictor = predictors,
effect_size = effect_size,
p_value = p_value,
necessity = necessity,
bottleneck_per <- as.numeric(single_bottlenecks$single_bottleneck_cases_per[[1]]),
bottleneck_num <- as.numeric(single_bottlenecks$single_bottleneck_cases_num[[1]]),
row.names = NULL
)
colnames(results_df) <- c("Predictor",
"Effect size",
"p value",
"Necessity",
"Single bottlenecks(%)",
"Single bottlenecks(#)")
# Compute rank and show it as "rank/total"
n_pred <- nrow(results_df)
rank_num <- rank(-results_df[ , "Single bottlenecks(#)"], ties.method = "first")
results_df$Priority_num <- rank_num
results_df$Priority <- paste0(rank_num, "/", n_pred)
# Replace columns 5 and 6 with "NN" where Necessity is "no"
results_df[results_df$Necessity == "no", 5] <- "NN"
results_df[results_df$Necessity == "no", 6] <- "NN"
results_df[results_df$Necessity == "no", 7] <- "NN"
result <- list(data = data, results =results_df)
return(result)
}7.4.18 ncasem_example_TAM.R
# Script to conduct NCA-SEM for TAM example
# Revised August 10, 2025
# To be sourced:
# source("ncasem.R")
# source("get_indicator_data_TAM.R")
# source("estimate_sem_model_TAM.R")
# source ("get_significance_sem.R")
# Assuming Step 1 (hypotheses) and Step 2 (SEM) have been conducted
# Step 2: Conduct PLS-SEM with SEMinR on TAM data
source("get_indicator_data_TAM.R")
source("estimate_sem_model_TAM.R")
source ("get_significance_sem.R")
# Get indicator data
data <- get_indicator_data_TAM()
# Estimates SEM model
TAM_sem <- estimate_sem_model_TAM(data)
# Get significance of paths
TAM_sig <- get_significance_sem(sem = TAM_sem, nboot = 500) #5000 for final analysis
print(TAM_sig)
# Step 3-5 using ncasem function
source("ncasem.R")
# Settings
standardize <- 0 # use unstandardized data
normalize <- 1 # use normalized data
predictors <- c("Perceived usefulness", "Compatibility", "Perceived ease of use", "Emotional value", "Adoption intention")
predicted <- "Technology use"
# predictors <- c("Perceived usefulness", "Compatibility", "Perceived ease of use", "Emotional value")
# predicted <- "Adoption intention"
theoretical_min <- c(1,1,1,1,1,1) # Min values original scale
theoretical_max <- c(5,5,5,5,5,7) # Max values original scale
# NCA
ceiling = "ce_fdh" # step functions; discrete data (Likert scales)
corner = 1 # for all conditions
test.rep = 100 # set 10000 for final analysis
target_outcome <- 85 # (example)
d_threshold <- 0.10 # common threshold
p_threshold <- 0.05 # common threshold
outliers = 0 # include all data
scope = NULL # use empirial scope
# (x)IPMA plots
plots = FALSE # FALSE = do not save the plots (only display)
scale <- c(0,100) # Define new scale (normalized scales in percentages)
x_range <- c(0,0.6) # range of values of the Importance x-axis of the (x)IPMA plot
y_range <- c(0,100) # range of values of the Performance y-axis of the (x)IPMA plot
size_limits = c(0,100)
size_range <- c(0.5,50) # the size of the bubble of the (x)IPMA plot
name_plot <- "" # name of the CIPMA and BIPMA plots
# Original analysis
sem = TAM_sem
sem_sig = TAM_sig
name_plot <- "Original"
original <- ncasem(sem = sem, sem_sig = sem_sig, outliers = outliers, standardize = standardize,
normalize = normalize, scale = scale, predictors = predictors,
predicted = predicted, corner = corner, theoretical_min = theoretical_min,
theoretical_max = theoretical_max, ceiling = ceiling,
test.rep = test.rep, d_threshold = d_threshold,
p_threshold = p_threshold, scope = scope,
target_outcome = target_outcome, plots = plots, name_plot = name_plot
)
# Get the tabular BIPMA results
original$results <- cbind(`Robustness check` = "Original", original$results)
original$results
# Step 6 Robustness checks
### Ceiling change
name_plot <- "Ceiling change"
ceiling = "cr_fdh"
other_ceiling <- ncasem(sem = TAM_sem, sem_sig = TAM_sig, outliers = outliers, standardize = standardize,
normalize = normalize, scale = scale, predictors = predictors,
predicted = predicted, corner = corner, theoretical_min = theoretical_min,
theoretical_max = theoretical_max, ceiling = ceiling,
test.rep = test.rep, d_threshold = d_threshold,
p_threshold = p_threshold, scope = scope,
target_outcome = target_outcome, plots = plots, name_plot = name_plot
)
other_ceiling$results <- cbind(`Robustness check` = "Ceiling change", other_ceiling$results)
other_ceiling$results
### d threshold change
name_plot <- "d threshold change"
ceiling = "ce_fdh"
d_threshold <- 0.20
other_d <- ncasem(sem = TAM_sem, sem_sig = TAM_sig, outliers = outliers, standardize = standardize,
normalize = normalize, scale = scale, predictors = predictors,
predicted = predicted, corner = corner, theoretical_min = theoretical_min,
theoretical_max = theoretical_max, ceiling = ceiling,
test.rep = test.rep, d_threshold = d_threshold,
p_threshold = p_threshold, scope = scope,
target_outcome = target_outcome, plots = plots, name_plot = name_plot
)
other_d$results <- cbind(`Robustness check` = "d threshold change", other_d$results)
other_d$results
### p threshold change
name_plot <- "p threshold change"
d_threshold <- 0.10
p_threshold <- 0.01
other_p <- ncasem(sem = TAM_sem, sem_sig = TAM_sig, outliers = outliers, standardize = standardize,
normalize = normalize, scale = scale, predictors = predictors,
predicted = predicted, corner = corner, theoretical_min = theoretical_min,
theoretical_max = theoretical_max, ceiling = ceiling,
test.rep = test.rep, d_threshold = d_threshold,
p_threshold = p_threshold, scope = scope,
target_outcome = target_outcome, plots = plots, name_plot = name_plot
)
other_p$results <- cbind(`Robustness check` = "p threshold change", other_p$results)
other_p$results
### Scope change
name_plot <- "Scope change"
p_threshold <- 0.05
scope <- list( c(1,5,1,5), c(1,5,1,5), c(1,5,1,5), c(1,5,1,5), c(1,5,1,5)) #theoretical scope
other_scope <- ncasem(sem = TAM_sem, sem_sig = TAM_sig, outliers = outliers, standardize = standardize,
normalize = normalize, scale = scale, predictors = predictors,
predicted = predicted, corner = corner, theoretical_min = theoretical_min,
theoretical_max = theoretical_max, ceiling = ceiling,
test.rep = test.rep, d_threshold = d_threshold,
p_threshold = p_threshold, scope = scope,
target_outcome = target_outcome, plots = plots, name_plot = name_plot
)
other_scope$results <- cbind(`Robustness check` = "Scope change", other_scope$results)
other_scope$results
### Single outlier removal
name_plot <- "Single outlier removal"
scope <- NULL
outliers = 1
other_outliers_single <- ncasem(sem = TAM_sem, sem_sig = TAM_sig, outliers = outliers, standardize = standardize,
normalize = normalize, scale = scale, predictors = predictors,
predicted = predicted, corner = corner, theoretical_min = theoretical_min,
theoretical_max = theoretical_max, ceiling = ceiling,
test.rep = test.rep, d_threshold = d_threshold,
p_threshold = p_threshold, scope = scope,
target_outcome = target_outcome, plots = plots, name_plot = name_plot
)
other_outliers_single$results <- cbind(`Robustness check` = "Single outlier removal", other_outliers_single$results)
other_outliers_single$results
### Multiple outlier removal
name_plot <- "Multiple outlier removal"
outliers = 2
other_outliers_multiple <- ncasem(sem = TAM_sem, sem_sig = TAM_sig, outliers = outliers, standardize = standardize,
normalize = normalize, scale = scale, predictors = predictors,
predicted = predicted, corner = corner, theoretical_min = theoretical_min,
theoretical_max = theoretical_max, ceiling = ceiling,
test.rep = test.rep, d_threshold = d_threshold,
p_threshold = p_threshold, scope = scope,
target_outcome = target_outcome, plots = plots, name_plot = name_plot
)
other_outliers_multiple$results <- cbind(`Robustness check` = "Multiple outlier removal",other_outliers_multiple$results)
other_outliers_multiple$results
### Target lower (80)
name_plot <- "Target lower"
outliers <- 0
target_outcome <- 80
other_target_lower <- ncasem(sem = TAM_sem, sem_sig = TAM_sig, outliers = outliers, standardize = standardize,
normalize = normalize, scale = scale, predictors = predictors,
predicted = predicted, corner = corner, theoretical_min = theoretical_min,
theoretical_max = theoretical_max, ceiling = ceiling,
test.rep = test.rep, d_threshold = d_threshold,
p_threshold = p_threshold, scope = scope,
target_outcome = target_outcome, plots = plots, name_plot = name_plot
)
other_target_lower$results <- cbind(`Robustness check` = "Target lower", other_target_lower$results)
other_target_lower$results
### Target higher (90)
name_plot <- "Target higher"
target_outcome <- 90
other_target_higher <- ncasem(sem = TAM_sem, sem_sig = TAM_sig, outliers = outliers, standardize = standardize,
normalize = normalize, scale = scale, predictors = predictors,
predicted = predicted, corner = corner, theoretical_min = theoretical_min,
theoretical_max = theoretical_max, ceiling = ceiling,
test.rep = test.rep, d_threshold = d_threshold,
p_threshold = p_threshold, scope = scope,
target_outcome = target_outcome, plots = plots, name_plot = name_plot
)
other_target_higher$results <- cbind(`Robustness check` = "Target higher", other_target_higher$results)
other_target_higher$results
results_all <- rbind(original$results,
other_ceiling$results,
other_d$results,
other_p$results,
other_scope$results,
other_outliers_single$results,
other_outliers_multiple$results,
other_target_lower$results,
other_target_higher$results)
results_all <- results_all[c("Predictor",
"Robustness check",
"Effect size",
"p value",
"Necessity",
"Single bottlenecks(%)",
"Single bottlenecks(#)",
"Priority"
)]
# View
print(results_all)
# Reorganize the dataframe into new blocks
n <- length(predictors) # Block size
rows_per_block <- seq(1, n) # Sequence of row indices in one block
# Create a new column to assign new block numbers
results_all$NewBlock <- rep(rows_per_block, length.out = nrow(results_all))
# Split the dataframe into blocks and combine the blocks sequentially
reorganized_df <- do.call(rbind, lapply(rows_per_block, function(i) {
results_all[results_all$NewBlock == i, ] # Subset rows for the current block
}))
# Remove the helper column and reset row names
reorganized_df <- reorganized_df[, -ncol(reorganized_df)]
row.names(reorganized_df) <- NULL
# View the reorganized dataframe
print(reorganized_df)
# Save the robustness table
library(openxlsx)
#write.xlsx(reorganized_df, "robustness_table_sem_TAM.xlsx", rowNames = FALSE)Glossary
(Several general terms are adapted from Dul & Hak (2008))
Absolute inefficiency. The total area of the scope where the necessary condition does not constrain the outcome and the outcome is not constrained by the necessary condition. Also see Relative inefficiency, Condition inefficiency, Outcome inefficiency.
Accuracy. See Ceiling accuracy, p value accuracy.
Analytical generalization. The statement that the results from a specific study also apply to a wider part of the theoretical domain based on theoretical analysis and reasoning. Also see Statistical generalization.
Approximate permutation test. A statistical significance test that produces an estimate of the p value by randomly selecting a large sample from all possible values of the effect size under rearrangements of the labels of the cases in order to approximate the distribution of the effect size under the null hypothesis. Also see Permutation test.
Binary logic. Two valued logic where statements can only be true or false. Also see Conditional logic, Causal logic, Necessity logic, Sufficiency logic.
Bivariate analysis. A statistical analysis with two variables. Also see Multiple bivariate analysis.
Bottleneck table. A tabular representation of the ceiling line showing which values of the condition(s) is/are necessary for a given value of the outcome Y. Also see Ceiling line.
Boolean logic. See Binary logic.
c-accuracy. See Ceiling accuracy.
C-LP. A straight ceiling line based on linear programming. Also see Ceiling line, CR-FDH, CE-FDH.
Case. An instance of a focal unit. Also see Focal unit.
Case selection. The selection of one or a small number of cases from a set of cases for inclusion in a small N study. Also see Small N study, Sampling.
Case study. A research strategy in which one or a small number of cases is selected for a small N observational study. Also see Survey, Experiment.
Causal logic. The logic in which statements are causal relations. Also see Binary logic, Conditional logic, Necessity logic, Sufficiency logic.
Causal relation. A relation between two variable characteristics X and Y of a focal unit in which a value of X (or its change) permits, or results in a value of Y (or in its change). Also see Cause.
Cause. A variable characteristic X of a focal unit of which the value (or its change) permits, or results in a value (or its change) of another variable characteristic Y. Also see Necessary cause, Sufficient cause.
CE-FDH. A step function ceiling line based on the free disposal hull. Also see Ceiling line, CR-FDH, C-LP.
Ceiling accuracy. The extent to which cases are on or below the ceiling line expressed as percentage of the total number of cases.
Ceiling Envelopment - Free Disposal Hull. See CE-FDH.
Ceiling line. The borderline in an XY scatter plot or XY contingency table between the space (virtually) without cases and the space with cases. Also see CE-FDH, CR-FDH, C-LP.
Ceiling Regression - Free Disposal Hull. See CR-FDH.
Ceiling zone. The (virtually) empty space above the ceiling line.
Concept. The variable aspect of a focal unit of a proposition. Also see Independent concept, Dependent concept, Variable.
Conceptual model. A visual representation of a proposition or hypothesis in which the concepts or variables are presented by blocks and the relation between them by an arrow. The arrow originates in the independent concept/variable and points to the dependent concept/variable.
Condition. A variable characteristic X of a focal unit of which the value (or its change) permits, or results in a value (or its change) of another variable characteristic Y (which is called the outcome).
Also see Necessary condition, Sufficient condition, Independent concept, Independent variable, Outcome.
Conditional logic. If-then statements that can only be true or false. Also see Binary logic.
Condition inefficiency. The area of the scope where the condition does not constrain the outcome. Also see Absolute inefficiency, Relative inefficiency, Outcome inefficiency.
Contingency table. A matrix representation of the relation between condition and outcome with the number of cases shown in the cells. Also see Scatter plot.
Continuous necessary condition. A necessary condition in which the condition and the outcome can have infinite numbers of levels (values). Also see Dichotomous necessary condition, Discrete necessary condition.
Control variable. A variable that is added in regression based data analyses for improving the prediction of the outcome and avoiding biased estimation of regression coefficients. Also see Independent variable, Dependent variable.
Convenience sample. A non-probability sample in which the instances are selected for convenience of the researcher. Also see Probability sample, Random sample.
CR-FDH. A straight ceiling line based on a trend line through the upper left peers of the free disposal hull. Also see CE-FDH, C-LP.
d. See Effect size.
Data. Recordings of evidence generated in the process of data collection. Also see Measurement, Qualitative data, Quantitative data, Longitudinal data.
Data analysis. The interpretation of scores obtained in a study in order to generate the result of the study. Also see Qualitative data analysis, Quantitative data analysis, Longitudinal data analysis.
Data collection. The process of identifying and selecting one or more objects of measurement, extracting evidence of the value of the relevant variable characteristics from these objects, and recording this evidence. Also see Object of measurement.
Dataset. A collection of scores obtained from data collection.
Dependent concept. A variable characteristic Y of a focal unit of a proposition of which the value (or its change) is the result of, or is permitted by a value (or its change) of another variable characteristic X (which is called the independent concept). Also see Independent concept.
Dependent variable. A variable characteristic Y of a focal unit of a hypothesis of which the value (or its change) is the result of, or is permitted by a value (or its change) of another variable characteristic X (which is called the independent concept). Also see Independent variable.
Deterministic view. A position taken by the researcher that a condition can only be called a necessary condition for an outcome when there are not exceptions. Also see Probabilistic view.
Dichotomous necessary condition. A necessary condition in which the condition and the outcome can have only two levels (values). Also see Discrete necessary condition, Continuous necessary condition.
Discrete necessary condition. A necessary condition in which the condition and the outcome can have finite numbers of levels (values). Also see Dichotomous necessary condition, Continuous necessary condition.
Domain. See Theoretical domain.
Effect size. The magnitude of the constraint that a necessary condition poses on the outcome expressed as the size of the ceiling zone relative to the size of the scope.
Effect size threshold. The d value selected by the researcher for evaluating the necessary condition hypothesis. Also see Statistical significance threshold.
Empirical Scope. The area of a contingency table or a scatter plot defined by the empirically observed minimum and maximum values of the condition and the outcome. Also see Theoretical scope.
Expected pattern. A score or a combination of scores that is predicted by a hypothesis. Also see Observed pattern, Pattern matching.
Experiment. A research strategy in which the independent variable is manipulated and the dependent variable is measured. Also see Case study, Survey.
Falsification. The view that theories and hypotheses cannot be proven true, but can only be proven false.
Fit. The effect size of a selected ceiling line as percentage of the effect size of the CE-FDH ceiling line.
Focal unit. The stable characteristic of a theory, proposition or hypothesis. Examples are ‘employee’, ‘team’, ‘company’, ‘country’. Also see Theoretical domain.
Generalization. The statement that the research results from a specific study also apply to a wider part of the theoretical domain. Also see Analytical generalization, Statistical generalization.
Hypothesis. A theoretical statement about the relationship between variables. Also see Necessary condition hypothesis, Proposition.
Independent concept. A variable characteristic X of the focal unit of a proposition, of which the value (or its change) permits, or results in a value (or its change) of another variable characteristic Y (which is called the dependent concept). Also see Dependent concept.
Independent variable. A variable characteristic X of the focal unit of a hypothesis, of which the value (or its change) permits, or results in a value (or its change) of another variable characteristic Y (which is called the dependent variable). Also see Dependent variable.
Influential case. A case that has a large influence on the necessity effect size when removed. Also see Outlier.
Informant. A person who is the object of measurement for a variable and who is knowledgable about that variable and informs the researcher about it. Also see Subject.
Instance of a focal unit. One occurrence of the focal unit.
Large N study. A study with a large number of cases. N stands for the number of cases. Also see Small N study.
Likert scale. A rating scale in the format of a limited number of points that can represent a person’s response. Also see Informant, Subject.
Logic. See Binary logic, Causal logic, Conditional logic, Necessity logic, Sufficiency logic.
Longitudinal data. Scores of variables that are measured at several moments in time. Also see Panel data, Time-series data, Qualitative data, Qualitative data.
Longitudinal data analysis. Evaluating the time pattern of longitudinal data. Also see Qualitative data analysis, Quantitative data analysis.
Measurement. The process in which scores are generated for data analysis. Also see Data, Measurement validity, Measurement reliability.
Measurement validity. The extent to which procedures of data collection and of scoring can be considered to meaningfully capture the ideas contained in the concept of which the value is measured. Also see Measurement reliability*.
Measurement reliability. The degree of precision of a score when the measurement is repeated. Also see Measurement validity.
Mediator. A concept or variable that links the independent and the dependent concept or variable in a proposition or hypothesis.
Moderator. A concept or variable that that qualifies the relation between the independent and the dependent concepts or variables in a proposition or hypothesis.
Multiple bivariate analysis. A series of bivariate analyses.
Multiple regression. A techniques for modelling and analysing the relationship between several independent variables and an dependent variable to understand how a dependent variable changes on average when the independent variables change. Also see OLS regression.
NCA. See Necessary Condition Analysis.
NCA parameters. A set of quantities to evaluate a necessary condition. Also see Scope, Ceiling zone, Effect size, Accuracy, Fit, Ceiling line, Absolute inefficiency, Relative inefficiency, Condition inefficiency, Outcome inefficiency.
Necessary cause. See Necessary condition.
Necessary condition. A cause that must exist in order for the outcome to exist. Also see Sufficient condition.
Necessary Condition Analysis (NCA). An approach and technique for modelling and analysing necessity relations between concepts.
Necessary condition hypothesis. A theoretical statement about the necessity relationship between variables.
Necessary condition in kind. A necessary condition that is qualitatively formulated as ‘X is necessary for Y’. Also see Necessary condition in degree.
Necessary condition in degree. A necessary condition that is quantitative formulated as ‘level Xc is necessary for level Yc’. Also see Necessary condition in kind.
Necessity logic. A causal logic in which the cause is a necessary condition. Also see Sufficiency logic, Boolean logic, Binary logic.
Necessity relation. A causal relationship in which the cause is a necessary condition. Also see Sufficiency relation.
Object of measurement. An object that must be observed in order to extract evidence of the value of a variable (data).
Observational study. A research strategy in which variables in the real life context are not manipulated by the researcher. Also see Case study, Survey, Experiment.
Observed pattern. The score or the combination of scores obtained in a study. In data analysis, an observed pattern is compared (“matched”) with an expected pattern. Also see Expected pattern, Pattern matching.
OLS regression. A techniques for modelling and analysing the relationship between one or more independent variables and an dependent variable to understand how a dependent variable changes on average when the independent variables change, based on the Ordinary Least Squares estimation technique where the squared vertical distances between the cases and the regression line is minimized. Also see Multiple regression.
Omitted variable bias. The estimation error that is made when a variable is omitted from a conceptual model that is analysed statistically.
Outcome. The variable characteristic Y of a focal unit of which the value (or its change) is the result of, or is permitted by a value (or its change) of another variable characteristic X (which is called the condition). Also see Dependent concept, Dependent variable, Condition.
Outcome inefficiency. The area of the scope where the outcome is not constrained by the condition. Also see Absolute inefficiency, Relative inefficiency, Condition inefficiency.
Outlier. An outlier is a point (case) in a scatter plot or contingency table that is considered to be ‘far away’ from the other points (cases). Also see Influential case.
p-accuracy. See p value accuracy.
Panel data. See Longitudinal data.
Pattern. See Expected pattern, Observed pattern.
Pattern matching. Comparing two or more patterns in order to determine whether patterns match (i.e. that they are the same) or do not match (i.e. that they differ). Pattern matching in data analysis is comparing an observed pattern with an expected pattern.
Peer. A case that is used to draw the ceiling line.
Permutation test. A statistical significance test that produces an exact p value by obtaining the distribution of the effect size under the null hypothesis by calculating all possible values of the effect size under rearrangements of the labels of the cases. Also see Approximate permutation test.
Probabilistic view. A position taken by the researcher that a condition can also be called a necessary condition for an outcome when there are a few exceptions.
p value. The probability that the effect size is greater than or equal to the observed effect size when the null hypothesis that the variables are unrelated is true.
p value accuracy. The estimated difference between the exact p value of the effect size and the estimated p value of the effect size. Also see Approximate permutation test, Permutation test.
Population. The set of instances of a focal unit defined by one or a small number of criteria.
Probability sample. A sample in which each instance of a sampling frame has a known non-zero probability of being selected into the sample. Also see Convenience sample, Random sample.
Proposition. A theoretical statement about the relationship between concepts. Also see Hypothesis.
QCA. See Qualitative Comparative Analysis.
Qualitative data. Scores expressed in words or letters. Also see Quantitative data, Longitudinal data.
Qualitative Comparative Analysis (QCA). An approach and technique for modelling and analysing the relationship between concepts and combinations of concepts by using binary logic.
Qualitative data analysis. Identifying and evaluating a pattern in the scores obtained in a study by visual inspection. Also see Pattern matching, Visual inspection, Quantitative data analysis, Longitudinal data analysis.
Quantitative data. Scores expressed in numbers. Also see Qualitative data, Longitudinal data.
Quantitative data analysis. Generating and evaluating the output of statistical procedures applied to the scores obtained in a study. Also see Pattern matching, Qualitative data analysis, Longitudinal data analysis.
Random sample. A probability sample in which each instance of the sampling frame has the same probability of being selected into the sample. Also see Probability sample, Convenience sample.
Rating scale. A method in which a person assigns a value to an object. Also see Informant, Subject.
Regression. See OLS regression, Multiple regression.
Rejection. A hypothesis is said to be rejected if the observed pattern of scores is not the same as the pattern predicted by the hypothesis. Also see Expected pattern, Observed pattern, Pattern matching.
Relative inefficiency. The total area of the scope where the necessary condition does not constrain the outcome and the outcome is not constrained by the necessary condition, expressed as percentage of the scope. Also see Absolute inefficiency, Condition inefficiency, Outcome inefficiency.
Replication. Conducting a test of a hypothesis in another instance, or in another group or population of instances of the focal unit.
Research strategy. See Research design.
Research design. A category of procedures for selecting or generating one or more instances of a focal unit as well as for analysing the data that are observed or generated in the selected or generated instance or instances. Also see Experiment, Survey, Case study.
Sample. A set of instances selected from a population or a theoretical domain. Also see Convenience sample, Probability sample, Random sample.
Sampling. The selection of instances from a population or a theoretical domain. Also see Sample, Sampling frame.
Sampling frame. A list of all instances of a population. Also see Probability sampling, Population.
Scatter plot. A graphical representation of the relation between condition and outcome on two axes with cases shown as points. Also see Contingency table.
Scope. The area of a contingency table or a scatter plot defined by the minimum and maximum values of the condition and the outcome. Also see Empirical scope, Theoretical scope.
Score. A value assigned to a variable based on data.
Significance. See Statistical significance, Substantive significance.
Small N study. A study with one or a small number of cases. N stands for the number of cases. Also see Large N study.
Statistical generalization. The statement that the research results that are obtained in a sample of a population also apply to the population from which the sample is drawn. Also Analytical generalization.
Statistical significance. The meaningfulness of the effect size from a statistical perspective. Also see p value, Substantive significance.
Statistical significance threshold. The p value selected by the researcher for evaluating the necessary condition hypothesis. Also see Effect size threshold.
Study. A research project in which a research objective is formulated and achieved.
Subject. A person who is the object of measurement and an instance of the focal unit of the theory. Also see Informant.
Substantive significance. The meaningfulness of the effect size from a practical perspective. Also see Statistical significance.
Sufficiency logic. A causal logic in which the cause is a sufficient condition. Also see Necessity logic.
Sufficiency relation. A causal relationship in which the cause is a sufficient condition. Also see Necessity relation.
Sufficient cause. See Sufficient condition.
Sufficient condition. A cause that always results in an outcome. Also see Necessary condition.
Survey. A research strategy in which a single population of instances of the focal unit is selected for a large N observational study. Also see Case study, Experiment.
Test. Determining whether a hypothesis is supported or rejected in an instance or in a group or population of instances selected from the theoretical domain.
Theoretical domain. The universe of instances of a focal unit of a theory, proposition or hypothesis where the theory, proposition or hypothesis is supposed to hold.
Theoretical scope. The area of a contingency table or a scatter plot defined by the theoretically possible minimum and maximum values of the condition and the outcome. Also see Empirical scope.
Theory. A set of propositions regarding the relations between the variable characteristics (concepts) of a focal unit, and the description why the relations exist.
Theory-in-use. A more or less consistent set of beliefs in practice about the world.
Time-series data. Scores of a single variables that is measured at many moments in time. Also see Longitudinal data, Panel data, Qualitative data, Qualitative data.
Time-series data analysis. Evaluating the time pattern of time-series data. Also see Longitudinal data analysis, Qualitative data analysis, Quantitative data analysis.
Variable. The variable aspect of a focal unit of a hypothesis. Also see Concept, Independent variable, Dependent variable.
Visual inspection. The procedure by which patterns are discovered or compared by looking at the scores or a graphical representation of the scores. Also see Pattern matching, Qualitative data analysis.
References
Doing a though experiment is a type of counterfactual reasoning. A counterfactual is a hypothetical scenario that describes what could have happened, but didn’t. It can be used not only for theorizing about necessity but also for sufficiency. In counterfactual reasoning for necessity it is first assumed that \(X\) and \(Y\) occurred and subsequently the question is raised “what would have happened if \(X\) had not occurred?” If \(Y\) would still be there, \(X\) is not necessary for \(Y\). If \(Y\) would disappear, \(X\) is necessary for \(Y\). In counterfactual reasoning for sufficiency it is first assumed that \(X\) and \(Y\) did not occur and subsequently the question is raised “what would have happened if \(X\) would have happened if X had occurred?” If \(Y\) would still not be there, \(X\) is not sufficient for \(Y\). If \(Y\) would appear, \(X\) is sufficient for \(Y\).↩︎
See for example the advise “While a non-significant effect provides evidence that a total effect is zero in the population, researchers should retain the corresponding construct in the IPMA since this outcome may also represent a valuable finding (e.g., a company invests into the performance of a construct that has no effect), which also can change with different data, for instance, in alternative contexts of the analysis” (Ringle & Sarstedt, 2016, p. 1872), and the practice of the example in Hauff et al. (2024) that includes non-significant total effects in CIPMA↩︎
This aligns with NCA’s recommendation that the absence of any of the three critical requirements for support for necessity falsifies the necessary condition claim: the absence of theoretical support (no necessity hypothesis), the absence of a practically relevant effect size (e.g., \(d < 0.10\)), and a statistically non-significant necessity effect size (e.g., \(p > 0.05\)).↩︎
Note that standard bootstrapping should not be used, as the test statistic in NCA—the necessity effect size—does not satisfy the ‘smoothness’ assumption required for valid bootstrapping. Using bootstrapping with the necessity effect size may produce biased p values,↩︎