Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Проведение статистических расчетов в Scilab
Цель работы: научиться использовать математическое моделирование при решении простых статистических задач.
Порядок выполнения: 1. Подготовка исходных данных и ограничения модели. 2. Интерпретация моделей Scilab. 3. Решение моделей и анализ результатов. 4. Вывод. Основные теоретические сведения, используемые в работе
Амплитуда распределения случайных величин.
С помощью команды strange. Синтаксис [r]=strange(x) [r]=strange(x,'r') (или [r]=strange(x,1) ) [r]=strange(x,'c') (или [r]=strange(x,2) ) Параметры x:действительный или комплексный вектор (матрица) Команда [r]=strange(x) Возвращает расстояние между самым большим и самым маленьким значением матрицы x и определяет размах вектора или матрицы x. Команда [r]=strange(x,'r') (или [r]=strange(x,1)) Возвращает вектор – строку размахов по каждому столбцу. Команда [r]=strange(x,'c') (или [r]=strange(x,2)) Возвращает вектор – столбец размахов по каждой строчке. Пример 1. x=[2 1 -6 45 0 -2]; r=strange(x) Результат : r = 51. // 45-(-6)=51
Пример 2. x=[4 3 -7 10 -20]; y=[2 1 -6 45 0 ]; z=[x;y]; r_all=strange(z); // размах всейматрицы = max(z)-min(z) r_col=strange(z,"r"); //размах по столбцам r_row=strange(z,"c"); // размах по строкам Результат : r_all = 65. r_col = ! 2. 2. 1. 35. 20. ! r_row = ! 30. ! // =10-(-20) ! 51. ! // =45-(-6)
Медиана распределения величин с помощью команды median.
Медиана x1/2 делит область изменения x соответственно на 2 интервала, попадания в которые имеют равные вероятности. Геометрический смысл: Выборочной медианой называется значение аргумента, которое делит гистограмму плотности вероятности на две равные части.
Синтаксис y=median(x) y=median(x,'r') y=median(x,'c')
Параметры x : действительный вектор или матрица y : скаляр или вектор
Для вектора или матрицы x, y=median(x) возвращает скаляр y медианы всех значений элементов x. y=median(x,'r') (или y=median(x,1)) является «строковой» медианой. возвращает в качестве каждого элемента вектора-строки y медиану по соответствующему столбцу матрицы x.
y=median(x,'c') (или y=median(x,2)) является «столбцовой» медианой и возвращает в качестве каждого элемента вектора-столбца y медиану по соответствующей строке матрицы x.
На этом рисунке m x является медианой. Пример. A=[1,2,10;7,7.1,7.01]; histplot(6,A)
Результат:
y=median(A) Результат: y = 7.005 Из рисунка видно, что площадь двух левых столбиков равна площади двух правых столбиков, что совпадает с полученным нами результатом y=7.005.
Абсолютное среднее отклонение с помощью команды mad.
Абсолютное среднее отклонение вычисляется для набора величин (x 1 ,x 2 ,...,x n )по следующей формуле:
где Mx - является выборочным средним, n - число элементов выборки.
Синтаксис s2=mad(x) s2=mad(x,'r') или s2=mad(x,1) s2=mad(x,'c') или s2=mad(x,2)
Параметры x : действительный или комплексный вектор или матрица Если x является вектором, то s2=(|x 1 -M | +|x 2 -M | +|x n -M | ) / n , где M=mean(x) - среднее арифметическое значение.
s2=mad(x,'r') (или s2=mad(x,1) ) вычисляет «строковое» среднее отклонение s2=mad(x,'c') (или s2=mad(x,2) ) вычисляет «столбцовое» среднее отклонение.
Пример. x=[565 6.234 143]; d=mad(x)
Результат: d = 217.948
// Для проверки n=3; s=abs(x(1)-mean(x))+abs(x(2)-mean(x))+abs(x(3)-mean(x)); s=s/n
Результат: s = 217.948
Среднее квадратичное отклонение
Способ 1. С помощью команды msd. Пусть x1,x2, x3, ...xn - случайные величины, n - объем выборки, а xm - выборочное среднее (арифметическое). Замечание: Выборочное среднее xm может быть получено с помощью команды m e an ( xm ). Среднее квадратичное отклонение вычисляется по формуле: y=sqrt(D), где D=((x1- xm) 2 +(x2-xm) 2 +...+(xn-xm) 2 ) / n ; xm =mean(x) Среднее квадратичное отклонение в пакете Scilab вычисляется по следующей формуле (для вектора):
, где n - число элементов и Mx - выборочное среднее.
Замечание: Обратите внимание, что результат этой команды отличается от результата, полученного с помощью команды stdev только нормировкой.
Синтаксис y=msd(x) y=msd(x,'r') или m=msd(x,1) y=msd(x,'c') или m =msd(x,2)
Параметры x : действительный или комплексный вектор или матрица
"Строковые" и "столбцовые" варианты всех команд устроены аналогично командам mean, h armean и т. д. Команда y=msd(x,'r') (или y=msd(x,1) ) вычисляет «строковое» среднеквадратичное (или “стандартное”)отклонение. Команда y=msd(x,'c') (или m=msd(x,2) ) вычисляет «столбцовое» средне квадратичное отклонение.
Пример. x=[20 40 30]; m=msd(x) Результат: m = 8.1649658
// Для проверки xm=mean(x); n=3; // число элементов вектора x q=(x(1)-xm)^2+(x(2)-xm)^2+(x(3)-xm)^2; w=sqrt(q/n)
Результат: w = 8.1649658 Получили результат, равный m. Следовательно, команда считает правильно.
Способ 2. С помощью команды stdev .
Среднее квадратичное отклонение (standard deviation) в пакете Scilab вычисляется по следующей формуле (для вектора):
, где n - число элементов и Mx - выборочное среднее.
Замечания 1) Обратите внимание, что результат этой команды отличается от результата, полученного с помощью команды msd только нормировкой. 2) В Scilab есть еще команда st_deviation, которая совершенно идентична команде stdev, как по синтаксису, так и по результату.
Синтаксис s=stdev s=stdev(x,'r') или m =stdev(x,1) s=stdev(x,'c') или m =stdev(x,2)
Параметры x : действительный или комплексный вектор или матрица s: скаляр
Команда s=stdev(x,'r') (или s=stdev(x,1) ) является "строковым вариантом". Команда s=stdev(x,'c') (или s=stdev(x,2)) является "столбцовым" вариантом.
Пример. x=[0.2113249 0.0002211 0.6653811 0.7560439 0.3303271 0.6283918] n=length(x); // число элементов в x s=stdev(x) //для проверки mx=mean(x); w=0; for i = 1:n, w=w+(x(i)-mx)^2;end; w=sqrt(w/(n-1))
Результат: s = .2978284
w = .2978284
Способ 3. С помощью команды stdevf . Среднее отклонение с учетом веса (взвешенное среднее квадратичное отклонение)в пакете Scilab вычисляется по следующей формуле (для вектора):
, где x i - набор случайных величин, f i - набор соответствующих им весов, n - число элементов, а Mx =meanf(x,f) - среднее арифметическое с учетом веса.
Синтаксис s=stdevf(x,fre) s=stdevf(x,fre,'r') или s=stdevf(x,fre,1) s=stdevf(x,fre,'c') или s=stdevf(x,fre,2)
Параметры x: действительный или комплексный вектор (матрица) f re: вектор (матрица)того же размера, что и x.
Пример. x=[0.2113249 0.0002211 0.6653811 0.7560439 0.9546254 0.6283918] fre=[1 2 3 3 4 3] n=length(x); // число элементов в x s=stdevf(x,fre) //для проверки w=0; for i = 1:n, w=w+fre(i)*(x(i)-meanf(x,fre))^2;end; w=sqrt(w)/(sum(fre)-1)
Результат: s = .0800239
w = .0800239 Дисперсия значений вектора или матрицы
Способ 1. С помощью команды variance.
Значение дисперсии для вектора случайных величин x=(x 1 , x 2 , ... ,x n ) по формуле:
Важное замечание: Обычно в русских учебниках в формулу для дисперсии входит деление не на величину (n- 1), а на величину n.
Синтаксис s=variance(x) s=variance(x,'r') или m =variance(x,1) s=variance(x,'c') или m =variance(x,2)
Параметры x : действительный или комплексный вектор (матрица)
Команда s=variance(x,'r') (или s=variance(x,1)) является «строковым» вариантом. Команда s=variance(x,'c') (или s=variance(x,2)) является «столбцовым» вариантом.
Пример. x=[2 0 6 7 4 0.6]; d=variance(x)
Результат: d = 8.2666667 // Для проверки n=length(x); // число элементов вектора x mx=mean(x); y=x-mean(x); w=y^2; w=sum(w)/(n-1)
Результат (совпадает со значением d): w = 8.2666667 Способ 2. С помощью команды variancef. Эта команда вычисляет дисперсию с учетом веса, если наблюдаемые значения x неравнорассеяны (неравноточны). Значение дисперсии для вектора случайных величин x=(x 1 , x 2 , ... ,x n ) с учетом вектора веса f =(f 1 , f 2 , ... ,f n ) по формуле:
Синтаксис s=variancef(x,fre) (или s=variancef(x,fre,'*')) s=variancef(x,fre,'r') (или s=variancef(x,fre,1) ) s=variancef(x,fre,'c') (или s=variancef(x,fre,2) )
Параметры x : действительный или комплексный вектор (матрица) f re: имеет тот же тип и размер, что и x, и является векирором (матрицей) веса наблюдений.
Матрица весов fre должна быть того же типа, что и x. В вычислении учитывается значение вектора (матрицы) соответствующих весов. Почему-то для возможности осуществления счета сумма всех элементов fre (=sum(fre)) должна быть > 1.
Замечание: Если все веса матрицы x равны, т.е. все элементы матрицы fre равны единице, то результаты выполнения команд variancef и variance будут совпадать.
Пример. x=[2 5 7 1]; fre=[1 1 1 1]; v=variance(x) Результат: v = 7.5833333 vf=variancef(x,fre)
Результат: vf = 7.5833333 // совпадает с v Частота встречаемости значения случайной величины
С помощью команды tabul. Синтаксис [m]=tabul(x)
Параметры x : действительный, комплексный вектор (матрица) или вектор (матрица) из символьных переменных
Если x - числовой вектор или матрица, то m: матрица из двух столбцов, в первом из которых содержатся числовые значения вектора x, отсортированные по убыванию (упорядоченный по убыванию вариационный ряд), а во втором содержится целое число, равное тому, как часто повторяется это значение в векторе x. Если элементы x являются символьными, то m - является списком.
Пример 1. x=[2 3 3 4 2 5 4 4 4 5]; t=tabul(x)
t = ! 5. 2. ! ! 4. 4. ! ! 3. 2. ! ! 2. 2. !
Пример 2. y=["cat" "cat" "dog" "dog" "pig"]; t=tabul(y)
Результат: t = t(1) !cat ! ! ! !dog ! ! ! !pig !
t(2) ! 2. ! ! 2. ! ! 1. !
|
Последнее изменение этой страницы: 2019-04-10; Просмотров: 791; Нарушение авторского права страницы