Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Ernest861/NetworkApp

Repository files navigation

🎯 心理量表网络分析应用 v2.0

License R Version Shiny

🌟 项目简介

这是一个基于R Shiny开发的企业级心理量表网络分析应用,支持完整的横断面网络分析研究流程。从简单的教学脚本发展为功能完整、技术健壮、研究友好的专业心理网络分析工具。

📊 应用规模

  • 代码规模:15,000+ 行专业R代码
  • 功能模块:11个主要分析模块,104个专业函数
  • 支持量表:8+ 种核心心理量表
  • 分析方法:涵盖所有主流网络分析技术

🚀 v2.0 核心功能

🔍 多层级网络分析

  • 汇总层:使用量表总分或维度得分构建网络
  • 子量表层:基于各个维度得分的网络结构
  • 条目层:原始题目级别的详细网络关系

📏 样本量计算 ⭐ NEW

  • 动态计算:基于powerly包的网络样本量计算
  • 参数自动提取:从网络结果中自动提取节点数和密度
  • Bootstrap验证:支持置信区间估计
  • 并行计算:多核加速计算
  • 可视化:样本量曲线图和详细统计表

🔧 变量构造系统 ⭐ NEW

  • 智能量表识别:自动识别8+种心理量表
  • 多层级变量生成:总分、维度得分、条目得分
  • 自动质量检查:Cronbach's α信度检验、缺失值分析
  • 灵活计分规则:支持sum、mean两种计分方式
  • CSV配置化管理:量表配置外部化管理

📖 智能故事生成器 ⭐ NEW

  • 量表组合识别:自动分析量表组合模式
  • 个性化故事线:生成对应的研究假设和理论框架
  • 分析建议:提供针对性的网络分析策略
  • 研究背景:自动生成文献背景和理论依据

🌉 桥接网络分析

  • 桥接节点识别:自动识别连接不同心理构念组别的关键节点
  • 变量分组配色:支持自定义变量分组和配色方案
  • 快速分组操作:提供"全部合并"、"每个一组"、"按类型分组"等快捷功能
  • 临床意义:桥接节点通常是干预的优先目标

🎯 专门的变量选择系统

  • 分层级选择:每个量表可独立选择分析层级(汇总/子量表/条目)
  • 实时预览:显示最终变量配置和数据质量状态
  • 智能推荐:基于量表特性提供默认层级建议
  • 质量评估:实时显示完整观测数量和缺失值统计

📊 自动量表识别

支持以下心理量表的自动识别:

  • AUDIT: 酒精使用障碍识别测试
  • HRF: 习惯-奖赏-恐惧动机量表
  • PHQ-9: 患者健康问卷抑郁量表
  • GAD-7: 广泛性焦虑量表
  • BDI-II: 贝克抑郁量表第二版
  • DASS-21: 抑郁焦虑压力量表
  • IAT: 网络成瘾测试
  • FTND: 法格斯特姆烟草依赖测试

🛡️ 数据质量保证

  • 自动数据验证和质量检查
  • 缺失值处理和异常值检测
  • 样本量和完整性评估

🌡️ 网络温度分析

  • Ising模型:基于psychonetrics包的温度分析
  • 8模型约束层级:从自由模型到完全约束模型
  • 模型比较:AIC/BIC信息准则比较
  • 可视化:温度比较条形图和网络热图

🧠 贝叶斯网络分析

  • 结构学习:HC、TABU、MMHC等算法
  • 因果推理:DAG结构和条件独立性检验
  • Bootstrap验证:结构稳定性评估
  • 专业可视化:使用Rgraphviz包的DAG图

📈 全面的网络分析

  • 网络结构可视化:使用 quickNet 包的高质量网络图
  • 中心性指标分析:强度、接近性、介数中心性计算
  • 独立稳定性分析:使用 bootnet 包进行边稳定性和中心性稳定性检验
  • NetCompare 组间比较:支持网络比较测试(NCT)和差异网络可视化
  • 交互式参数调整:实时调整网络阈值和Bootstrap参数
  • 多种估计方法:EBICglasso、MGM、Ising、相关网络、偏相关、TMFG等

