Сравнение двух групп данных с использованием t-статистики Стьюдента

Разработка алгоритма и программы на алгоритмическом языке для генерации значений случайных величин, имеющих нормальный закон распределения. Проверка нулевой гипотезы об отсутствии статистических различий между выборками с помощью t-критерия Стьюдента.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 19.02.2014
Размер файла 151,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Новгородский государственный университет имени Ярослава Мудрого»

Кафедра Информационных Технологий и Систем

Лабораторная работа №1

по дисциплине «Обработка экспериментальных данных»

Сравнение двух групп данных с использованием t-статистики Стьюдента

Преподаватель

Александров В.Н.

Студент гр.№8091:

Алексеев С.Н.

Великий Новгород

Введение

статистический стьюдент алгоритмический

Цель работы:

Разработать алгоритм и программу на одном из алгоритмических языков для генерации значений случайных величин, имеющих нормальный закон распределения, и проверить нулевую гипотезу об отсутствии статистически значимых различий между двумя выборками с помощью t-критерия Стьюдента.

1. Математическая модель решения

Сначала генерируется выборка. После получения выборки вычисляется среднее значение и среднеквадратическое отклонение. Этот процесс повторяется и для другой выборки. Из получившихся значений среднеквадратических отклонений вычисляется среднеквадратическое отклонение выборочных среднеквадратических отклонений и оценка среднеквадратического отклонения разности двух выборочных средних.

Исходя из вычисленных среднеквадратических отклонений, формируется критерий Фишера, и по приближенным формулам вычисляется его критическое значение. Если получившееся значение критерия Фишера превосходит критическое, следовательно, нулевая гипотеза не верна, о чем и выводится соответствующее сообщение. В противном случае производится проверка на t-критерии Стьюдента.

Исходя их среднеквадратических отклонений выборок, вычисляется t-критерий Стьюдента, и по приближенным формулам вычисляется его критическое значение. Если получившееся значение критерия превосходит критическое, следовательно, нулевая гипотеза не верна. Иначе нулевая гипотеза верна.

Таблица имен

n1

Объем выборки №1

n2

Объем выборки №2

M1

Математическое ожидание выборки №1

M2

Математическое ожидание выборки №2

sg

Дисперсия

S1

Среднее значение выборки №1

S2

Среднее значение выборки №2

SQ1

Среднеквадратичное отклонение выборки №1

SQ2

Среднеквадратичное отклонение выборки №2

X1

Выборка №1

X2

Выборка №2

SS

среднеквадратическое отклонение выборочных среднеквадратических отклонений

S

оценка среднеквадратического отклонения разности двух выборочных средних

F

Критерий Фишера

u

Квинтиль нормального распределения

L

Переменная для вычисления критического значения критерия Фишера

H

Переменная для вычисления критического значения критерия Фишера

W

Переменная для вычисления критического значения критерия Фишера

Fc

критическое значение критерия Фишера

t

Значение t-критерия Стьюдента

v

Число степеней свободы выборок

q1

Переменная для вычисления критического значения t-критерия Стьюдента

q2

Переменная для вычисления критического значения t-критерия Стьюдента

q3

Переменная для вычисления критического значения t-критерия Стьюдента

q4

Переменная для вычисления критического значения t-критерия Стьюдента

Tc

критическое значение t-критерия Стьюдента

2. Блок-схема программы

3. Текст программы

#include <iostream>

#include <stdlib.h>

#include <math.h>

using namespace std;

double NormRasp (double m, double sg); //Возращает нормально распределённую случайную величину;

double S(double * X, int n); //Возвращает cреднее значение для заданной выборки X, размером n

double SQ(double * X,int n,double S); //Возвращает среднеквадатическое отклонение

