统计分布
先查看各命令展开的示例,再按需展开其他选项及 R 实现。改写代码前,请阅读适用条件及差异说明。
betaden
binomial
binomialp
binomialtail
binormal
计算相关二元正态概率
Stata
display binormal(0,0,0.4)R 包:mvtnorm
as.numeric(mvtnorm::pmvnorm(upper=c(0,0),corr=matrix(c(1,0.4,0.4,1),2)))与 Stata 有差异 用mvtnorm数值积分计算二元正态概率。积分容差及数值舍入不同于Stata分布函数。
cauchy
cauchyden
cauchytail
chi2
chi2den
chi2tail
corr2data
生成样本矩精确符合指定值的伪数据
Stata
corr2data x y, n(100)R 包:MASS
stats::setNames(as.data.frame(MASS::mvrnorm(n=100,mu=c(0,0),Sigma=diag(2),empirical=TRUE)),c("x","y"))与 Stata 有差异 empirical=TRUE强制样本均值和协方差符合设定;此类伪数据不是独立随机抽样。
drawnorm
联合生成独立标准正态变量列
Stata
drawnorm x y, n(100)R 包:MASS
stats::setNames(as.data.frame(MASS::mvrnorm(n=100,mu=c(0,0),Sigma=diag(2))),c("x","y"))与 Stata 有差异 随机序列不同;R返回包含所生成变量列的数据框。
exponential
exponentialden
exponentialtail
F
Fden
Ftail
gammaden
gammap
gammaptail
hypergeometric
hypergeometricp
ibeta
ibetatail
invbinomial
invbinomialtail
invcauchy
invcauchytail
invchi2
invchi2tail
invexponential
invexponentialtail
invF
invFtail
invgammap
invgammaptail
invibeta
invibetatail
invlogistic
invlogistictail
invnbinomial
invnbinomialtail
invnchi2
invnchi2tail
invnF
invnFtail
invnibeta
invnormal
invnt
invnttail
invpoisson
invpoissontail
invt
invttail
invtukeyprob
计算Tukey多重比较临界值
Stata
display invtukeyprob(4,20,0.95)R 包:stats
stats::qtukey(0.95, nmeans=4, df=20)与 Stata 有差异 采用qtukey的学生化极差分位数。R与Stata使用不同数值近似;已测试输入相差约2.5e-8,因此应按数值容差比较而非要求完全相等。
invweibull
invweibullph
invweibullphtail
invweibulltail
lncauchyden
lnigammaden
计算逆伽马分布对数密度
Stata
display lnigammaden(3,2,4)R 包:stats
stats::dgamma(1/4,shape=3,rate=2,log=TRUE)-2*log(4)与 Stata 有差异 使用倒数gamma变量变换及其对数Jacobian。须统一Stata的形状和尺度参数化;数值尾部下溢行为可能不同。
lnmvnormalden
计算多变量正态对数密度
Stata
matrix M = (0,0)
matrix V = I(2)
matrix X = (1,2)
display lnmvnormalden(M,V,X)R 包:mvtnorm
mvtnorm::dmvnorm(x=c(1,2),mean=c(0,0),sigma=diag(2),log=TRUE)与 Stata 有差异 固定示例:均值M=(0,0),协方差V=I(2),求值向量X=(1,2)。
lnnormal
lnnormalden
logistic
logisticden
logistictail
nbetaden
nbinomial
nbinomialp
nbinomialtail
nchi2
nchi2den
nchi2tail
nF
nFden
nFtail
nibeta
normal
normalden
npnchi2
由非中心卡方概率反求非中心参数
Stata
display npnchi2(4,8,0.5)R 包:stats
stats::uniroot(function(ncp) stats::pchisq(8,df=4,ncp=ncp)-0.5,c(0,50),tol=1e-10)$root与 Stata 有差异 在所示非中心参数区间内数值反解非中心卡方CDF。其他输入可能需要更宽区间;Stata使用自身的定义域验证和反解。
npnF
由非中心F概率反求非中心参数
Stata
display npnF(4,20,2,0.5)R 包:stats
stats::uniroot(function(ncp) stats::pf(2,df1=4,df2=20,ncp=ncp)-0.5,c(0,50),tol=1e-10)$root与 Stata 有差异 在所示区间内数值反解非中心F的CDF。其他输入可能需要不同区间;求解容差不同于Stata。
npnt
由非中心t概率反求非中心参数
Stata
display npnt(20,2,0.5)R 包:stats
stats::uniroot(function(ncp) stats::pt(2,df=20,ncp=ncp)-0.5,c(0,4),tol=1e-10)$root与 Stata 有差异 在所示区间内数值反解非中心t的CDF。负值或更大的非中心参数需要不同边界;求解容差不同于Stata。
nt
nttail
poisson
poissonp
poissontail
rbeta
模拟贝塔随机变量
Stata
generate draw = rbeta(2,3)R 包:stats
stats::rbeta(1000,2,3)与 Stata 有差异 相同种子不会使Stata和R生成相同的随机序列。
rbinomial
模拟二项随机变量
Stata
generate draw = rbinomial(10,0.4)R 包:stats
stats::rbinom(1000,10,0.4)与 Stata 有差异 相同种子不会使Stata和R生成相同的随机序列。
rcauchy
模拟柯西随机变量
Stata
generate draw = rcauchy(1,2)R 包:stats
stats::rcauchy(1000,1,2)与 Stata 有差异 相同种子不会使Stata和R生成相同的随机序列。
rchi2
模拟卡方随机变量
Stata
generate draw = rchi2(4)R 包:stats
stats::rchisq(1000,4)与 Stata 有差异 相同种子不会使Stata和R生成相同的随机序列。
rexponential
模拟指数随机变量
Stata
generate draw = rexponential(2)R 包:stats
stats::rexp(1000,rate=1/2)与 Stata 有差异 相同种子不会使Stata和R生成相同的随机序列。
rgamma
模拟伽马随机变量
Stata
generate draw = rgamma(3,2)R 包:stats
stats::rgamma(1000,shape=3,scale=2)与 Stata 有差异 相同种子不会使Stata和R生成相同的随机序列。
rhypergeometric
模拟超几何随机变量
Stata
generate draw = rhypergeometric(20,8,5)R 包:stats
stats::rhyper(1000,m=8,n=12,k=5)与 Stata 有差异 相同种子不会使Stata和R生成相同的随机序列。
rlogistic
模拟逻辑斯蒂随机变量
Stata
generate draw = rlogistic(1,2)R 包:stats
stats::rlogis(1000,location=1,scale=2)与 Stata 有差异 相同种子不会使Stata和R生成相同的随机序列。
rnbinomial
模拟负二项随机变量
Stata
generate draw = rnbinomial(4,0.6)R 包:stats
stats::rnbinom(1000,size=4,prob=0.6)与 Stata 有差异 相同种子不会使Stata和R生成相同的随机序列。
rpoisson
模拟泊松随机变量
Stata
generate draw = rpoisson(2)R 包:stats
stats::rpois(1000,lambda=2)与 Stata 有差异 相同种子不会使Stata和R生成相同的随机序列。
rt
模拟t随机变量
Stata
generate draw = rt(20)R 包:stats
stats::rt(1000,df=20)与 Stata 有差异 相同种子不会使Stata和R生成相同的随机序列。
rweibull
模拟威布尔随机变量
Stata
generate draw = rweibull(2,3)R 包:stats
stats::rweibull(1000,shape=2,scale=3)与 Stata 有差异 相同种子不会使Stata和R生成相同的随机序列。
t
tden
ttail
tukeyprob
weibull
计算带位置参数的威布尔累积概率
Stata
display weibull(2,3,1,5)R 包:stats
stats::pweibull(5-1, shape=2, scale=3)