【R语言】对data.frame的行随机抽样

本文介绍如何在R的数据框(df)中使用sample函数进行行的无放回随机采样,提供了一段简洁的代码示例,适用于数据分析或实验中的样本选择.

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

df是R中的data.frame对象,对其行进项无放回随机采样,直接使用以下代码即可:

df[sample(nrow(df), 10), ]
在 R 语言中,**Bootstrap 方法**是一种基于重复抽样的统计技术,用于估计样本统计量的不确定性。它通过从原始数据中进 **有放回的随机抽样(resampling)** 来生成多个 Bootstrap 样本,并计算每个样本中的目标统计量,从而得到该统计量的经验分布。 ### 基本原理 Bootstrap 的核心思想是:**将原始样本视为总体**,通过对它进多次重抽样来模拟新数据集。这种技术尤其适用于小样本或未知分布的数据[^4]。 一个典型的 Bootstrap 流程如下: 1. 从原始样本中随机抽取观测值,允许重复(即“有放回”)。 2. 计算当前 Bootstrap 样本中的统计量(如均值、方差、回归系数等)。 3. 重复上述步骤 $ B $ 次(例如 $ B = 1000 $ 或更高),得到统计量的经验分布。 4. 利用这些分布估计标准误、置信区间或其他感兴趣的指标。 --- ### 示例:使用 R 实现 Bootstrap 抽样 以下是一个简单的示例,展示如何手动实现 Bootstrap 并估计样本均值的标准误和置信区间。 ```r # 加载必要的包 library(ggplot2) # 生成一个样本数据 set.seed(123) original_data <- rnorm(50, mean = 10, sd = 2) # 定义 Bootstrap 函数 bootstrap_mean <- function(data, B) { n <- length(data) boot_means <- numeric(B) for (i in 1:B) { # 有放回地抽样 sample_data <- sample(data, size = n, replace = TRUE) boot_means[i] <- mean(sample_data) } return(boot_means) } # 执 Bootstrap B <- 1000 boot_results <- bootstrap_mean(original_data, B) # 查看结果 hist(boot_results, col = "lightblue", main = "Bootstrap Sample Means", xlab = "Mean") mean(boot_results) sd(boot_results) # Bootstrap 标准误估计 quantile(boot_results, c(0.025, 0.975)) # 95% 置信区间 ``` --- ### 使用 `boot` 包简化操作 R 提供了 `boot` 包,可以更方便地执 Bootstrap 分析。 ```r library(boot) # 自定义统计函数(第一个参数为数据,第二个为索引) mean_stat <- function(data, indices) { return(mean(data[indices])) } # 执 Bootstrap boot_result <- boot(data = original_data, statistic = mean_stat, R = 1000) # 输出结果 boot_result plot(boot_result) ``` `boot` 包还支持多种 Bootstrap 类型,如 **百分位法(Percentile)** 和 **BCa(Bias-Corrected and Accelerated)** 方法来构建置信区间。 --- ### Bootstrap 在线性回归中的应用 Bootstrap 也可用于回归分析中估计回归系数的不确定性。例如: ```r # 生成数据 x <- rnorm(100) y <- 2 * x + rnorm(100) # 回归函数 reg_func <- function(data, indices) { d <- data[indices, ] fit <- lm(y ~ x, data = d) return(coef(fit)) } # Bootstrap 回归系数 boot_reg <- boot(data = data.frame(x = x, y = y), statistic = reg_func, R = 1000) # 查看结果 boot_reg ``` --- ### Bootstrap 的优势与适用场景 - **非参数方法**:无需假设数据服从特定分布。 - **适用于复杂模型**:如非线性模型、机器学习模型评估。 - **提高估计稳定性**:可用于计算标准误、置信区间和显著性检验。 但需要注意的是,Bootstrap 在某些情况下可能不适用,比如当数据存在强依赖性(如时间序列)或极端异常值较多时,需采用改进的 Bootstrap 方法(如 block bootstrap)。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值