💾 结果导出

  • 高质量网络图:PDF格式专业图表
  • 分析数据下载:详细的统计结果
  • 完整R脚本:可重现的分析代码
  • 分析报告:自动生成的研究故事

安装和运行

1. 环境准备

确保已安装 R (≥ 4.0.0) 和必要的包:

# 核心依赖包
install.packages(c(
  "shiny", "shinydashboard", "shinyWidgets", 
  "DT", "plotly", "readxl", "dplyr", "ggplot2"
))

# 网络分析包
install.packages(c(
  "bootnet", "bnlearn", "igraph", 
  "psychonetrics",  # 温度分析
  "powerly"         # 样本量计算
))

# 从 GitHub 安装 quickNet
if (!require(devtools)) install.packages("devtools")
devtools::install_github("LeiGuo0812/quickNet")

# 从 Bioconductor 安装图形包
if (!require("BiocManager")) install.packages("BiocManager")
BiocManager::install("Rgraphviz")

2. 启动应用

⚠️ 重要:推荐使用安全启动脚本避免包冲突

# 方法1:完整启动脚本(推荐)
source("run_app.R", encoding = "UTF-8")

# 方法2:安全启动脚本
source("安全启动.R", encoding = "UTF-8")

# 方法3:手动启动(需要手动安装依赖)
shiny::runApp(".", port = 3838)

为什么要使用安全启动?

  • 避免 bruceR 包与 Shiny 的 p() 函数冲突
  • 自动检查必要文件和依赖包
  • 提供清晰的启动状态信息

启动后,浏览器会自动打开应用界面:http://127.0.0.1:3841

数据格式要求

📁 支持的文件格式

  • CSV 文件 (.csv)
  • Excel 文件 (.xlsx, .xls)

📋 数据结构

  • :每行代表一个被试/参与者
  • :每列代表一个测量指标(题目或维度得分)

🏷️ 变量命名规范

为了自动识别量表结构,请遵循以下命名规范:

量表前缀_题目编号

示例:

  • AUDIT量表:AUDIT10_1, AUDIT10_2, ..., AUDIT10_10
  • HRF量表:HRF18_1, HRF18_2, ..., HRF18_18
  • PHQ量表:PHQ9_1, PHQ9_2, ..., PHQ9_9

📊 数据质量要求

  • 最小样本量:30 个被试
  • 数据完整率:≥ 70%
  • 单个变量缺失率:≤ 30%

使用流程

步骤 1: 数据上传

  1. 点击"数据上传"标签页
  2. 选择数据文件(CSV 或 Excel 格式)
  3. 确认数据包含列名
  4. 查看数据预览、量表识别结果和质量检查

步骤 2: 变量构造 ⭐ NEW

  1. 点击"变量构造"标签页
  2. 查看智能量表识别结果
  3. 选择计分方式(sum 或 mean)
  4. 运行量表计算
    • 自动计算总分和维度得分
    • 生成信度检验报告
    • 质量控制和异常值检测
  5. 查看计算结果和质量报告

步骤 3: 变量选择 ⭐

  1. 点击"变量选择"标签页
  2. 为每个量表独立选择分析层级
    • 汇总层:适合探索总体关系模式(AUDIT、PHQ推荐)
    • 子量表层:适合研究维度间关系
    • 条目层:适合详细的题目级分析(HRF推荐)
  3. 配置变量分组(可选):
    • 默认每个量表一组
    • 可合并多个量表为一组
    • 支持"全部合并"、"每个一组"等快速操作
  4. 查看实时数据质量状态(完整观测数、缺失值统计)
  5. 确认变量配置

