凯特勒科技 - 专注提供云SPC,MSA软件解决方案;设备集成+实时SPC+大屏+预警+设备控制定制化服务
全国服务电话:0755-28457327 邮箱地址:YunSpc@163.com

纯干货!MSA 量具线性和偏倚研究中 P值计算函数T.INV.2T源代码。

发布时间:2024-02-01 阅读数:1379
【摘要】MSA 量具线性和偏倚研究中 P值计算需要用到学生t分布的双尾反函数。 在Excel中,用函数 T.INV.2T 。

代码如下:

create function [dbo].[Fun_SPC_TDIST2T](@t float,@df float)
returns float
begin

	declare @n float
	declare @a float
	declare @b float
	declare @y float
	set @n = @df

	set @t = @t * @t;
	set @y = @t / @n;
	set @b = @y + 1.0;
	if (@y > 1.0E-6) 
		set @y = Log(@b);
	set @a =@n - 0.5;
	set @b = 48.0 * @a * @a;
	set @y = @a * @y;
	set @y = (((((-0.4 * @y - 3.3) * @y - 24.0) * @y - 85.5) /
		(0.8 * @y * @y + 100.0 + @b) + @y + 3.0) / @b + 1.0) * Sqrt(@y)

	return 2.0 * dbo.Fun_SPC_Gauss(-@y);

end


create function [dbo].[Fun_SPC_Gauss](@z float)
returns float
begin

	declare @y float 
	declare @p float
	declare @w float
	if (@z = 0.0)
		set @p = 0.0;
	else
	begin
		set @y = Abs(@z) / 2;
		if (@y >= 3.0)
		begin
			set @p = 1.0;
		end
		else if (@y < 1.0)
		begin
			set @w = @y * @y;
			set @p = ((((((((0.000124818987 * @w
				- 0.001075204047) * @w + 0.005198775019) * @w
				- 0.019198292004) * @w + 0.059054035642) * @w
				- 0.151968751364) * @w + 0.319152932694) * @w
				- 0.531923007300) * @w + 0.797884560593) * @y * 2.0;
		end
		else
		begin
			set @y = @y - 2.0;
			set @p = (((((((((((((-0.000045255659 * @y
				+ 0.000152529290) * @y - 0.000019538132) * @y
				- 0.000676904986) * @y + 0.001390604284) * @y
				- 0.000794620820) * @y - 0.002034254874) * @y
				+ 0.006549791214) * @y - 0.010557625006) * @y
				+ 0.011630447319) * @y - 0.009279453341) * @y
				+ 0.005353579108) * @y - 0.002141268741) * @y
				+ 0.000535310849) * @y + 0.999936657524;
		end
	end


	if (@z > 0.0)
		return (@p + 1.0) / 2;
	else
		return (1.0 - @p) / 2;

	return 0

end
GO

参数为:Probability     必需, 与学生的 t 分布相关的概率;Deg_freedom     必需, 代表分布的自由度数。