假设检验与置信区间
先查看各命令展开的示例,再按需展开其他选项及 R 实现。改写代码前,请阅读适用条件及差异说明。
bitest
精确检验二元变量成功概率
Stata
bitest b = 0.5R 包:stats
stats::binom.test(sum(data$b),nrow(data),p=0.5)与 Stata 有差异 返回精确双侧二项检验。代码假定所示二元样本无缺失;Stata还打印下尾和上尾概率。
bitesti
根据计数运行精确二项检验
Stata
bitesti 20 7 0.5R 包:stats
stats::binom.test(7,20,p=0.5)与 Stata 有差异 按给定次数和总数采用精确双侧二项检验。R报告一个htest结果;Stata还显示两个单侧概率。
ci
计算均值的Student-t置信区间
Stata
ci means yR 包:stats
stats::t.test(data$y)$conf.int与 Stata 有差异 仅返回所选置信限,不含Stata的样本量和点估计列。须统一非缺失样本量、置信水平及显式区间方法。
另有 4 个示例及替代实现
计算Clopper-Pearson比例置信区间
Stata
ci proportions b, exactR 包:stats
stats::binom.test(sum(data$b),nrow(data))$conf.int与 Stata 有差异 仅返回所选置信限,不含Stata的样本量和点估计列。须统一非缺失样本量、置信水平及显式区间方法。
计算比例的Wilson得分置信区间
Stata
ci proportions b, wilsonR 包:stats
stats::prop.test(sum(data$b),nrow(data),correct=FALSE)$conf.int与 Stata 有差异 仅返回所选置信限,不含Stata的样本量和点估计列。须统一非缺失样本量、置信水平及显式区间方法。
计算正态理论方差置信区间
Stata
ci variances yR 包:stats
(length(data$y)-1)*stats::var(data$y)/stats::qchisq(c(0.975,0.025),df=length(data$y)-1)与 Stata 有差异 仅返回所选置信限,不含Stata的样本量和点估计列。须统一非缺失样本量、置信水平及显式区间方法。
计算正态理论标准差置信区间
Stata
ci variances y, sdR 包:stats
sqrt((length(data$y)-1)*stats::var(data$y)/stats::qchisq(c(0.975,0.025),df=length(data$y)-1))与 Stata 有差异 仅返回所选置信限,不含Stata的样本量和点估计列。须统一非缺失样本量、置信水平及显式区间方法。
cii
根据汇总统计量计算均值区间
Stata
cii means 50 10 2R 包:stats
10+c(-1,1)*stats::qt(0.975,49)*2/sqrt(50)与 Stata 有差异 按所示汇总输入计算置信限。R结果省略Stata的样本量和点估计列;区间取决于指定方法和置信水平。
根据计数计算精确比例置信区间
Stata
cii proportions 20 7, exactR 包:stats
stats::binom.test(7,20)$conf.int与 Stata 有差异 按所示汇总输入计算置信限。R结果省略Stata的样本量和点估计列;区间取决于指定方法和置信水平。
ksmirnov
比较两个经验分布函数
Stata
ksmirnov y, by(g)R 包:stats
stats::ks.test(data$y[data$g=="a"],data$y[data$g=="b"],exact=FALSE)与 Stata 有差异 双样本形式使用分组变量;单样本检验则需要完整指定参照累积分布函数。
ktau
检验Kendall秩相关
Stata
ktau y xR 包:stats
stats::cor.test(data$y,data$x,method="kendall",exact=FALSE)与 Stata 有差异 采用渐近Kendall检验。须统一并列修正和tau变体;R返回一个htest对象,而非Stata全部一致性汇总。
kwallis
检验多个组的分布相等
Stata
kwallis y, by(g)R 包:stats
stats::kruskal.test(y~g,data=data)与 Stata 有差异 计算经并列修正的Kruskal-Wallis卡方近似。R返回htest对象,不含Stata的各组秩和汇总。
median
运行两组中位数检验
Stata
median y, by(g)R 包:stats
stats::chisq.test(table(data$g,data$y>stats::median(data$y)),correct=FALSE)与 Stata 有差异 检验组别与高于合并中位数指标的独立性。本例将恰等于中位数的观测归入低类别;比较前须统一Stata的ties()处理。
nptrend
检验比例的有序趋势
Stata
nptrend b, group(g) carmitageR 包:stats
stats::prop.trend.test(c(10,18,28),c(40,40,40),score=c(1,2,3))与 Stata 有差异 示例使用三个有序组得分下的汇总成功次数与分母。
oneway
使用Bonferroni校正比较组均值
Stata
oneway y g, bonferroniR 包:stats
stats::pairwise.t.test(data$y,data$g,p.adjust.method="bonferroni",pool.sd=TRUE)与 Stata 有差异 按所示代码使用常规等方差单因素模型或合并方差成对t检验。R对象布局不同,不复现Stata全部tabulate列或比较显示。
另有 1 个示例及替代实现
拟合单因素方差分析
Stata
oneway y g, tabulateR 包:stats
stats::aov(y~factor(g),data=data)与 Stata 有差异 按所示代码使用常规等方差单因素模型或合并方差成对t检验。R对象布局不同,不复现Stata全部tabulate列或比较显示。
pcorr
计算控制z后的y与x偏相关
Stata
pcorr y x zR 包:stats
stats::cor(stats::residuals(stats::lm(y~z,data=data)),stats::residuals(stats::lm(x~z,data=data)))与 Stata 有差异 此例返回y与x的偏相关;Stata的pcorr还报告每个解释变量的半偏相关。
prtest
运行无连续性校正的大样本单比例检验
Stata
prtest b == 0.5R 包:stats
stats::prop.test(sum(data$b),nrow(data),p=0.5,correct=FALSE)与 Stata 有差异 关闭R比例正态近似检验的连续性修正。R报告卡方,其平方根是Stata z的绝对值;正负方向取决于组序。
另有 1 个示例及替代实现
比较两个比例且不使用连续性校正
Stata
prtest b, by(g)R 包:stats
stats::prop.test(tapply(data$b,data$g,sum),as.vector(table(data$g)),correct=FALSE)与 Stata 有差异 关闭R比例正态近似检验的连续性修正。R报告卡方,其平方根是Stata z的绝对值;正负方向取决于组序。
prtesti
根据汇总样本量比较比例
Stata
prtesti 100 0.4 120 0.5R 包:stats
stats::prop.test(c(40,60),c(100,120),correct=FALSE)与 Stata 有差异 不作连续性修正。R返回卡方检验,Stata报告带符号z和单侧概率;给定相同计数时双侧p值对应。
ranksum
使用秩和检验比较独立分布
Stata
ranksum y, by(g)R 包:stats
stats::wilcox.test(y~g,data=data,exact=FALSE,correct=FALSE)与 Stata 有差异 按要求选择精确或未作连续性修正的渐近Wilcoxon计算。须统一并列处理、组序及报告秩和还是U统计量的约定。
另有 1 个示例及替代实现
在无并列值时使用精确秩和推断
Stata
ranksum y, by(g) exactR 包:stats
stats::wilcox.test(y~g,data=data,exact=TRUE)与 Stata 有差异 按要求选择精确或未作连续性修正的渐近Wilcoxon计算。须统一并列处理、组序及报告秩和还是U统计量的约定。
sdtest
检验一个正态总体的标准差
Stata
sdtest y == 3R 包:stats
{ statistic <- (length(data$y)-1)*stats::var(data$y)/3^2; c(chisq=statistic,p.value=2*min(stats::pchisq(statistic,11),stats::pchisq(statistic,11,lower.tail=FALSE))) }与 Stata 有差异 采用正态理论的方差比或卡方检验。R以htest对象或向量返回检验分量;Stata还报告单侧备择及额外置信限。
比较两个非配对样本方差
Stata
sdtest y == xR 包:stats
stats::var.test(data$y,data$x)与 Stata 有差异 采用正态理论的方差比或卡方检验。R以htest对象或向量返回检验分量;Stata还报告单侧备择及额外置信限。
比较两个独立正态样本的方差
Stata
sdtest y, by(g)R 包:stats
stats::var.test(y~g,data=data)与 Stata 有差异 采用正态理论的方差比或卡方检验。R以htest对象或向量返回检验分量;Stata还报告单侧备择及额外置信限。
sdtesti
根据样本量和标准差比较方差
Stata
sdtesti 30 2 40 3R 包:stats
{ f <- 2^2/3^2; c(F=f,p.value=2*min(stats::pf(f,29,39),stats::pf(f,29,39,lower.tail=FALSE))) }与 Stata 有差异 按给定汇总量计算正态理论双侧方差比检验。R向量不含Stata的置信区间及单侧概率列。
signrank
对含并列值的配对差使用符号秩检验
Stata
signrank y = xR 包:stats
stats::wilcox.test(data$y,data$x,paired=TRUE,exact=FALSE,correct=FALSE)与 Stata 有差异 采用无连续性修正的配对Wilcoxon渐近计算。R忽略零差值;并列值及小样本方差约定会影响参考近似。
signtest
使用符号检验检验配对差的中位数
Stata
signtest y = xR 包:stats
{ d <- data$y-data$x; stats::binom.test(sum(d>0),sum(d!=0),p=0.5) }与 Stata 有差异 剔除配对零差值并采用精确双侧二项检验。R显示的区间针对正差概率,而非配对中位数的置信区间。
spearman
对含并列值的数据检验Spearman秩相关
Stata
spearman y xR 包:stats
stats::cor.test(data$y,data$x,method="spearman",exact=FALSE)与 Stata 有差异 显式采用渐近Spearman检验。R与Stata的p值近似可能不同,尤其存在并列值时;应在相同完整配对上比较秩相关。
swilk
使用Shapiro-Wilk检验单变量正态性
Stata
swilk yR 包:stats
stats::shapiro.test(data$y)与 Stata 有差异 计算Shapiro-Wilk W检验;R允许3至5000个非缺失观测。Stata还显示变换统计量,并采用自身的近似及样本量规则。
symmetry
检验匹配二元表的对称性
Stata
symmetry rater1 rater2R 包:stats
stats::mcnemar.test(table(data$rater1,data$rater2),correct=FALSE)与 Stata 有差异 对于2×2表,此例为无连续性校正的McNemar检验;更大表格需使用其他程序。
tabi
根据直接输入单元格计数运行Pearson检验
Stata
tabi 12 8 \ 5 15, chi2R 包:stats
stats::chisq.test(matrix(c(12,8,5,15),nrow=2,byrow=TRUE),correct=FALSE)与 Stata 有差异 按行构造所示表格,Pearson卡方不作连续性修正。R返回htest对象,而非Stata的列联表输出。
tabulate
检验双向计数表中的关联
Stata
tabulate g b, chi2R 包:stats
stats::chisq.test(table(data$g,data$b),correct=FALSE)与 Stata 有差异 table排除缺失观测,未使用因子水平可能影响维度。R的htest对象提供所选Pearson或Fisher检验,不含Stata的行列百分比显示。
另有 1 个示例及替代实现
运行双向表Fisher精确检验
Stata
tabulate g b, exactR 包:stats
stats::fisher.test(table(data$g,data$b))与 Stata 有差异 table排除缺失观测,未使用因子水平可能影响维度。R的htest对象提供所选Pearson或Fisher检验,不含Stata的行列百分比显示。
ttest
对指定值检验总体均值
Stata
ttest y == 8R 包:stats
stats::t.test(data$y,mu=8)与 Stata 有差异 显式选择合并方差、Welch或配对推断。R返回htest对象;因子水平顺序不同时差值方向可能相反,须统一组序和非缺失样本。
另有 4 个示例及替代实现
计算均值的90%置信区间
Stata
ttest y == 8, level(90)R 包:stats
stats::t.test(data$y,mu=8,conf.level=0.90)与 Stata 有差异 显式选择合并方差、Welch或配对推断。R返回htest对象;因子水平顺序不同时差值方向可能相反,须统一组序和非缺失样本。
检验配对均值之差
Stata
ttest y == xR 包:stats
stats::t.test(data$y,data$x,paired=TRUE)与 Stata 有差异 显式选择合并方差、Welch或配对推断。R返回htest对象;因子水平顺序不同时差值方向可能相反,须统一组序和非缺失样本。
使用合并方差比较两个独立均值
Stata
ttest y, by(g)R 包:stats
stats::t.test(y~g,data=data,var.equal=TRUE)与 Stata 有差异 显式选择合并方差、Welch或配对推断。R返回htest对象;因子水平顺序不同时差值方向可能相反,须统一组序和非缺失样本。
使用Welch异方差方法比较均值
Stata
ttest y, by(g) unequalR 包:stats
stats::t.test(y~g,data=data,var.equal=FALSE)与 Stata 有差异 显式选择合并方差、Welch或配对推断。R返回htest对象;因子水平顺序不同时差值方向可能相反,须统一组序和非缺失样本。
ttesti
根据汇总统计量运行单均值t检验
Stata
ttesti 30 10 2 8R 包:stats
{ t <- (10-8)/(2/sqrt(30)); c(t=t,df=29,p.value=2*stats::pt(-abs(t),29)) }与 Stata 有差异 按给定汇总量计算单样本t统计量、自由度和双侧p值。R向量不含置信区间及单侧概率。