---
title: "R Notebook"
output: html_notebook
---

## 环境预处理

```{r}

rm(list = ls())

getOption("repos")
options(repos = c(CRAN = "https://mirrors.ustc.edu.cn/CRAN/"))

if (!requireNamespace("RMediation", quietly = TRUE)) {
    install.packages("RMediation")
}

```

## 数据导入

导入 usedvariable.sav数据，注意编码。

```{r}

setwd("F:/workspace/VS/github-actions-creator/R")


library(haven)
file_path <- "usedvariable.sav"
base_data <- read_sav(file_path, encoding = "GBK")

head(your_data, 10)

```

## bootstrapping 估计

```{r}

current_data = 
  
library(RMediation)

# 定义中介模型
model <- lm(Y ~ X + M, data = your_data)

# 运行蒙特卡洛法进行 Bootstrap
# 这里设置了2000次 Bootstrap 重采样
bootstrap_result <- mediate(model, treat = "X", mediator = "M", sims = 2000)

# 定义中介模型
# model 是一个 lm 对象，表示你的模型
mediation_model <- mediate(model, treat = "X", mediator = "M", outcome = "O", sims = 2000)

# 输出 Bootstrap 中介效应的置信区间
summary(bootstrap_result)


```

## 附录

`mediate()` 函数是 RMediation 软件包中用于执行中介分析的函数。它允许您评估中介变量对处理变量和结果变量之间关系的影响，通过蒙特卡洛模拟来计算中介效应的置信区间。以下是该函数的主要参数及其说明：

### 参数：

-   `model`：一个包含处理、中介和结果变量的线性回归模型（例如，使用 `lm()` 函数拟合的模型对象）。
-   `treat`：处理变量的名称。
-   `mediator`：中介变量的名称。
-   `outcome`：结果变量的名称。
-   `sims`：Bootstrap 重采样的次数，用于计算中介效应的置信区间。

### 返回值：

`mediate()` 函数返回一个对象，其中包含中介效应的估计值、标准误差、置信区间等统计信息。