步骤 4: 网络分析

  1. 点击"网络分析"标签页
  2. 调整分析参数:
    • 网络阈值(推荐 0.05)
    • Bootstrap 次数(推荐 1000-5000)
    • 桥接分析设置(如果有多个变量组)
  3. 点击"运行分析"
  4. 查看网络图和中心性结果

步骤 5: 高级分析 ⭐ NEW

选择进行以下高级分析:

🌡️ 网络温度分析

  1. 点击"网络温度分析"标签页
  2. 设置分组变量和二值化方法
  3. 运行8模型约束层级比较
  4. 查看温度比较图和模型评估

🧠 贝叶斯网络分析

  1. 点击"贝叶斯网络"标签页
  2. 选择结构学习算法
  3. 运行DAG结构推理
  4. 查看因果关系图和Bootstrap验证

📏 样本量计算

  1. 点击"样本量计算"标签页
  2. 系统自动提取网络参数
  3. 运行powerly分析
  4. 查看样本量曲线和建议

步骤 6: 稳定性分析

  1. 点击"稳定性分析"标签页
  2. 运行独立的Bootstrap稳定性检验
  3. 查看边稳定性和中心性稳定性图表

步骤 7: 结果解读

  • 网络图:节点大小表示中心性,边粗细表示关系强度
  • 桥接网络:方形节点表示桥接节点,连接不同心理构念
  • 中心性分析:识别网络中的核心节点
  • 稳定性分析:评估网络结构的可靠性
  • 智能故事:自动生成的研究建议和理论解释

步骤 8: 结果导出

  1. 点击"结果下载"标签页
  2. 下载专业图表
    • 网络图(PDF格式)
    • 桥接网络图(PDF格式)
    • 中心性图(PDF格式)
    • 稳定性分析图(PDF格式)
    • 温度分析图(PDF格式)
    • 贝叶斯DAG图(PDF格式)
  3. 下载分析数据
    • 详细统计结果(CSV格式)
    • 网络邻接矩阵
    • 中心性指标表
  4. 下载完整R脚本
    • 可重现的分析代码
    • 自动记录的操作步骤
    • 包含所有参数设置

📁 应用架构

NetworkApp/
├── app.R                    # 主应用文件(9,231行,600KB+)
├── utils.R                  # 工具函数库(4,035行,104个函数)
├── config.R                 # 配置文件(451行,8种量表定义)
├── scale_calculator.R       # 量表计算引擎(483行)
├── 05_ScaleCalculation.R    # 高级量表计算(650行)
├── story_generator.R        # 分析故事生成器(311行)
├── run_app.R                # 完整启动脚本(192行)
├── 安全启动.R               # 推荐启动脚本(70行)
├── README.md                # 本说明文档
├── CLAUDE.md                # Claude 代码助手指南
├── 最终使用说明.md          # 详细使用指南
└── example_data.csv         # 示例数据文件

🎛️ 应用界面结构(11个主要功能模块)

  1. 首页 - 横断面网络分析研究框架介绍
  2. 数据上传 - 文件上传和数据验证
  3. 变量构造 ⭐ - 高级量表变量构造和计分
  4. 变量选择 ⭐ - 专门的变量层级选择页面
  5. 网络分析 - 核心网络分析和可视化
  6. 网络温度分析 ⭐ - Ising模型温度分析
  7. 贝叶斯网络 ⭐ - 因果推理和DAG分析
  8. 稳定性分析 - 独立的Bootstrap稳定性检验
  9. 样本量计算 ⭐ - 基于powerly的样本量计算
  10. 结果下载 - 图表和数据导出
  11. 使用说明 - 说明文档

