Помощь в учёбе, очень быстро...
Работаем вместе до победы

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

Лабораторная работаПомощь в написанииУзнать стоимостьмоей работы

Label6. Text += «Критическое значение «+ Math. Round (Fkr, 3) + «n»; Label6. Text += «Дисперсия фактора «+ Math. Round (DA, 3) + «n»; Введите изменение математического ожидания: Label6. Text += «Влияние фактора «+ Math. Round (DA, 3) +» n»; Double H = 2.0 * (K — 2) * (K * (N — 1) — 1) / (K * N — 2); Критическое значение критерия Фишера. Однофакторный дисперсионный анализ. Double uq = Math. Pow… Читать ещё >

Однофакторный дисперсионный анализ (реферат, курсовая, диплом, контрольная)

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

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

Кафедра Информационных Технологий и Систем Лабораторная работа по дисциплине «Обработка экспериментальных данных»

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

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

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

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

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

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

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

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

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

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

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

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

D

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

Matrix

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

D0

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

F

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

Fkr

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

M1

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

N

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

g

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

K

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

DM

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

SumD

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

MaxD

Максимальная дисперсия выборки

Dy

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

DA

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

SG

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

M

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

Mid

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

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

using System;

using System.Collections.Generic;

using System. ComponentModel;

using System. Data;

using System. Drawing;

using System. Linq;

using System. Text;

using System.Windows.Forms;

namespace oed5lab

{

public partial class Form1: Form

{

public Form1()

{

InitializeComponent ();

}

private Random R = new Random ();

private float NormRasp (double m, double sg)

{

float sum = 0;

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

sum += (float)R.NextDouble ();

return (float)(m + sg * (sum — 6));

}

double InverseNormalCDF (double alpha)

{

double res = 0, p = 0, t = 0, q = 0;

if (alpha < 0.5)

p = alpha;

else

p = 1 — alpha;

t = Math. Sqrt (-2 * Math. Log (p, Math. E));

q = t — ((0.10 328 * t + 0.802 853) * t + 2.515 517) / (((0.1 308 * t + 0.189 269) * t + 1.432 788) * t + 1);

if (alpha > 0.5)

res = q;

else

res = -q;

return res;

}

private void button1_Click (object sender, EventArgs e)

{

//Введите объем выборки:

int N=Convert.ToInt32(textBox1.Text);

//Введите число уровней фактора:

int K = Convert. ToInt32(textBox4.Text);

//Введите математическое ожидание на первом уровне:

double M1 = Convert. ToDouble (textBox2.Text);

//Введите изменение математического ожидания:

double DM = Convert. ToDouble (textBox3.Text);

//Введите генеральное значение среднеквадратичного отклонения:

double SG= Convert. ToDouble (textBox5.Text);

richTextBox1.Text = «» ;

double[,] Matrix = new double[K, N];

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

{

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

{

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

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

richTextBox1.Text += Math. Round (Matrix[i, j], 3) + «t» ;

}

//label8.Text += «n» ;

richTextBox1.Text += «n» ;

}

double[] M = new double[K];

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

{

M[i] = 0;

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

M[i] += Matrix[i, j];

M[i] /= (double)N;

}

double[] D = new double[K];

double MaxD = 0;

double SumD = 0;

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

{

D[i] = 0;

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

D[i] += (Matrix[i, j] - M[i]) * (Matrix[i, j] - M[i]);

D[i] = D[i] / (double)(N — 1);

if (D[i] > MaxD) MaxD = D[i];

SumD += D[i];

}

double g = MaxD / (SumD — MaxD);

label6.Text="Значение критерия Кохрана «+ Math. Round (g, 3) + «n» ;

double Mid = 0;

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

Mid += M[i];

Mid /= (double)K;

label6.Text += «Математическое ожидание «+ Math. Round (Mid, 3) + «n» ;

double Dy = 0;

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

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

Dy += (Matrix[i, j] - Mid) * (Matrix[i, j] - Mid);

Dy /= (double)K * N — 1;

label6.Text += «Общая выборочная дисперсия «+ Math. Round (Dy, 3) + «n» ;

double D0 = 0;

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

D0 += D[i];

D0 /= (double)K;

label6.Text += «Средняя дисперсия по уровням «+ Math. Round (D0,3) + «n» ;

double DA = 0;

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

DA += (M[i] - Mid) * (M[i] - Mid);

DA *= (double)N / (K — 1);

label6.Text += «Дисперсия фактора «+ Math. Round (DA, 3) + «n» ;

double F = DA / D0;

label6.Text += «Влияние фактора „+ Math. Round (DA, 3) +“ n» ;

double p = Convert. ToDouble (comboBox1.Text.ToString ());

double u = Math. Abs (InverseNormalCDF (p));//квинтиль нормального распределения

double uq = Math. Pow (u, 2);//квадрат квинтиля

double L = (uq — 3) / 6;

double H = 2.0 * (K — 2) * (K * (N — 1) — 1) / (K * N — 2);

double 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);

double Fkr = Math. Exp (W * 2);

label6.Text += «Критическое значение «+ Math. Round (Fkr, 3) + «n» ;

label6.Text +="Влияние фактора «;

if (F < Fkr) label6. Text += «Несущественноn» ;

else label6. Text += «Cущественноn» ;

}

}

}

4. Пример

Вывод

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

Показать весь текст
Заполнить форму текущей работой