Формула Excel T.INV Неправильный расчет с использованием C # - PullRequest
0 голосов
/ 26 декабря 2018

В Excel = T.INV (0,9,5) возвращает значение ' 1,475884 '.

Теперь я использую функцию WorksheetFunction TINV (0,9,5) в C #.Но это дает мне результат 0.1321751752 .

Итак, в C # TINV результат имеет слишком большое значение, отличное от excel.

Microsoft.Office.Interop.Excel.Application xl = new Microsoft.Office.Interop.Excel.Application();

Microsoft.Office.Interop.Excel.WorksheetFunction wsf = xl.WorksheetFunction;
double result = wsf.TInv(0.9, 5);

Использование другогоNuGet DLL также обнаружила то же значение, что и предыдущая DLL:

var chart = new System.Web.UI.DataVisualization.Charting.Chart();
double resultTest = chart.DataManipulator.Statistics.TDistribution(.9, 5, true);

Итак, мне нужно то же значение, что и в функции Excel Worksheet **T.Inv**.

Как получить тот же T.INVзначение в c #.

Может кто-нибудь помочь мне получить тот же результат, пожалуйста?

1 Ответ

0 голосов
/ 26 декабря 2018

Этот код возвращает как двустороннюю, так и двустороннюю инверсию t-распределения Стьюдента

static void Main(string[] args)
{
    double value = 0.9;
    int degree = 5;

    var chart = new System.Web.UI.DataVisualization.Charting.Chart();
    double resultTest = chart.DataManipulator.Statistics.InverseTDistribution(value, degree);  
    Console.WriteLine(resultTest);

    //left-tailed 
    double result = alglib.invstudenttdistribution(degree, value);
    Console.WriteLine(result);
}

PS Я использовал доступную здесь функцию invstudenttdistribution alglib.net

Result

...