Класс T-Test и PValue-Math.Net Numerics

Есть ли способ получить значение ttest и P-значение из класса StudentT. Я пытаюсь вычислить эти значения из этой библиотеки: https://numerics.mathdotnet.com/api/MathNet.Numerics.Distributions/StudentT.htm

Эквивалентной функцией Excel является T-Test. Но у меня нет этого метода в функции math.net numerics excel. Ссылка ниже показывает все методы Excel: https://numerics.mathdotnet.com/api/MathNet.Numerics/ExcelFunctions.htm

Любые указатели, чтобы сделать это из вышеуказанной библиотеки, будут очень полезны.

Спасибо...


person Skanda    schedule 12.05.2017    source источник


Ответы (2)


Я не знаю, как это сделать в Math.Net, но знаю, как это сделать в Meta.Numerics:

        Sample sample1 = new Sample(1.0, 2.0, 3.0, 4.0);
        Sample sample2 = new Sample(3.0, 4.0, 5.0, 6.0);
        TestResult tTest = Sample.StudentTTest(sample1, sample2);
        Console.WriteLine("t = {0}", tTest.Statistic);
        Console.WriteLine("P = {0} ({1})", tTest.Probability, tTest.Type);

Я понимаю, если вы не заинтересованы в изменении математических библиотек, но, поскольку ваш вопрос долгое время оставался без ответа, я решил вмешаться.

person David Wright    schedule 16.05.2017
comment
Как бы вы сделали этот же код для всего населения, а не только для выборки? - person DarthVegan; 28.10.2017
comment
@user3610374 user3610374 Если обе выборки содержат полную популяцию, то тест проводить не нужно. Нулевая гипотеза t-критерия состоит в том, что две популяции идентичны. Если у вас есть обе совокупности, то они тривиально идентичны либо с P = 0, либо с P = 1. Если только одна выборка представляет собой полную совокупность и имеет среднее значение m, то ее можно сравнить с подвыборкой s с помощью s.StudentTTest(m), которая вычисляет $t = (\mu - m) / (\sigma / \sqrt{n })$. Обычно это называется одновыборочным t-тестом (en. wikipedia.org/wiki/Student%27s_t-test#One-sample_t-test). - person David Wright; 31.10.2017

Вот как выполнить левосторонний t-критерий с использованием набора библиотек MathNet.Numerics.

Предположим, у вас есть данные в массиве, и вы уже рассчитали всю необходимую предварительную статистику, как показано ниже.

    int n = 5;    //size of sample
    double hypotheziedMean = 50.0;   
    double sampleMean = 50.03;
    double sampleSD = 1.5;    //sample standard deviation (n-1)

    double stdErr = sampleSD / Math.Sqrt(n);    //standard error of the mean
    double t = (sampleMean - hypotheziedMean) / stdErr;   //convert to a standard mean of 0 and SD of 1

    StudentT st = new StudentT(0, 1, n-1); //create a standard StudentT object with n-1 DOF

    double pVal = st.CumulativeDistribution(t);  //left tail pval
person robert5722    schedule 23.06.2021