int main(){

int n1,n2; //Объемы двух выборок;

double

M1,M2, //Генеральные значания математического ожидания для двух выборок;

sg; //Генеральное значение среднеквадратического отклонения; (сигма малое)

cout<<"Введите объем первой выборки:\n\tn1=";

cin>> n1;

cout<<"Введите генеральное значение математического ожидания для первой выборки:\n\tM1=";

cin>> M1;

cout<<"Введите объем второй выборки:\n\tn2=";

cin>> n2;

cout<<"Введите генеральное значение математического ожидания для второй выборки:\n\tM2=";

cin>> M2;

cout<<"Введите генеральное значение среднеквадратического отклонения:\n\tsg=";

cin>> sg;

//Создание выборки

//Выделяем память для значений первой выборки

double * X1 = new double [n1];

double S1 = 0; //Среднее значение первой выборки

double SQ1= 0; //среднеквадратичное отклонение

for(int i=0;i<n1;i++) //Заполнение первой выборки

X1[i]=NormRasp(M1,sg);

S1=S(X1,n1);

SQ1=SQ(X1,n1,S1);

//Удаляем выборку

delete [] X1;

cout << "Среднее значение первой выборки:\n\tS1="<<S1<<"\nСреднеквадратичное отклонение первой выборки:\n\tSQ1="<< SQ1 <<"\n";

//Выделяем память для значений второй выборки

double * X2 = new double [n2];

double S2 = 0; //Среднее значение первой выборки

double SQ2= 0; //среднеквадратичное отклонение

for(int i=0;i<n2;i++) //Заполнение первой выборки

X2[i]=NormRasp(M2,sg);

S2=S(X2,n2);

SQ2=SQ(X2,n2,S2);

//Удаляем выборку

delete [] X2;

cout << "Среднее значение второй выборки:\n\tS2="<<S2<<"\nСреднеквадратичное отклонение второй выборки:\n\tSQ2="<< SQ2 <<"\n";

double SS=sqrt(((n1-1)*pow(S1,2)+(n2-1)*pow(S2,2))/(n1+n2-2));

cout << "Средневзвешенное среднеквадратическое отклонение двух среднеквадратических отклонений:\n\tSS=" << SS << "\n";

double S=SS*(1.0/(double)n1+1.0/(double)n2);

cout << "Оценка среднеквадратического отклонения разности двух выборочных средних:\n\tS=" << S << "\n";

double F=pow(SQ1,2)/pow(SQ2,2);

if (F<1) F=1/F;

cout << "Значение критерия Фишера:\n\tF=" << F <<"\n";

double u=1.645; //квинтиль нормального распределения

double v1=n1-1;//Число степеней свободы для числителя

double v2=n2-1;//Число степеней свободы для знаменателя

double L=(pow(u,2)-3)/6;

double H=2.0*(v1-1)*(v2-1)/(v1+v2-2);

double W=u*sqrt(H+L)/H-(1.0/(v1-1)-1.0/(v2-1))*(L+5.0/6.0-2.0/3.0/H);

double Fc=exp(W*2);

cout << "Критическое значение критерия Фишера:\n\t Fc=" << Fc <<"\n";

if (F>=Fc) cout << "Критерий Фишера не выполнен - нулевая гипотеза не верна!\n";

else

{

cout << "Критерий Фишера выполнен!\n";

double t=(fabs(S1)-fabs(S2))/S;

cout << "Значение t-критерия Стьюдента\n\tt=" << t << "\n";

double q1=(pow(u,2)+1)*u/4;

double q2=((5*pow(u,2)+16)*pow(u,2)+3)*u/96;

double q3=(((3*pow(u,2)+19)*pow(u,2)+17)*pow(u,2)-15)*u/384;

double q4=((((79*pow(u,2)+776)*pow(u,2)+1482)*pow(u,2)-1920)*pow(u,2)-945)*u/92160;

double v=v1+v2;

double tc=u+q1/v+q2/v/v+q3/v/v/v+q4/v/v/v/v;

cout << "Критическое значение t-критерия Стьюдента: " << tc << "\n";

if (t<tc) cout << "t-критерий Стьюдента выполнен. Нулевая гипотеза верна\n";

else cout << "t-критерий Стьюдента не выполнен. Нулевая гипотеза не верна\n";

}

}

double NormRasp (double m, double sg){

double sum=0.0;

for(int i=0;i<12;i++)

sum+=((double)rand())/RAND_MAX;

return m+sg*(sum-1);

}

