数据文件:/home/tester/nurse_student/data/data_ready.csv(用同份数据 + 上述方法可复现结果)
下表为本次分析实际使用的设定(由分析程序自动原样列出,非 AI 转述)。解读数字前请先核对设定与你的研究假设一致——尤其路径方向与变量角色;质量门控只检查统计前提,发现不了「设定对不对」。
| 设定项 | 内容 |
|---|---|
| 模型类型 | 简单中介 |
| 自变量 X | FTP条目均分 |
| 中介变量 M | SC条目均分 |
| 因变量 Y | SP条目均分 |
简单中介(PROCESS Model 4):FTP条目均分 → SC条目均分 → SP条目均分,Bootstrap 2000 次。
| 路径 | B | β(std) | p |
|---|---|---|---|
| FTP条目均分 → SC条目均分 | 0.524 | 0.393 | < .001 *** |
| SC条目均分 → SP条目均分 | -0.499 | -0.533 | < .001 *** |
| FTP条目均分 → SP条目均分(直接) | -0.149 | -0.12 | 0.001 ** |
| FTP条目均分 → SP条目均分(总) | -0.411 | -0.329 | < .001 *** |
| 效应 | 估计值 | 95% CI | 显著性 |
|---|---|---|---|
| 间接效应 a×b | -0.261 | (-0.32918940536692815, -0.19597184598558248) | 显著 |
Bootstrap CI 不含 0 即间接效应显著。
| 效应 | 值 |
|---|---|
| 总效应 c | -0.411 |
| 直接效应 c′ | -0.149 |
| 间接效应 a×b | -0.261 |
| 中介占比 | 63.7% |
结果表述(可直接粘贴改写):FTP条目均分正向预测 SC条目均分(a = 0.52,p < .001);SC条目均分负向预测 SP条目均分(b = -0.50,p < .001)。间接效应 a×b = -0.26,Bootstrap 95% CI [-0.33, -0.2],不含 0,中介效应显著;直接效应 c′ = -0.15(p = 0.001),中介占比 63.7%,为部分中介。
| 检查项 | 实际值 | 参考标准 | 状态 | 建议 |
|---|---|---|---|---|
| 间接效应置信区间 | [-0.329, -0.196] | 95% CI 不含 0 | ✓ 通过 | |
| 路径显著性 | 全部显著 | 全部 p < 0.05 | ✓ 通过 | |
| Bootstrap 次数 | 2000 | ≥5000 | ⚠ 提醒 | 期刊惯例 5000 次;当前次数可用于探索,正式报告建议加大 |
| 中介占比 | 63.674% | 0 ~ 100% | ✓ 通过 |
* 中介分析(示例:自我控制的中介作用). * 数据来源: /home/tester/nurse_student/data/data_ready.csv. * 中介类型: simple(PROCESS Model 4). * 自变量: FTP条目均分, 中介变量: SC条目均分, 因变量: SP条目均分. GET DATA /TYPE=TXT /FILE='/home/tester/nurse_student/data/data_ready.csv' /ENCODING='UTF8' /DELCASE=LINE /DELIMITERS="," /QUALIFIER='"' /ARRANGEMENT=DELIMITED /FIRSTCASE=2 /IMPORTCASE=ALL /VARIABLES= 序号 F8.2 提交答卷时间 A64 所用时间 A64 来源 A64 来源详情 A64 来自IP A64 1、性别 A64 2、年龄(岁) A64 3、年级 A64 4、户口所在地 A64 5、民族 A64 6、第一志愿是否为护理专业 A64 7、是否担任学生干部 A64 8、是否独生子女 A64 9、家庭结构 A64 10、未来职业规划是否打算从事护理行业? A64 11、家庭经济状况(月收入/元) A64 12、母亲受教育程度(最高学历) A64 13、父亲受教育程度(最高学历) A64 14、近一周,平均每天手机使用时长约为? A64 15、其中,使用短视频app(抖音、快手、微信视频等)的时长大约多少小时 A64 16、过去一周,你有几天出现“原本只想看几分钟手机,结果看了很久”的情况? A64 17、日均睡眠时长 A64 18、睡前1小时手机使用频率 A64 19、自评睡眠质量 A64 20、上学期平均成绩 A64 21、因学业成绩感到的压力程度 A64 FTP1 F8.2 FTP2 F8.2 FTP3 F8.2 FTP4 F8.2 FTP5 F8.2 FTP6 F8.2 FTP7 F8.2 FTP8 F8.2 FTP9 F8.2 FTP10 F8.2 FTP11 F8.2 FTP12 F8.2 FTP13 F8.2 FTP14 F8.2 FTP15 F8.2 FTP16 F8.2 FTP17 F8.2 FTP18 F8.2 FTP19 F8.2 FTP20 F8.2 SP1 F8.2 SP2 F8.2 SP3 F8.2 SP4 F8.2 SP5 F8.2 SP6 F8.2 SP7 F8.2 SP8 F8.2 SP9 F8.2 SC1 F8.2 SC2 F8.2 SC3 F8.2 SC4 F8.2 SC5 F8.2 SC6 F8.2 SC7 F8.2 SC8 F8.2 SC9 F8.2 SC10 F8.2 SC11 F8.2 SC12 F8.2 SC13 F8.2 SC14 F8.2 SC15 F8.2 SC16 F8.2 SC17 F8.2 SC18 F8.2 SC19 F8.2 SVA1 F8.2 SVA2 F8.2 SVA3 F8.2 SVA4 F8.2 SVA5 F8.2 SVA6 F8.2 SVA7 F8.2 SVA8 F8.2 SVA9 F8.2 SVA10 F8.2 SVA11 F8.2 SVA12 F8.2 SVA13 F8.2 SVA14 F8.2 FTP行为承诺条目均分 F8.2 FTP远目标定向条目均分 F8.2 FTP未来意象条目均分 F8.2 FTP目的意识条目均分 F8.2 FTP未来效能条目均分 F8.2 FTP条目均分 F8.2 SP睡眠拖延条目均分 F8.2 SP条目均分 F8.2 SC健康习惯条目均分 F8.2 SC抵制诱惑条目均分 F8.2 SC冲动抑制条目均分 F8.2 SC节制娱乐条目均分 F8.2 SC专注工作条目均分 F8.2 SC条目均分 F8.2 SVA戒断性条目均分 F8.2 SVA逃避性条目均分 F8.2 SVA失控性条目均分 F8.2 SVA低效性条目均分 F8.2 SVA条目均分 F8.2. CACHE. EXECUTE. * 中介效应分析(需要安装 PROCESS 宏). * 下载地址: http://www.processmacro.org/download.html * 注意: 需要先安装 PROCESS 宏并把下方 INSERT FILE 路径改为实际位置. INSERT FILE='C:\PROCESS\PROCESS macro.sps'. PROCESS y=SP条目均分 /x=FTP条目均分 /m=SC条目均分 /model=4 /boot=2000 /conf=95.
# 中介分析(示例:自我控制的中介作用)
# 数据来源: /home/tester/nurse_student/data/data_ready.csv
# 中介类型: simple
# 自变量: FTP条目均分, 中介变量: SC条目均分, 因变量: SP条目均分
# Bootstrap 次数: 2000
library(readr)
library(lavaan)
# 读取数据
data <- read_csv("/home/tester/nurse_student/data/data_ready.csv")
# ── 中文列名 → ASCII 别名(lavaan 模型语法兼容) ──
data$v0 <- data[["FTP条目均分"]]
data$v1 <- data[["SC条目均分"]]
data$v2 <- data[["SP条目均分"]]
# 定义中介模型
model <- '
# 简单中介模型
v1 ~ a * v0
v2 ~ b * v1 + c_prime * v0
# 间接效应
indirect := a * b
# 总效应
total := c_prime + (a * b)
'
# 拟合模型(Bootstrap 置信区间)
cat("\n=== 中介效应分析 ===\n\n")
fit <- sem(model, data = data, se = "bootstrap", bootstrap = 2000)
# 模型摘要
cat("\n=== 模型摘要 ===\n")
summary(fit, standardized = TRUE, ci = TRUE)
# 参数估计(含 Bootstrap CI)
cat("\n=== 参数估计 ===\n")
print(parameterEstimates(fit, boot.ci.type = "perc", standardized = TRUE))
# 间接效应
cat("\n=== 间接效应 ===\n")
indirect <- parameterEstimates(fit)[parameterEstimates(fit)$op == ":=", ]
print(indirect)