Professional Documents
Culture Documents
Лабораторна робота №1 Захаров ПЗПІ-20-2
Лабораторна робота №1 Захаров ПЗПІ-20-2
Лабораторна робота №1
Описові статистики
Харків 2021
Мета: Отримання студентами практичних навичок розрахунку описових
статистик: математичного сподівання, дисперсії, середньоквадратичного
відхилення.
Масив значень:
static double[] data = new double[50]
{ 1, 2, 3, 4, 5, 6, 9, 23, 9, 10, 2, 5, 1, 78, 4, 7, 23, 7, 234, 76, 3, 68, 3, 54, 7, 3, 7, 9,
2, 22, 10, 24, 73, 37, 34, 6, 9, 31, 9, 35, 78, 24, 7, 89, 45, 24, 234, 79, 34, 76 };
Описові статистики що обчислюються:
‒ вибіркове середнє значення;
‒ вибіркова дисперсія;
‒ стандартне відхилення;
‒ медіана;
‒ мода;
‒ максимальне і мінімальне значення;
‒ розмах;
‒ квантилі: 0.1, 0.25, 0.5, 0.75
Вибіркове середнє значення:
public static double VibMiddle (double[] arr)
{
double x = 0;
double sum = 0;
foreach(double elem in arr)
{
sum += elem; //сума усіх елементів
}
x = sum / arr.Length; //ділення суми елементів на їх кількість
return x;
}
Вибіркова дисперсія:
public static double VibDisper(double[] arr, double M)
{
double D = 0;
double sum = 0;
foreach (double elem in arr)
{
sum = sum + ((elem - M) * (elem - M)); //сума дисперсій елементів
вибірки
}
D = sum / (arr.Length - 1); //ділення суми дисперсій на кількість
елементів вибірки - 1
return D;
}
Стандартне відхилення:
public static double StandVidh(double[] arr, double M)
{
double V = 0;
double sum = 0;
foreach (double elem in arr)
{
sum = sum + ((M - elem) * (M - elem)); //сума квадратів відхилень
}
V = Math.Sqrt(sum / (arr.Length - 1)); //ділення суми квадратів
відхилень на кількість елементів вибірки - 1
return V;
}
Медіана:
public static double Medi(double[] arr)
{
Array.Sort(arr);
if (arr.Length % 2 == 0) //дія якщо кількість елементів парна
{
double l1 = arr[arr.Length / 2 ];
double l2 = arr[arr.Length / 2 - 1];
}
else //дія якщо кількість елементів непарна
{
Мода:
static double Mode(double[] arr)
{
Dictionary<double, int> dict = new Dictionary<double, int>();
foreach (double elem in arr)
{
if (dict.ContainsKey(elem))
dict[elem]++;
else
dict[elem] = 1;
}
int maxCount = 0;
double mode = 0;
List<double> m = new List<double>();
foreach (double elem in dict.Keys)
{
if (dict[elem] >= maxCount)
{
maxCount = dict[elem];
mode = elem;
}
}
foreach (double elem in dict.Keys)
{
if (dict[elem] == maxCount)
{
m.Add(elem);
}
}
Console.Write("Мода: ");
foreach (double elem in m)
{
Console.Write(elem + " , ");
}
Console.WriteLine();
}Мінімальне та максимальне значення:
Розмах:
public static double Roz(double[] arr)
{
Array.Sort(arr); //сортування за зростанням
Квантилі:
public static double Kvan(double[] arr, double k)
return arr[elemNo];
else
step /= dif;
Програма:
static void Main(string[] args)
{
var M = VibMiddle(data);
Console.WriteLine("Вибiркове середнє: " + M);
Mode(data);
var min = Min(data);
Console.WriteLine("Мiнiмальне значення: " + min);
Console.WriteLine(Kvan(data, 0.1));
Console.WriteLine(Kvan(data, 0.25));
Console.WriteLine(Kvan(data, 0.5));
Console.WriteLine(Kvan(data, 0.75));