Однофакторный дисперсионный анализ

  • Вид работы:
    Практическое задание
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    190,31 Кб
  • Опубликовано:
    2013-11-02
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Однофакторный дисперсионный анализ

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

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

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






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

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

Однофакторный дисперсионный анализ


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

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

Студент гр.0091:

Многолетний А.В.




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

1. Цель работы

Ознакомиться с однофакторным дисперсионным анализом и разработать алгоритм и программу для его реализации.

Алгоритм решения:

Сначала генерируются К выборок из N элементов. Затем для каждой выборки определяется математическое ожидание и дисперсия. Исходя из полученных данных, определяется критерий Кохрана.

Определяется выборочная дисперсия, средняя дисперсия и дисперсия влияния фактора. Исходя из них определяется значение критерия Фишера, оно сравнивается с критическим, на основание чего делается вывод о существенности влияния фактора

 

2. Таблица имен

D

Дисперсия каждой выборки

Массив выборок

D0

Средняя дисперсия выборок

F

Значение критерия Фишера

Fkr

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

M1

Мат. ожидание первой выборки

N

Объем выборок

g

Значение критерия Кохрана

K

Число выборок

DM

Шаг мат. ожидания

SumD

Сумма дисперсий выборок

MaxD

Dy

Общая выборочная дисперсия

DA

Дисперсия влияния фактора

SG

Генеральная дисперсия

M

Массив мат. ожиданий выборок

Mid

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

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

System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;oed5lab

{partial class Form1 : Form

{Form1()

{();

}Random R = new Random();float NormRasp(double m, double sg)

{sum = 0;(int i = 0; i < 12; i++)+= (float)R.NextDouble();(float)(m + sg * (sum - 6));

}InverseNormalCDF(double alpha)

{res = 0, p = 0, t = 0, q = 0;(alpha < 0.5)= alpha;= 1 - alpha;= Math.Sqrt(-2 * Math.Log(p, Math.E));= t - ((0.010328 * t + 0.802853) * t + 2.515517) / (((0.001308 * t + 0.189269) * t + 1.432788) * t + 1);(alpha > 0.5)= q;= -q;res;

}void button1_Click(object sender, EventArgs e)

//Введите объем выборки:N=Convert.ToInt32(textBox1.Text);

//Введите число уровней фактора:K = Convert.ToInt32(textBox4.Text);

//Введите математическое ожидание на первом уровне:M1 = Convert.ToDouble(textBox2.Text);

//Введите изменение математического ожидания:DM = Convert.ToDouble(textBox3.Text);

//Введите генеральное значение среднеквадратичного отклонения:SG= Convert.ToDouble(textBox5.Text);.Text = "";[,] Matrix = new double[K, N];(int i = 0; i < K; i++)

{(int j = 0; j < N; j++)

{[i, j] = NormRasp(M1 + i * DM, SG);

// label8.Text += Math.Round(Matrix[i, j],3) + "\t";.Text += Math.Round(Matrix[i, j], 3) + "\t";

}

//label8.Text += "\n";.Text += "\n";

}[] M = new double[K];(int i = 0; i < K; i++)

{[i] = 0;(int j = 0; j < N; j++)[i] += Matrix[i, j];[i] /= (double)N;

}[] D = new double[K];MaxD = 0;SumD = 0;(int i = 0; i < K; i++)

{[i] = 0;(int j = 0; j < N; j++)[i] += (Matrix[i, j] - M[i]) * (Matrix[i, j] - M[i]);[i] = D[i] / (double)(N - 1);(D[i] > MaxD) MaxD = D[i];+= D[i];

}g = MaxD / (SumD - MaxD);.Text="Значение критерия Кохрана " + Math.Round(g,3) + "\n";Mid = 0;(int i = 0; i < K; i++)+= M[i];/= (double)K;.Text += "Математическое ожидание " + Math.Round(Mid,3) + "\n";Dy = 0;(int i = 0; i < K; i++)(int j = 0; j < N; j++)+= (Matrix[i, j] - Mid) * (Matrix[i, j] - Mid);/= (double)K * N - 1;.Text += "Общая выборочная дисперсия " + Math.Round(Dy,3) + "\n";D0 = 0;(int i = 0; i < K; i++)+= D[i];/= (double)K;.Text += "Средняя дисперсия по уровням " + Math.Round(D0,3) + "\n";DA = 0;(int i = 0; i < K; i++)+= (M[i] - Mid) * (M[i] - Mid);*= (double)N / (K - 1);.Text += "Дисперсия фактора " + Math.Round(DA,3) + "\n";F = DA / D0;.Text += "Влияние фактора " + Math.Round(DA,3) +"\n";p = Convert.ToDouble(comboBox1.Text.ToString());u = Math.Abs(InverseNormalCDF(p));//квинтиль нормального распределенияuq = Math.Pow(u, 2);//квадрат квинтиляL = (uq - 3) / 6;H = 2.0 * (K - 2) * (K * (N - 1) - 1) / (K * N - 2);W = u * Math.Sqrt(H + L) / H - (1.0 / (K - 2) - 1.0 / (K * (N - 1) - 1)) * (L + 5.0 / 6 - 2.0 / 3 / H);Fkr = Math.Exp(W * 2);.Text += "Критическое значение " + Math.Round(Fkr,3) + "\n";.Text +="Влияние фактора ";(F < Fkr) label6.Text += "Несущественно\n";label6.Text += "Cущественно\n";

}

}

}

. Пример

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

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

Похожие работы на - Однофакторный дисперсионный анализ

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!