假设检验与置信区间

先查看各命令展开的示例,再按需展开其他选项及 R 实现。改写代码前,请阅读适用条件及差异说明。

bitest

精确检验二元变量成功概率

Stata

bitest b = 0.5

R 包:stats

stats::binom.test(sum(data$b),nrow(data),p=0.5)

与 Stata 有差异 返回精确双侧二项检验。代码假定所示二元样本无缺失;Stata还打印下尾和上尾概率。

bitesti

根据计数运行精确二项检验

Stata

bitesti 20 7 0.5

R 包:stats

stats::binom.test(7,20,p=0.5)

与 Stata 有差异 按给定次数和总数采用精确双侧二项检验。R报告一个htest结果;Stata还显示两个单侧概率。

ci

计算均值的Student-t置信区间

Stata

ci means y

R 包:stats

stats::t.test(data$y)$conf.int

与 Stata 有差异 仅返回所选置信限,不含Stata的样本量和点估计列。须统一非缺失样本量、置信水平及显式区间方法。

另有 4 个示例及替代实现

计算Clopper-Pearson比例置信区间

Stata

ci proportions b, exact

R 包:stats

stats::binom.test(sum(data$b),nrow(data))$conf.int

与 Stata 有差异 仅返回所选置信限,不含Stata的样本量和点估计列。须统一非缺失样本量、置信水平及显式区间方法。

计算比例的Wilson得分置信区间

Stata

ci proportions b, wilson

R 包:stats

stats::prop.test(sum(data$b),nrow(data),correct=FALSE)$conf.int

与 Stata 有差异 仅返回所选置信限,不含Stata的样本量和点估计列。须统一非缺失样本量、置信水平及显式区间方法。

计算正态理论方差置信区间

Stata

ci variances y

R 包: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, sd

R 包: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 2

R 包:stats

10+c(-1,1)*stats::qt(0.975,49)*2/sqrt(50)

与 Stata 有差异 按所示汇总输入计算置信限。R结果省略Stata的样本量和点估计列;区间取决于指定方法和置信水平。

根据计数计算精确比例置信区间

Stata

cii proportions 20 7, exact

R 包: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 x

R 包: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) carmitage

R 包: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, bonferroni

R 包: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, tabulate

R 包:stats

stats::aov(y~factor(g),data=data)

与 Stata 有差异 按所示代码使用常规等方差单因素模型或合并方差成对t检验。R对象布局不同,不复现Stata全部tabulate列或比较显示。

pcorr

计算控制z后的y与x偏相关

Stata

pcorr y x z

R 包: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.5

R 包: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.5

R 包: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) exact

R 包:stats

stats::wilcox.test(y~g,data=data,exact=TRUE)

与 Stata 有差异 按要求选择精确或未作连续性修正的渐近Wilcoxon计算。须统一并列处理、组序及报告秩和还是U统计量的约定。

sdtest

检验一个正态总体的标准差

Stata

sdtest y == 3

R 包: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 == x

R 包: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 3

R 包: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 = x

R 包:stats

stats::wilcox.test(data$y,data$x,paired=TRUE,exact=FALSE,correct=FALSE)

与 Stata 有差异 采用无连续性修正的配对Wilcoxon渐近计算。R忽略零差值;并列值及小样本方差约定会影响参考近似。

signtest

使用符号检验检验配对差的中位数

Stata

signtest y = x

R 包: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 x

R 包:stats

stats::cor.test(data$y,data$x,method="spearman",exact=FALSE)

与 Stata 有差异 显式采用渐近Spearman检验。R与Stata的p值近似可能不同,尤其存在并列值时;应在相同完整配对上比较秩相关。

swilk

使用Shapiro-Wilk检验单变量正态性

Stata

swilk y

R 包:stats

stats::shapiro.test(data$y)

与 Stata 有差异 计算Shapiro-Wilk W检验;R允许3至5000个非缺失观测。Stata还显示变换统计量,并采用自身的近似及样本量规则。

symmetry

检验匹配二元表的对称性

Stata

symmetry rater1 rater2

R 包:stats

stats::mcnemar.test(table(data$rater1,data$rater2),correct=FALSE)

与 Stata 有差异 对于2×2表,此例为无连续性校正的McNemar检验;更大表格需使用其他程序。

tabi

根据直接输入单元格计数运行Pearson检验

Stata

tabi 12 8 \ 5 15, chi2

R 包: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, chi2

R 包:stats

stats::chisq.test(table(data$g,data$b),correct=FALSE)

与 Stata 有差异 table排除缺失观测,未使用因子水平可能影响维度。R的htest对象提供所选Pearson或Fisher检验,不含Stata的行列百分比显示。

另有 1 个示例及替代实现

运行双向表Fisher精确检验

Stata

tabulate g b, exact

R 包:stats

stats::fisher.test(table(data$g,data$b))

与 Stata 有差异 table排除缺失观测,未使用因子水平可能影响维度。R的htest对象提供所选Pearson或Fisher检验,不含Stata的行列百分比显示。

ttest

对指定值检验总体均值

Stata

ttest y == 8

R 包: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 == x

R 包: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) unequal

R 包:stats

stats::t.test(y~g,data=data,var.equal=FALSE)

与 Stata 有差异 显式选择合并方差、Welch或配对推断。R返回htest对象;因子水平顺序不同时差值方向可能相反,须统一组序和非缺失样本。

ttesti

根据汇总统计量运行单均值t检验

Stata

ttesti 30 10 2 8

R 包:stats

{ t <- (10-8)/(2/sqrt(30)); c(t=t,df=29,p.value=2*stats::pt(-abs(t),29)) }

与 Stata 有差异 按给定汇总量计算单样本t统计量、自由度和双侧p值。R向量不含置信区间及单侧概率。