核心模块

  1. 数据处理模块 (utils.R)

    • 自动量表识别:parse_scale_structure_advanced()
    • 数据验证:validate_data()
    • 维度得分计算:compute_scale_scores_advanced()
  2. 网络分析模块 (utils.R)

    • 安全网络分析:safe_network_analysis()
    • 桥接网络分析:Bridge分析和bridgeGroup识别
    • 样本量计算:基于powerly包的蒙特卡洛方法
    • 结果导出:export_analysis_results()
  3. 配置管理模块 (config.R)

    • 量表结构定义:SCALE_CONFIGS
    • 分析参数:NETWORK_PARAMS
    • 可视化配置:VIZ_CONFIG

量表配置

应用内置了多种心理量表的配置,包括:

HRF 量表维度结构

Habit (习惯动机): 题目 3, 6, 7, 10, 14, 16
Reward (奖赏动机): 题目 2, 4, 9, 12, 15, 17  
Fear (恐惧动机): 题目 1, 5, 8, 11, 13, 18

AUDIT 量表计分

题目 1-8: 0-4 分
题目 9-10: 0-4 分(权重 ×2)
总分范围: 0-40 分

🔧 技术特性

v3.0 新增特性

  • 📏 动态样本量计算:基于powerly包的蒙特卡洛算法
  • 🔧 智能变量构造:自动量表识别和计分系统
  • 📖 智能故事生成:个性化研究建议和理论框架
  • 🌡️ 网络温度分析:8模型约束层级的Ising模型比较
  • 🧠 贝叶斯网络分析:DAG结构学习和因果推理
  • 📝 完整代码导出:可重现的R脚本自动生成

性能优化

  • 多核并行计算:支持样本量计算和Bootstrap分析的并行处理
  • 内存管理:优化大数据集处理和缓存机制
  • 错误处理:完善的异常处理和用户友好的错误提示
  • 函数冲突保护:多层次基础函数锁定机制

📚 支持与文档

详细文档

  • CLAUDE.md - Claude代码助手完整指南
  • 最终使用说明.md - 详细的用户使用指南
  • 快速开始.md - 快速入门教程

获取帮助

  • 应用内置使用说明页面
  • 智能故事生成器提供分析建议
  • 实时数据质量评估和提示

📈 版本历史

v2.0 (2024-08-21) - 完整版

  • ✅ 新增样本量计算功能
  • ✅ 完善变量构造系统
  • ✅ 新增智能故事生成器
  • ✅ 优化函数冲突保护

更新日志

v1.2.0 (2024-08-17) - 桥接网络分析版

  • ✅ 新增桥接网络分析功能(Bridge Analysis)
  • ✅ 支持多组别间桥接节点识别
  • ✅ 桥接网络可视化(方形节点表示桥接节点)
  • ✅ 桥接分析结果导出和下载功能
  • ✅ 智能检测变量分组,自动启用桥接分析选项

v1.1.0 (2024-08-11) - 数据质量评估版

  • ✅ 新增完整观测数量实时显示功能
  • ✅ 变量选择页面显示每个变量的缺失值统计
  • ✅ 智能数据质量评估和分层提示系统
  • ✅ 改进样本量不足的错误提示和建议
  • ✅ 增强变量预览界面的信息密度

v1.0.0 (2024-08-07) - 基础完成版

  • ✅ 完整的6标签页应用架构
  • ✅ 专门的变量选择页面和服务器端逻辑
  • ✅ 解决bruceR包冲突问题
  • ✅ 移除15条目硬限制,改为30节点建议
  • ✅ 修复网络图显示问题
  • ✅ 完整的多层级网络分析功能
  • ✅ 独立的稳定性分析模块

贡献指南

欢迎贡献代码或提出建议:

  1. 量表配置扩展(在 config.R 中添加新量表)
  2. 分析功能增强(在 utils.R 中添加新函数)
  3. 界面优化建议
  4. 错误报告和修复

许可证

本项目基于原始 toturial.R 开发,遵循相同的许可协议。


📧 联系方式: 如有问题请通过 GitHub Issues 反馈

🌟 致谢: 感谢 开发quickNet 包的郭垒

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages