Files
playbook/skills/tsl-api-reference/references/codegen/dotnet/math/statistical_inference.md
T

27 KiB
Raw Blame History

数学函数 / 统计推断

estimate_sp(mx, n, alpha, tail)

声明:function

估计单个总体比率的置信区间

参数 类型 说明
mx real 样本比率
n integer 样本容量
alpha real 显著性水平,范围 0 到 1
tail string 可选。区间方向,可取 both、left 或 right,默认 both

返回:array

示例

范例01:计算双侧置信区间

return estimate_sp(0.3, 120, 0.05, "both");
// 输出:array("Lower":0.218009,"upper":0.381991)

estimate_tp(p, n, alpha, tail)

声明:function

估计两个总体比率之差的置信区间

参数 类型 说明
p array 两个样本的比率
n array 两个样本的容量
alpha real 显著性水平,范围 0 到 1
tail string 可选。区间方向,可取 both、left 或 right,默认 both

返回:array

示例

范例01:计算两个总体比率差的双侧置信区间

return estimate_tp(
    array(0.478, 0.328), array(1000, 750), 0.05, "both");
// 输出:array("Lower":0.104311,"upper":0.195689)

Anova_Bartlett(y, alpha)

声明:function

在1-alpha的置信水平下,Bartlett方法检验方差齐性;B-Stat为统计值,P-Value为p值,df为自由度,Hypothesis为是否接受原假设 模型表达: Bartlett检验思想来源于几何平均数小于或等于算术平均数 原假设:是水平个数 ,其中 修正的Bartlett检验

参数 类型 说明
y array 数据矩阵,为二维数组类型,每一行表示一个水平
alpha float 显著性水平,实数或整数,在01之间

返回:array

Anova_Levene(y, alpha)

声明:function

在1-Alpha的置信水平下,Levene方法检验方差齐性,和Bartlett检验不同的是,Levene检验不要求总体具有正态性。返回一个数组,F-Stat为统计值,P-Value为p值,df1df2为自由度,Hypothesis为是否接受原假设 模型表达: 原假设:是水平个数 ,其中是观察数目,是水平数目

参数 类型 说明
y array 数据矩阵,为二维数组类型,每一行表示一个水平
alpha float 显著性水平,实数或整数,在01之间

返回:array

Anova_Single(y, alpha)

声明:function

在1-alpha置信水平下,在假设服从正态分布,且方差齐性,样本之间独立的基础上,判断各水平的均值是否显著相等 模型表达: , 其中:效应平方和:,误差平方和: 总离差

参数 类型 说明
y array 数据矩阵,为二维数组类型,每一行表示一个水平
alpha float 显著性水平,实数或整数,在01之间

返回:array

Anova_Twice(y, alpha)

声明:function

在1-alpha的置信水平下,进行双因子方差分析,假设每一种情况都服从一个正态分布,且方差相等,数据独立,判断各水平的均值是否显著相等 模型表达: 有A,B两个因素,因素A有r个水平,B有s个水平,对于A,B每一个组合(Ai,Bj)都进行t次试验,得到结果: 因素B 因素A B1 B2 … Bs A1 X111, X112,…,X11t X121, X122,…,X12t … X1s1, X1s2,…,X1st A2 X211, X212,…, X21t X221, X222,…, X22t … X2s1, X2s2,…, X2st … … … … Ar Xr11, Xr12,…, Xr1t Xr21, Xr22,…, Xr2t … Xrs1, Xrs2,…, Xrst 设:且相互独立 ,其中,是水平Ai的效应,是水平Bj的效应,称为水平Ai和Bj的交互效应。, 原假设:,, 现构造了3个F统计量来分别检验假设,原理略

参数 类型 说明
y array 数据矩阵,为二维数组类型,每rep行,每一列表示一个交叉项
alpha float 显著性水平,实数或整数,在01之间;Rep:每一个交叉项,做rep次试验,rep=1时,没有交叉效应为0的假设

返回:array

Estimate_SND(x, alpha, tail)

声明:function

在1-alpha置信水平下,求单个正态总体方差的置信区间(或下置信区间,上置信区间)

参数 类型 说明
x array 样本序列,一维数组
alpha float 显著性水平,实数,在0,1之间
tail string 求取置信区间类型,字符串,取both,left,right,缺省取both

返回:array

Estimate_SNU(x, d, alpha, tail)

声明:function

在1-alpha置信水平下,分为标准差未知和已知两种情况求单个正态总体均值的置信区间(或下置信区间,上置信区间)

参数 类型 说明
x array 样本序列,一维数组
d float 正态总体的标准差,若未知,则输入nil,实数
alpha float 显著性水平,实数,在0,1之间
tail string 求取置信区间类型,字符串,取both,left,right,缺省取both

返回:array

Estimate_TND(x, alpha, tail)

声明:function

在1-alpha置信水平下,求两个正态总体方差之比的置信区间(或下置信区间,上置信区间)

参数 类型 说明
x array 样本序列,含两行的二维数字数组,每行为一个样本
alpha float 显著性水平,实数,在0,1之间
tail string 求取置信区间类型,字符串,取both,left,right,缺省取both

返回:array

Estimate_TNU(x, d, alpha, tail, equal)

声明:function

在1-alpha置信水平下,分为标准差未知和已知两种情况求两个正态总体均值差的置信区间(或下置信区间,上置信区间)

参数 类型 说明
x array 样本序列,含两行的二维数字数组,每行为一个样本
d array 正态总体的标准差数组,若未知,则输入array(nil,nil),为一维数组类型
alpha float 显著性水平,实数,在0,1之间
tail string 求取置信区间类型,字符串,取both,left,right,缺省取both
equal bool 当标准差未知时,方差是否相等,布尔型

返回:array

Hypoth_IndepTest(x, alpha)

声明:function

列联表检验法检验两个随机变量的独立性检验,返回的结果是一个数组,第一个数为统计值,二为p值,三为原假设的值(0表示拒绝,1表示接受) 模型表达: 原假设:H0:X 与Y 相互独立 检验统计量: 其中

参数 类型 说明
x array 样本矩阵,为二维数组类型
alpha float 显著性水平,实数或整数,在01之间

返回:array

Hypoth_KruskalWallis(x, alpha)

声明:function

两个或多个随机变量的独立性检验。本模型原假设为各随机变量相互独立

参数 类型 说明
x array 样本矩阵,为二维数组类型,每行为一个样本
alpha float 显著性水平,实数或整数,在01之间

返回:array

Hypoth_Kstest(data, tail, alpha, cdf)

声明:function

在alpha的显著性水平下进行ks检验,检验序列是否服从cdf这种分布(缺省为标准正态分布),Hypothesis为测试结果,若Hypothesis=1,则认为服从;Hypothesis=0,可以认为不服从该分布

参数 类型 说明
data array 样本数据,一维数字数组
tail string 检验类型,字符串类型,必须包含在array("both","left","right")中
alpha float 显著性水平,实数或整数,在01之间
cdf array 分布的累计概率分布,二维数字数组,第一列为随机变量,第二列为其对应的分布函数值,缺省为标准正态分布;返回结果:;ret["statistical"]:KS统计量;ret["criticalValue"]:KS检验的临界值;ret["P-Value"]:KS检验的P值;ret["Hypothesis"]:是否服从设定的分布

返回:array

Hypoth_lillietest(data, alpha, distr)

声明:function

在alpha的显著性水平下进行lillietest检验,检验序列是否服从正态分布或对数分布(分布参数估计出来),Hypothesis为测试结果,若Hypothesis=1,则认为服从;Hypothesis=0,可以认为不服从该分布

参数 类型 说明
data array 样本数据,一维数字数组
alpha float 显著性水平,实数或整数,在01之间
distr string 分布函数类型,字符串数据,有"norm"、"exp";返回结果:ret[""kstat"]:统计量;ret["cv"]:检验统计量的临界值;ret["P-Value"]:检验的P值;ret["Hypothesis"]:是否服从设定的分布

返回:array

Hypoth_LSUTest(mx, s, n, u, tail, alpha)

声明:function

单个或两个总体大样本的均值检验,即大样本U检验,返回的结果是一个数组,第一个数为统计值,二为p值,三为原假设的值(0表示拒绝,1表示接受) 模型表达 单个总体大样本的均值原假设:tail取值both:;left:;right 两个总体大样本的均值假设:tail取值both:;left;right: 检验统计量: 或 其中:x为样本x的均值,y为样本y的均值,为正态总体x方差,为正态总本y方差,m,n分别为样本x和y的容量s

参数 类型 说明
mx array 样本均值数组,第一行为样本1,第二行为样本2,为一维数组类型
s any 样本方差数组,第一行为样本1,第二行为样本2,为一维数组类型
n array 样本容量,第一行为样本1,第二行为样本2,为一维数组类型
u float 单个总体时,为假设检验均值,两个总体时,为均值差
tail string 假设检验类型
alpha float 显著性水平,实数或整数,在01之间

返回:array

Hypoth_McNemarTest(x, alpha)

声明:function

非参数检验-McNemar检验。 对配对样本进行McNemar检验 McNemar检验以研究对象自身为对照,检验其两组样本变化是否显著 要求待检验的两组样本的观察值是二分类数据 检验统计量服从卡方分布

参数 类型 说明
x array 样本统计列联表,为二维数字数组类型
alpha float 显著性水平,在0-1之间,为实数类型

返回:array

Hypoth_PNUTest(samples, mean_diff, std_dev, tail, alpha)

声明:function

执行配对样本均值差 U 检验

参数 类型 说明
samples array 两组配对样本数据
mean_diff float 原假设均值差
std_dev float 差值标准差;未知时传 nil
tail string 检验方向;常用 "both""left""right"
alpha float 显著性水平

返回:array

Hypoth_PSignTest(x, pi, q0, tail, alpha)

声明:function

非参数检验-配对样本符号检验,配对样本的符号检验 要求样本矩阵中两个样本是配对出现的 可以按照实际需求选择双侧或单侧检验

参数 类型 说明
x array 一维数字数组,样本矩阵
pi float 实数,分位点
q0 float 实数,检验值
tail string 字符串,双侧检验 or 左侧检验 or 右侧检验
alpha float 实数,显著性水平

返回:array

示例

samples := array(
    (5, 4, 7, 3, 5, 8, 5, 6),
    (6, 6, 7, 4, 3, 9, 7, 6)
);
return Hypoth_PSignTest(samples, 0.5, 0.0, "both", 0.05);
// 输出:返回包含统计量、p 值和检验结论的数组

Hypoth_PWilcoxonTest(x, m0, tail, alpha)

声明:function

非参数检验-配对样本Wilcoxon符号秩检验,配对样本的Wilcoxon符号秩检验 要求样本矩阵中两个样本是配对出现的 可以按照实际需求选择双侧或单侧检验

参数 类型 说明
x array 一维数字数组,样本矩阵
m0 float 实数,检验值
tail string 字符串,双侧检验 or 左侧检验 or 右侧检验
alpha float 实数,显著性水平

返回:array

示例

samples := array(
    (5, 4, 7, 3, 5, 8, 5, 6),
    (6, 6, 7, 4, 3, 9, 7, 6)
);
return Hypoth_PWilcoxonTest(samples, 0.0, "both", 0.05);
// 输出:返回包含统计量、p 值和检验结论的数组

Hypoth_SignTest(x, pi, q0, tail, alpha)

声明:function

非参数检验-符号检验。对单样本进行符号检验 可以按照实际需求选择双侧或单侧检验 其中,检验变量服从二项分布

参数 类型 说明
x array 样本序列,为一维数字数组类型
pi float 分位点,为实数类型
q0 float 检验值,即检验分位点的值,为实数类型
tail string 假设检验的三种类型,both(双侧检验),left(左侧检验),right(右侧检验),为字符串类型
alpha float 显著性水平,在0-1之间,为实数类型

返回:array

Hypoth_SNDTest(x, d2, tail, alpha)

声明:function

单个正态总体方差的卡方检验,返回的结果是一个数组,第一个数为统计值,二为p值,三为原假设的值(0表示拒绝,1表示接受) 模型表达: 原假设:tail取值both:;left:;right: 检验统计量: 其中:为假设检验的方差,n为样本容量,s为样本标准差

参数 类型 说明
x array 样本序列,为一维数组类型
d2 float 假设检验的方差,为实数类型
tail string 假设检验类型
alpha float 显著性水平,实数或整数,在01之间

返回:array

Hypoth_SNUTest(x, u, d, tail, alpha)

声明:function

单个正态总体的均值检验,分为标准差未知和已知两个情况,返回结果是一个数组,第一个数为统计值,二为p值,三为原假设的值(0表示拒绝,1表示接受) 模型表达: 原假设:tail取值both:;left:;right: 检验统计量:分为两种情况 1)标准差已知时,即d有取值,为U检验: 2)标准差未知时,即d取nil,为T检验: 其中:x为样本均值,为检验均值,为正态总体标准差,n为样本容量,s为样本标准差

参数 类型 说明
x array 样本序列,为一维数组类型
u float 假设检验均值,为实数类型
d float 正态总体的标准差,为实数类型,若未知,则输入nil
tail string 假设检验的三种类型,字符串,取值为both、left和right
alpha float 显著性水平,实数或整数,在01之间

返回:array

Hypoth_TailRes(sta, v, tail, alpha)

