📂 数据导入

上传您的研究数据(CSV或Excel格式),或加载示例数据快速体验。

📁

拖拽文件到此处,或

支持 .csv, .xlsx, .xls 格式

示例数据:基于组织创新研究场景,包含5个条件变量和1个结果变量,共25个案例

数据预览

📋 {{ rawData.length }} 个案例 📊 {{ columns.length }} 个变量 ⚠️ {{ missingCount }} 个缺失值
# {{ col }}
{{ idx + 1 }} {{ isMissing(row[col]) ? '-' : row[col] }}
... 还有 {{ rawData.length - 20 }} 行

变量角色指定

请指定哪些列是条件变量,哪个列是结果变量。

条件变量 (已选 {{ conditionVars.length }})

结果变量 (已选 {{ outcomeVar ? '1' : '0' }})

✅ 已配置:{{ conditionVars.length }} 个条件变量 + 1 个结果变量({{ outcomeVar }})

🔧 变量校准(Calibration)

为每个变量设定三个定性锚点,将原始数据转换为模糊集隶属度(0~1之间)。

📐 校准原理

使用对数几率变换(log-odds transformation),通过三个定性锚点将原始数据映射到[0,1]模糊集隶属度:

  • 完全归属锚点(Fully In):≥ 此值的案例隶属度接近0.95
  • 交叉点锚点(Crossover)= 此值的案例隶属度 = 0.5
  • 完全非归属锚点(Fully Out):≤ 此值的案例隶属度接近0.05

{{ varName }}

{{ conditionVars.includes(varName) ? '条件变量' : '结果变量' }}
→ 隶属度 0.95
→ 隶属度 0.50
→ 隶属度 0.05
⚠️ {{ getCalWarning(varName) }}
手动微调个别案例隶属度
案例原始值校准值调整值(可选)
{{ idx + 1 }} {{ row[varName] }} {{ getCalibratedValue(varName, idx).toFixed(3) }}

🔍 必要性分析(Necessity Analysis)

检验每个条件是否为结果的必要条件。一致性 ≥ 0.9 通常认为该条件是必要条件。

📐 指标说明
  • 一致性(Consistency):衡量条件作为结果必要条件的程度。Cons = Σmin(x,y) / Σy
  • 覆盖度(Coverage):衡量必要条件解释经验的范围。Cov = Σmin(x,y) / Σx
  • 一致性 ≥ 0.9:通常认为该条件(或其非集)是结果的必要条件
条件 一致性 覆盖度 是否必要条件
{{ item.name }} {{ item.consistency.toFixed(4) }} {{ item.coverage.toFixed(4) }} ✓ 必要条件

📊 真值表(Truth Table)

将所有案例分配到 2k 种条件组合中,计算每行的一致性和频数。

至少包含此数量的案例才纳入分析
通常设为 0.75 ~ 0.85
行号 {{ getSortIcon('index') }} {{ cv }} 频数 {{ getSortIcon('freq') }} 一致性 {{ getSortIcon('cons') }} ≥阈值 结果
{{ row.index + 1 }} {{ val }} {{ row.freq }} {{ row.consistency.toFixed(4) }} {{ row.include === 1 ? '✓' : '✗' }} {{ row.include === 1 ? '1' : '0' }}
总行数 {{ truthTable.length }}
纳入行(结果=1) {{ truthTable.filter(r => r.include === 1).length }}
排除行(结果=0) {{ truthTable.filter(r => r.include === 0).length }}

⚙️ 组态分析(Configuration Analysis)

使用Quine-McCluskey算法进行布尔最小化,得到三种解:复杂解、简约解和中间解。

理论方向设定(用于中间解)

请为每个条件变量指定预期的理论方向:正向(+)表示该条件有助于结果产生,反向(-)表示该条件不利于结果产生。这将指导中间解的反事实分析。

{{ cv }}

复杂解(Complex Solution)

不使用反事实假设,仅基于经验证据。

组态 {{ cv.substring(0,6) }} 一致性 原始覆盖度 唯一覆盖度
第{{ idx + 1 }}组 {{ sym || ' ' }} {{ cfg.consistency.toFixed(4) }} {{ cfg.rawCoverage.toFixed(4) }} {{ cfg.uniqueCoverage.toFixed(4) }}

无满足条件的组态

总体一致性: {{ qmcResults.complexOverall.consistency.toFixed(4) }} | 总体覆盖度: {{ qmcResults.complexOverall.coverage.toFixed(4) }}

简约解(Parsimonious Solution)

使用所有可能的简单反事实简化。

组态 {{ cv.substring(0,6) }} 一致性 原始覆盖度 唯一覆盖度
第{{ idx + 1 }}组 {{ sym || ' ' }} {{ cfg.consistency.toFixed(4) }} {{ cfg.rawCoverage.toFixed(4) }} {{ cfg.uniqueCoverage.toFixed(4) }}

无满足条件的组态

总体一致性: {{ qmcResults.parsimoniousOverall.consistency.toFixed(4) }} | 总体覆盖度: {{ qmcResults.parsimoniousOverall.coverage.toFixed(4) }}

中间解(Intermediate Solution)

使用有理论方向指导的反事实简化。

组态 {{ cv.substring(0,6) }} 一致性 原始覆盖度 唯一覆盖度
第{{ idx + 1 }}组 {{ sym || ' ' }} {{ cfg.consistency.toFixed(4) }} {{ cfg.rawCoverage.toFixed(4) }} {{ cfg.uniqueCoverage.toFixed(4) }}

无满足条件的组态

总体一致性: {{ qmcResults.intermediateOverall.consistency.toFixed(4) }} | 总体覆盖度: {{ qmcResults.intermediateOverall.coverage.toFixed(4) }}

📤 结果导出

导出分析结果为CSV文件或生成完整的HTML分析报告。

📊

校准后数据

包含原始值和模糊集隶属度的完整数据集

🔍

必要性分析结果

各条件的一致性和覆盖度

📋

真值表

完整的真值表数据

⚙️

组态分析结果

三种解的组态及覆盖度信息

📄

完整分析报告

包含所有分析步骤的完整HTML报告,可直接打印为PDF