如何计算Objective-C中的t分布?

如何计算Objective-C中的t分布?,objective-c,statistics,Objective C,Statistics,在Objective-C中是否有计算t分布的库或简单方法?我对样本集的平均值有一个零假设,并且我能够计算平均值、标准偏差、标准误差和检验统计量,如下所示: // Calculate average NSExpression *averageExpression = [NSExpression expressionForFunction:@"average:" arguments:@[[NSExpression expressionForConstantValue:data]]]; NSNumbe

在Objective-C中是否有计算t分布的库或简单方法?我对样本集的平均值有一个零假设,并且我能够计算平均值、标准偏差、标准误差和检验统计量,如下所示:

// Calculate average
NSExpression *averageExpression = [NSExpression expressionForFunction:@"average:" arguments:@[[NSExpression expressionForConstantValue:data]]];
NSNumber *average = [averageExpression expressionValueWithObject:nil context:nil];

// Calculate StandardDeviation
NSExpression *stdDevExpression = [NSExpression expressionForFunction:@"stddev:" arguments:@[[NSExpression expressionForConstantValue:data]]];
NSNumber *stddev = [stdDevExpression expressionValueWithObject:nil context:nil];

// Calculate StandardError
double std_err = ([stddev doubleValue]/(sqrt(sampleSize - 1)));

// Calculate Test Statistic
double test = ([average doubleValue] - hyothesis) / std_err;

// TODO: Calculate t-dist
现在我需要计算测试统计量的t分布,采样-1个自由度,带一条尾巴。在谷歌表单中,我只使用=tdist(stat,n-1,1)

在Objective-C中进行此计算的适当方法是什么?是否有函数以类似的方式向我提供这些信息,或者我需要自己编写它们?

我能够在我自己的
统计
类中实现并将其封装在一个objective c函数中,如下所示:

+ (NSNumber * _Nullable)tdist:(double)x nu:(int)nu {
    if (x < 0) {
        return nil;
    }
    if (nu < 1) {
        return nil;
    }
    return @(Student_t_Distribution(x, nu));
}

“tdist”的公式是什么?我想应该有一个,不是吗?是的,但我更感兴趣的是了解解决这个问题的方法。我觉得我不是第一个在iOS中需要tdist的人。例如,我知道GNU Scientific库支持C中的函数,但所有到OS X的发行版都是x86,也就是说,我无法在iOS上链接它们
- (void)testValidValue {
    double x = 9.025217197;
    int nu = 7;
    double answer = 0.00002094378853;
    XCTAssertEqualWithAccuracy(1.0 - [[Statistics tdist:x nu:nu] doubleValue], answer, .0000000001, @"Failed calculation");
}