声明:function

根据tail的取值,进行单侧和双侧检验,原理是根据检验统计量计算P值,若alpha>p,则拒绝原假设,若alpha<p,则接受原假设;最后返回假设检验的结果。原假设分别是

参数 类型 说明
sta float 统计量的值,为实数类型
v float 整体分布的p分位数,1-v为检验的p值,为实数类型
tail string 取值为both、left和right
alpha float 显著性水平,实数或整数,在0-1之间;返回结果:ret["Statistic"]:假设检验统计量;ret["P-Value "]:假设检验的P值;ret["Hypothesis "]:是否接受原假设

返回:array

Hypoth_TNDTest(x, tail, alpha)

声明:function

两个正态总体方差比的F检验,返回的结果是一个数组,第一个数为统计值,二为p值,三为原假设的值(0表示拒绝,1表示接受) 模型表达: 原假设:tail取值both:;left:;right: 检验统计量: 其中:Sx为x的样本标准差,Sy为y的样本标准差

参数 类型 说明
x array 样本序列矩阵,第一行为样本1,第二行为样本2,为二维数组类型
tail string 假设检验类型
alpha float 显著性水平,实数或整数,在01之间

返回:array

Hypoth_TNUTest(x, uu, d, tail, alpha, isequal)

声明:function

两个正态总体均值差的检验,分为标准差未知和已知两个情况,返回的结果是一个数组,第一个数为统计值,二为p值,三为是否接受原假设 模型表达: 原假设:tail取值both:;left:;right: 检验统计量: 标准差已知时,即d数组有取值,为u检验: 标准差未知时,即d取(nil,nil),为t检验:, 其中:为样本x的均值,为样本y的均值,,为正态总体x,y的方差,分别为样本x和y的容量,为联合样本标准差

参数 类型 说明
x array 样本序列矩阵,为二维数组类型,第一行为样本1,第二行为样本2
uu float 假设检验均值差,为实数类型
d float 正态总体的标准差数组,为一维数组类型,若未知,则输入(nil,nil)
tail string 假设检验的三种类型,字符串,取值为both、left和right
alpha float 显著性水平,实数或整数,在01之间
isequal bool object

返回:array

Hypoth_WilcoxonTest(x, m0, tail, alpha)

声明:function

非参数检验-Wilcoxon符号秩检验。单样本Wilcoxon符号秩检验 原理:把观测值和零假设的中心位置之差的绝对值的秩按照不同的符号相加作为其检验统计量。 此检验假定样本来自于连续对称总体。 计算步骤: 1、计算样本点到检验值的距离; 2、对上述距离的绝对值进行排序并计算秩,对相同的样本点则取平均秩; 3、分别计算大于检验值与小于检验值样本的秩和; 4、对得到的统计量计算p值

参数 类型 说明
x array 样本序列,为一维数字数组类型
m0 float 检验值,为实数类型
tail string 假设检验的三种类型,both(双侧检验),left(左侧检验),right(右侧检验),为字符串类型
alpha float 显著性水平,在0-1之间,为实数类型

返回:array

normPlot(x, return_type)

声明:function

基于正态概率的正态性检验, ReturnType为0时返回我们常说的QQ图的散点数据,为1返回衡量散点与直线拟合程度的可决系数

参数 类型 说明
x array of real 检验样本序列,为一维数组类型
return_type integer 返回类型选项,为0返回散点数据,为1返回直线拟合的可决系数。缺省为0

返回:array

示例

范例01:返回 QQ 图的散点数据

x := rand(10);
return normPlot(x);
// 输出:
// array(
// ("采样位数": 0.171976955840364, "理想位数": -1.64484977722168),
// ("采样位数": 0.301570532377809, "理想位数": -1.03643536567688),
// ("采样位数": 0.470976530341431, "理想位数": -0.674489885568619),
// ("采样位数": 0.479131903499365, "理想位数": -0.38532167673111),
// ("采样位数": 0.678062069928274, "理想位数": -0.125661492347717),
// ("采样位数": 0.735156666953117, "理想位数": 0.125661492347717),
// ("采样位数": 0.739045920781791, "理想位数": 0.38532167673111),
// ("采样位数": 0.780685598030686, "理想位数": 0.674489885568619),
// ("采样位数": 0.817699506180361, "理想位数": 1.03643536567688),
// ("采样位数": 0.828364443266764, "理想位数": 1.64484977722168))

范例02:返回散点与直线拟合程度的可决系数

x := rand(10);
return normPlot(x, 1);
// 输出:0.911334081735257