double S(double * X,int n){

double sum=0.0;

for(int i=0; i<n; i++)

sum+=X[i];

return sum/n;

}

double SQ(double * X,int n,double S){

double SQ=0.0;

for (int i=0; i<n; i++)

SQ+=(X[i]-S)*(X[i]-S);

return sqrt(SQ/(n-1));

}

4. Проверка работоспособности программы

Шаблон ввода входных данных

Результаты работы программы

n1

n2

M1

M2

sg

Критерий Фишера

Критерий Стьюдента

Гипотеза

Вывод

Был разработан алгоритм, а также написана программа на языке С++, генерирующая значения случайных величин, которые имеют нормальный закон распределения. С помощью ее удалось проверить нулевую гипотезу об отсутствии статистически значимых различий между двумя выборками с помощью t-критерия Стьюдента.

Результаты исследования приведены в таблице результатов работы программы

Размещено на Allbest.ru


Подобные документы

  • Разработка алгоритма и программы на языке С++ для генерации значений случайных величин, имеющих нормальный закон распределения. Проверка нулевой гипотезы об отсутствии статистически значимых различий между двумя выборками с помощью t-критерия Стьюдента.

    лабораторная работа [763,5 K], добавлен 19.02.2014

  • Принципы реализации программы проверки статистических гипотез с использованием t-критерия Стьюдента, ее общий алгоритм. Особенности применения двухвыборочного критерия для независимых выборок. Функциональные модели решения задачи для различных функций.

    курсовая работа [644,2 K], добавлен 25.01.2010

  • Сущность и методика исследования вероятностной структуры сигналов, законы распределения случайных величин. Проверка гипотезы по критерию Колмогорова-Смирнова и Пирсона. Разработка программы вычисления признаков и формирования обучающего множества данных.

    курсовая работа [509,6 K], добавлен 03.12.2009

  • Написание программы для генерации случайных чисел, в которой реализуются возможности генерации абсолютно случайных чисел. Приложение на языке С/С++. Описание узла, содержащего данные; функций и методов работы; чтения данных из памяти и вывода их на экран.

    курсовая работа [172,4 K], добавлен 23.05.2012

  • Моделирование работы генератора случайных двоичных чисел с ограниченной последовательностью 0 и 1, подчиняющегося равномерному закону распределения, заданному с помощью модели Гильберта. Представление программного решения задачи средствами языка С++.

    лабораторная работа [857,7 K], добавлен 05.06.2011

  • Обнаружение грубых погрешностей. Проверка случайности и независимости результатов измерений в выборке. Приближенная проверка гипотезы о нормальном распределении экспериментальных данных. Проверка гипотезы о равенстве дисперсий и средних значений.

    курсовая работа [1,1 M], добавлен 01.07.2011

  • Генерирование выборок, имеющих нормальный закон распределения, и определение для них математического ожидания и дисперсии. Нахождение значения критерия Фишера, сравнивнение его с критическим. Проведение однофакторного дисперсионного анализа выборок.

    лабораторная работа [291,0 K], добавлен 19.02.2014

  • Реализация алгоритма верификации данных; разработка программы обнаружения аномальных данных в одномерных выборках. Характеристика методов D-статистики, Титьена-Мура, диаграммы "Ящик с усами"; обеспечение эффективности оценок статистических данных.

    курсовая работа [2,5 M], добавлен 27.05.2013

  • Разработка программы на языке С++ по определению величин и направлений токов в ветвях электрической цепи с использованием метода Гаусса. Блок-схема алгоритма. Контрольный расчет с помощью электронных таблиц Excel, используя метод обратной матрицы.

    курсовая работа [30,3 K], добавлен 10.11.2010

  • Автоматизация промежуточного и финального контроля результатов обучения учащихся различных учебных заведений. Тестирование, основанное на диалоге вычислительной системы с пользователем. Реализация приложения генерации тестов из базы данных на языке РНР.

    курсовая работа [234,1 K], добавлен 04.08.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.