Текст подпрограммы и версий
bs02r_c.zip , bs02d_c.zip
Тексты тестовых примеров
tbs02r_c.zip , tbs02d_c.zip

Подпрограмма:  bs02r_c

Назначение

Вычисление коэффициентов асимметрии и эксцесса заданной выборки

Математическое описание

Пусть задан выборочный вектор X = (x1, x2, ..., xN). Подпрограмма вычисляет выборочные значение коэффициентов асимметрии A и эксцесса E:

     A = {(x1-Xcp)3 + (x2-Xcp)3 + ... + (xN-Xcp)3} / (N * S3) 

     E = {(x1-Xcp)4 + (x2-Xcp)4 + ... + (xN-Xcp)4} / (N * S4) - 3 

где Xcp - среднее и S - среднеквадратическое отклонение:

     Xcp = (x1 + x2 + ... + xN) / N 

     S = { ( (x1-Xcp)2 + (x2-Xcp)2 + ... + (xN-Xcp)2 ) / (N-1) }1/2 

С.А.Айвазян, И.С.Енюков, Л.Д.Мешалкин. Прикладная статистика: основы моделирования и первичная обработка данных. М.,"Финансы и статистика", 1983 г.

Использование

    int bs02r_c (real *x, integer *n, real *a, real *e)

Параметры

x - заданный вещественный выборочный вектор длины n;
n - длина вектора X (тип: целый);
a - вещественная переменная, содержащая выборочный коэффициент асимметрии;
e - вещественная переменная, содержащая выборочный коэффициент эксцесса

Версии

bs02d_c - вычисление коэффициентов асимметрии и эксцесса в режиме удвоенной точности

Вызываемые подпрограммы: нет

Замечания по использованию: нет

Пример использования

int main(void)
{
    /* Initialized data */
    static float x[4] = { 1.f,2.f,3.f,5.f };

    /* Local variables */
    extern int bs02r_c(float *, int *, float *, float *);
    static float a, e;
    static int n;

    n = 4;
    bs02r_c(x, &n, &a, &e);

    printf("\n tbs02r: a, e = %16.7e %16.7e \n", a, e);
    return ;
} /* main */


Результаты:  a = 0.2823139,   e = -1.961786