<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Octave и мат.статистика]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=13792&amp;type=atom" />
	<updated>2011-06-07T09:36:12Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=13792</id>
		<entry>
			<title type="html"><![CDATA[Re: Octave и мат.статистика]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=185817#p185817" />
			<content type="html"><![CDATA[<p>Каким-то чудом удалось сдать все-таки эту курсовую, хотя, вроде-как, 4-6 задания там неполностью правильные.<br />Может быть кого-то заинтересует или поможет, поэтому выкладываю полностью скрипт, который получился:<br /></p><div class="codebox"><pre><code># TViMS.m - скрипт для выполнения курсовой работы
#
# Выполнил: Вытовтов П.К.
#           гр. № 4-78-1
#
# Среда разработки: GNU Octave, version 3.2.4

# -------------- [Первое задание] --------------
# Для выборок X, Y найти оценки: выборочное среднее
# выборочная дисперсия, оценка центрального момента
# порядка 3 и 4, коэффициент эксцесса, коэффициент
# ассимитрии, оценка корреляционного момента, оценка
# коэффициента корреляции, размах выборки X и Y

n = 180; # Объем выборки
m = 0; # Коэффициент сдвига
s = 1; # Коэффициент масштаба
a = 0.05; # Уровень значимости

# Формируем выборки с нормальным распределением:
X = normrnd(m, s, n, 1);
Y = normrnd(m, s, n, 1);

# Находим выборочное среднее:
Xsr = mean(X)
Ysr = mean(Y)

# Находим выборочную дисперсию:
Sx2 = 0;
Sy2 = 0;
for i = 1:n
  Sx2 += X(i) - Xsr;
  Sy2 += Y(i) - Ysr;
endfor
Sx2 /= n - 1
Sy2 /= n - 1

# Находим оценку центрального момента порядка 3 и 4:
M3X = 0;
M3Y = 0;
M4X = 0;
M4Y = 0;
for i = 1:n
  M3X += (X(i) - Xsr)^3;
  M3Y += (Y(i) - Ysr)^3;
  M4X += (X(i) - Xsr)^4;
  M4Y += (Y(i) - Ysr)^4;
endfor
M3X /= n - 1
M3Y /= n - 1
M4X /= n - 1
M4Y /= n - 1

# Находим коэффициент эксцесса:
Ex = (M4X / Sx2^2) - 3
Ey = (M4Y / Sy2^2) - 3

# Находим коэффициент ассимитрии:
Sx = M3X / Sx2^(3/2)
Sy = M3Y / Sy2^(3/2)

# Находим оценку корреляционного момента:
Rxy = 0;
for i = 1:n
  Rxy += (X(i) - Xsr) * (Y(i) - Ysr);
endfor
Rxy /= n - 1

# Находим оценку коэффициента корреляции:
ro = Rxy / (Sx2^(1/2) * Sy2^(1/2))

# Сортируем для нахождения размаха:
for i = 1:n
  for j = 1:n
    if(X(i)&lt;X(j))
      tmp = X(i);
      X(i) = X(j);
      X(j) = tmp;
    endif
    if(Y(i)&lt;Y(j))
      tmp = Y(i);
      Y(i) = Y(j);
      Y(j) = tmp;
    endif
  endfor
endfor

# Находим размах выборки:
wX = X(n) - X(1)
wY = Y(n) - Y(1)
# ----------------------------------------------

# -------------- [Второе задание] --------------
# Для оценок по выбоке X построить доверительные
# доверительные интервалы для математического
# ожидания (считая дисперсию известной и
# неизвестной) и дисперсии

# Находим доверительный интервал для математического ожидания
# в случае с известной дисперсией для выборки X:
dims1 = Xsr - ((Sx2^(1/2) / n^(1/2)) * normcdf(1-a/2, m, s))
dims2 = Xsr + ((Sx2^(1/2) / n^(1/2)) * normcdf(1-a/2, m, s))

# Находим доверительный интервал для математического ожидания
# в случае с неизвестной дисперсией для выборки X:
dimns1 = Xsr - ((Sx2^(1/2) / n^(1/2)) * tcdf(1-a/2, n-1))
dimns2 = Xsr + ((Sx2^(1/2) / n^(1/2)) * tcdf(1-a/2, n-1))

# Находим доверительный интервал для дисперсии
# для выборки X:
dis1 = (n-1)*Sx2/chi2cdf(1-a/2, n-1)
dis2 = (n-1)*Sx2/chi2cdf(a/2, n-1)
# ----------------------------------------------

# -------------- [Третье задание] --------------
# По выборкам X, Y построить доверительный интервал
# для коэффициента корреляции

# Определяем доверительный интервал по коэффициенту
# корреляции для выборок X, Y:
z = (1/2)*log((1+Rxy)/(1-Rxy));
z1 = z - tcdf(1-a/2, n) * (1/(n-3)^(1/2));
z2 = z + tcdf(1-a/2, n) * (1/(n-3)^(1/2));
ro1 = tanh(z1)
ro2 = tanh(z2)
# ----------------------------------------------

# -------------- [Четвертое задание] --------------
# Для X построить эмпирическую кривую плотности
# распределения, разбив интервал (X(1), X(n)) на 10
# интервалов. На этом же графике изобразить
# теоретическую кривую

# Строим теоретическую кривую плотности распределения:
Ypt = normpdf(X);

# Строим эмпирическую кривую плотности распределения:
j = 1;
Xe = [0 0 0 0 0 0 0 0 0 0];
for i = 1:18:n
  Xe(j) = X(i);
  j++;
endfor
Ype = normpdf(Xe);

# Прорисовываем график:
#plot(X, Yt, Xe, Ye)
#grid(&quot;on&quot;)
# -------------------------------------------------

# -------------- [Пятое задание] --------------
# Для X построить эмпирическую интегральную функцию
# распределения и теоретическую.

function tmp = xb(u, n)
  if(u&lt;0)
    tmp = 0;
  else
    tmp = 1 / n;
  endif
endfunction

function temp = fb(u, X, n)
  tmp = 0;
  for i = 1:n
    tmp += xb(u - X(i), n);
  endfor
  temp = tmp;
endfunction

# Строим эмпирическую кривую
for i = 1:n
  Yie(i) = fb(X(i), X, n);
endfor

# Строим теоретическую кривую
Yit = normcdf(X);

# Прописовываем график
#plot(X, Ye, X, Yt)
#grid(&quot;on&quot;)
# ---------------------------------------------

# -------------- [Шестое задание] --------------
# Проверить гипотезы: о величине среднего, дисперсии,
# о нормальном законе распределения по Пирсону
# и по Колмогорову

# Проверка гипотезы о величине среднего:
Sx = sqrt(Sx2/n);
t = (Xsr - a)/Sx;
tKrit = tcdf(1-(a/2), n-1);
disp(&quot;Выборка X (о величине среднего):&quot;);
if(tKrit&gt;t)
  disp(&quot;Гипотеза отклоняется&quot;);
else
  disp(&quot;Гипотеза не отклоняется&quot;);
endif
Sy = sqrt(Sy2/n);
t = (Ysr - a)/Sy;
disp(&quot;Выборка Y (о величине среднего):&quot;);
if(tKrit&gt;t)
  disp(&quot;Гипотеза отклоняется&quot;);
else
  disp(&quot;Гипотеза не отклоняется&quot;);
endif

# Проверка гипотезы о величине дисперсии:
HIx2 = n*Sx2/s;
HIy2 = n*Sy2/s;
HIv2 = chi2cdf(a, n-1);
disp(&quot;Выборка X (о величине дисперсии):&quot;);
if(HIx2&gt;HIv2)
  disp(&quot;Гипотеза отклоняется&quot;);
else
  disp(&quot;Гипотеза не отклоняется&quot;);
endif
disp(&quot;Выборка Y (о величине дисперсии):&quot;);
if(HIy2&gt;HIv2)
  disp(&quot;Гипотеза отклоняется&quot;);
else
  disp(&quot;Гипотеза не отклоняется&quot;);
endif

# Проверка гипотезы о нормальном законе
# распределения по Пирсону (хи-квадрат)
function tmp = Pi(Xsr, Sx2)
  tmp = ((((i+1)*18) - Xsr)/(sqrt(Sx2))) - (((i*18) - Xsr)/(sqrt(Sx2)));
endfunction

HI2Xe = 0;
HI2Ye = 0;
for i = 1:9
  HI2Xe += (18 - 18 * Pi(Xsr, Sx2))^2 / (18 * Pi(Xsr, Sx2));
  HI2Ye += (18 - 18 * Pi(Ysr, Sy2))^2 / (18 * Pi(Ysr, Sy2));
endfor
HI2T = chi2cdf(a, n-3);
disp(&quot;Выборка X (о нормальном законе по Пирсону):&quot;);
if(HI2Xe&lt;HI2T)
  disp(&quot;Гипотеза не отклоняется&quot;);
else
  disp(&quot;Гипотеза отклоняется&quot;);
endif;
disp(&quot;Выборка Y (о нормальном законе по Пирсону):&quot;);
if(HI2Ye&lt;HI2T)
  disp(&quot;Гипотеза не отклоняется&quot;);
else
  disp(&quot;Гипотеза отклоняется&quot;);
endif

# Проверка гипотезы о нормальном законе
# распределения по Колмогорову:
Dnx1 = [0 0 0 0 0 0 0 0 0];
Dny1 = [0 0 0 0 0 0 0 0 0];
for i = 1:9
  Dnx1(i) += normcdf(Xe(i)) - fb((Sx2 * 0.8 * (j - 4) + Xsr), X, n) - fb((Sx2 * 0.8 * (j - 5) + Xsr), X, n);
  Dny1(i) += normcdf(Xe(i)) - fb((Sy2 * 0.8 * (j - 4) + Ysr), Y, n) - fb((Sy2 * 0.8 * (j - 5) + Ysr), Y, n);
endfor
Dnx = max(Dnx1);
Dny = max(Dny1);
l = 1.36;
Dnx *= sqrt(n);
Dny *= sqrt(n);
disp(&quot;Выборка X (по Колмогорову):&quot;);
if(Dnx&lt;l)
  disp(&quot;Гипотеза не отклоняется&quot;);
else
  disp(&quot;Гипотеза отклоняется&quot;);
endif
disp(&quot;Выборка Y (по Колмогорову):&quot;);
if(Dny&lt;l)
  disp(&quot;Гипотеза не отклоняется&quot;);
else
  disp(&quot;Гипотеза отклоняется&quot;);
endif
# ----------------------------------------------

# -------------- [График к 4-ому и 5-ому заданию] --------------
plot(X, Ypt, Xe, Ype, X, Yie, X, Yit)
legend(&#039;boxon&#039;)
legend(&quot;4 - Teoreticheskaya&quot;, &quot;4 - Empiricheskaya&quot;, &quot;5 - Empiricheskaya&quot;, &quot;5 - Teoreticheskaya&quot;, 2)
grid(&quot;on&quot;)
# --------------------------------------------------------------</code></pre></div><p>Спасибо всем, кто помогал выполнить данную работу. <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /></p>]]></content>
			<author>
				<name><![CDATA[Osanve]]></name>
				<uri>https://linuxforum.ru/profile.php?id=14375</uri>
			</author>
			<updated>2011-06-07T09:36:12Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=185817#p185817</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Octave и мат.статистика]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=184708#p184708" />
			<content type="html"><![CDATA[<p>По данной формуле вычисляется график плотности нормального распределения (т.к. не знаю как сюда поместить формулы, взял изображение с сайта. Не понимаю для чего они дописали right, просто в оригинальной формуле его нет (смотрю по учебнику Гмурмана - Теория вероятностей и математическая статистика)):<br /><span class="postimg"><img src="http://www.nsu.ru/matlab/Exponenta_RU/soft/Mathcad/UsersGuide/chapter13/images13/f13.gif" alt="http://www.nsu.ru/matlab/Exponenta_RU/soft/Mathcad/UsersGuide/chapter13/images13/f13.gif" /></span></p><p>Как я понял, то для нахождения эмпирической кривой требуется найти значения функции только в некоторых точках, а потом построить ломаную. Но т.к. сам полностью не разобрался - взял за основу уже сданную работу (выкладывал выше), где написан программный модуль на функцию xb со следующей логикой работы: если переданный параметр меньше нуля, то на выходе 0, иначе на выходе 1/n, где n - объем выборки<br />Определена функция fb, которая возвращает сумму возвращаемых значений функцией xb, которой передается параметр ввиде разницы u - Xi, где u - параметр, переданный функции fb, а Xi - i-ый элемент выборки X.<br />Определен вектор t (зависит от j, представляющей собой арифметическую прогрессию 1:1:10), который определяется как произведение выборочного среднеквадратичного отклонения, коэффициента шага разбиения и j-5 с дальнейшим вычитанием из этого произведения выборочного среднего.<br />Сама функция для построения графика возвращает сумму разности произведений:<br />&nbsp; &nbsp; произведение №1: (fb(t(j+1)) - fb(t(j)))*(xb(w-t(j)))<br />&nbsp; &nbsp; произведение №2: xb(w-t(j+1))*(n/(k*Sx))<br />&nbsp; &nbsp; &nbsp; &nbsp; где j - счетчик (1..9) итераций суммы, w - параметр, передаваемый функции fx (данная функция), n - объем выборки, k - коэффициент шага разбиения, Sx - выборочное среднеквадратичное отклонение</p>]]></content>
			<author>
				<name><![CDATA[Osanve]]></name>
				<uri>https://linuxforum.ru/profile.php?id=14375</uri>
			</author>
			<updated>2011-06-02T13:10:45Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=184708#p184708</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Octave и мат.статистика]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=184541#p184541" />
			<content type="html"><![CDATA[<p>А можешь написать нужные функции в виде формул?</p>]]></content>
			<author>
				<name><![CDATA[Vascom]]></name>
				<uri>https://linuxforum.ru/profile.php?id=5339</uri>
			</author>
			<updated>2011-06-02T07:22:56Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=184541#p184541</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Octave и мат.статистика]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=184531#p184531" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Vascom пишет:</cite><blockquote><p>Ну и где здесь нужна какая-то арифметическая прогрессия Xe?</p></blockquote></div><p>Спасибо, помогло.</p><p>Мне удалось добиться того, чтобы выводилась теоретическая кривая плотности распределения нормированного вектора.<br />Никак не могу понять, что требуется сделать с функцией для эмпирической кривой, чтобы она тоже выводилась. В указанном выше примере курсовой писались три своих функции, которые я переписал для Octave (мне кажется переписал правильно), других способов я не знаю, а гугл выдает что-то невнятное <img src="https://linuxforum.ru/img/smilies/ac.gif" alt="ac" /></p>]]></content>
			<author>
				<name><![CDATA[Osanve]]></name>
				<uri>https://linuxforum.ru/profile.php?id=14375</uri>
			</author>
			<updated>2011-06-02T06:36:13Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=184531#p184531</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Octave и мат.статистика]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=184515#p184515" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>-- Function File:  normpdf (X, M, S)
     For each element of X, compute the probability density function
     (PDF) at X of the normal distribution with mean M and standard
     deviation S.

     Default values are M = 0, S = 1</code></pre></div><p>Ну и где здесь нужна какая-то арифметическая прогрессия Xe?</p>]]></content>
			<author>
				<name><![CDATA[Vascom]]></name>
				<uri>https://linuxforum.ru/profile.php?id=5339</uri>
			</author>
			<updated>2011-06-02T06:03:16Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=184515#p184515</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Octave и мат.статистика]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=184488#p184488" />
			<content type="html"><![CDATA[<p>Xe - вектор, представляющий собой арифметическую прогрессию, который применяется для расчета координаты Ye и Yt и для построения обоих кривых. X - это нормированный вектор, который также применяется для расчета координат Ye и Yt (в функции используются оба вектора).<br />Если в функцию fEmp не передавать Xe, а в функции normpdf заменить аргумент Xe на X, то получается следующее:<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><p><span class="postimg"><img src="http://img855.imageshack.us/img855/2268/201106020827451280x800s.png" alt="http://img855.imageshack.us/img855/2268/201106020827451280x800s.png" /></span></p></div></div><p>При этом fEmp будет выглядеть следующим образом (другие две функции не изменялись):<br /></p><div class="codebox"><pre><code># Функция для построения эмпирической кривой
# плотности распределения:
function y = fEmp(x, Sx2, Xsr, n)
  tmp = 0;
  for i = 1:9
    tmp += (fb(sqrt(Sx2)*0.8*(i-4)+Xsr, n, x) - fb(sqrt(Sx2)*0.8*(i-5)+Xsr, n, x))*(xb(x-(sqrt(Sx2)*0.8*(i-5)+Xsr), n)-xb(x-(sqrt(Sx2)*0.8*(i-4)+Xsr), n))*(n/(0.8*sqrt(Sx2)));
  endfor
  y = tmp;
endfunction</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Osanve]]></name>
				<uri>https://linuxforum.ru/profile.php?id=14375</uri>
			</author>
			<updated>2011-06-02T04:43:08Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=184488#p184488</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Octave и мат.статистика]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=184305#p184305" />
			<content type="html"><![CDATA[<p>Ну гляди, здесь<br />plot(Xe, Yt, Xe, Ye)<br />да, надо использовать Xe.<br />Но здесь-то зачем?<br />Ye = fEmp(Xe, Sx2, Xsr, n, X);<br />Yt = normpdf(Xe, Xsr, sqrt(Sx2));</p><p>Получается ты строишь кривую плотности распределения для вектора Xe, который равен 0 1 2 3 4 5<br />Понятно?</p>]]></content>
			<author>
				<name><![CDATA[Vascom]]></name>
				<uri>https://linuxforum.ru/profile.php?id=5339</uri>
			</author>
			<updated>2011-06-01T08:32:41Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=184305#p184305</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Octave и мат.статистика]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=184303#p184303" />
			<content type="html"><![CDATA[<p>X - нормированый вектор. Xe - координата по х для графика плотности распределения. Применяется для расчета Ye и Yt из-за того, что обе кривые должны быть на одном графике. Либо я вас неправильно понял.<br />Искал именно по описанию, но normpdf подходит как для pnorm, так и для dnorm, имхо.</p>]]></content>
			<author>
				<name><![CDATA[Osanve]]></name>
				<uri>https://linuxforum.ru/profile.php?id=14375</uri>
			</author>
			<updated>2011-06-01T08:19:15Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=184303#p184303</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Octave и мат.статистика]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=184293#p184293" />
			<content type="html"><![CDATA[<p>В целом это я понял. Только не понял зачем ты используешь Xe вместо X для вычисления Ye и Yt.</p><p>Снова, Octave не аналог MathCad. Не факт, что там есть такая же функция. Читай описание функции в маткаде и ищи в описании октавы аналог.</p>]]></content>
			<author>
				<name><![CDATA[Vascom]]></name>
				<uri>https://linuxforum.ru/profile.php?id=5339</uri>
			</author>
			<updated>2011-06-01T07:17:44Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=184293#p184293</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Octave и мат.статистика]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=184290#p184290" />
			<content type="html"><![CDATA[<p>Ye и Yt вычисляются для построения эмпирической и теоретической кривой плотности распределения соответственно.<br />Для вычисления Yt взял функцию normpdf (я так понял, что это аналог функции dnorm в MathCad).<br />Для вычисления Ye писал свою функцию по аналогии с уже сданным курсовиком, сделанным в MathCad (<a href="http://dl.dropbox.com/u/20415838/%D0%BE%D1%82%D1%87%D0%B5%D1%82%20%D0%BA%D1%83%D1%80%D1%81%D0%B0%D1%87%20%D0%A2%D0%92%D0%B8%D0%9C%D0%A1.pdf">http://dl.dropbox.com/u/20415838/%D0%BE … %D0%A1.pdf</a>)</p><p>Также возник вопрос какой аналог у функции pnorm в Octave?</p>]]></content>
			<author>
				<name><![CDATA[Osanve]]></name>
				<uri>https://linuxforum.ru/profile.php?id=14375</uri>
			</author>
			<updated>2011-06-01T07:10:38Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=184290#p184290</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Octave и мат.статистика]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=184285#p184285" />
			<content type="html"><![CDATA[<p>Если Xe это для построения графика, то зачем ты их используешь для вычисления Ye и Yt? Я так понимаю, что для этого тебе надо использовать изначальный массив случайных величин X или какую-то функцию от него (разбитие на участки или что-то около того).</p><p>Я не вникал глубоко в твою функцию, какая-то она монстроузная, так что не могу ответить на второй вопрос.</p>]]></content>
			<author>
				<name><![CDATA[Vascom]]></name>
				<uri>https://linuxforum.ru/profile.php?id=5339</uri>
			</author>
			<updated>2011-06-01T07:02:34Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=184285#p184285</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Octave и мат.статистика]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=184280#p184280" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Vascom пишет:</cite><blockquote><p>У тебя Xe = 0:1:5;<br />это что вообще такое? Если интервалы то их должно быть 10. А если данные для которых надо построить кривую плотности распределения, то конечно у тебя будет горизонтальная прямая с такими исходными данными.</p></blockquote></div><p>А как правильно надо задать? Это данные по координате x для построения графика.</p><div class="quotebox"><cite>Vascom пишет:</cite><blockquote><p>По твоей рукописной функции ни чего не строится, потому что Ye у тебя представляет собой одну точку.</p></blockquote></div><p>Т.е. я так понимаю определение координаты y надо поставить в цикл? Или можно использовать оператор &quot;.&quot; перед вызовом функции?</p>]]></content>
			<author>
				<name><![CDATA[Osanve]]></name>
				<uri>https://linuxforum.ru/profile.php?id=14375</uri>
			</author>
			<updated>2011-06-01T06:56:11Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=184280#p184280</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Octave и мат.статистика]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=184177#p184177" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Vascom пишет:</cite><blockquote><p>R - это язык программирования. Матлаб и Octave - несколько другое. А уж тем более Mathcad</p></blockquote></div><p>Я бы не назвал R именно языком программирования. То есть, конечно, это язык программирования - но по той же логике и matlab - язык программирования.<br />R - среда для статистических расчётов. Логично, что у неё свой синтаксис и свой язык программирования... Есть и много оболочек для R.</p>]]></content>
			<author>
				<name><![CDATA[Battle Coder]]></name>
				<uri>https://linuxforum.ru/profile.php?id=11059</uri>
			</author>
			<updated>2011-05-31T15:43:51Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=184177#p184177</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Octave и мат.статистика]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=183739#p183739" />
			<content type="html"><![CDATA[<p>У тебя Xe = 0:1:5;<br />это что вообще такое? Если интервалы то их должно быть 10. А если данные для которых надо построить кривую плотности распределения, то конечно у тебя будет горизонтальная прямая с такими исходными данными.</p><p>По твоей рукописной функции ни чего не строится, потому что Ye у тебя представляет собой одну точку. Вот она и строится, да и то она нулю равна.</p><p>В общем как-то всё плохо у тебя в четвёртом задании.</p>]]></content>
			<author>
				<name><![CDATA[Vascom]]></name>
				<uri>https://linuxforum.ru/profile.php?id=5339</uri>
			</author>
			<updated>2011-05-30T10:03:56Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=183739#p183739</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Octave и мат.статистика]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=183224#p183224" />
			<content type="html"><![CDATA[<p>И снова прошу вашей помощи.</p><p>Имеется код:<br /></p><div class="codebox"><pre><code># -------------- [Четвертое задание] --------------
# Для X построить эмпирическую кривую плотности
# распределения, разбив интервал (X(1), X(n)) на 10
# интервалов. На этом же графике изобразить
# теоретическую кривую

function tmp = xb(u, n)
  if (u&lt;0)
    tmp = 0;
  else
    tmp = 1/n;
  endif
endfunction

function tmp = fb(u, n, X)
  temp = 0;
  for i = 1:n
    temp += xb(u - X(i), n);
  endfor
  tmp = temp;
endfunction

# Функция для построения эмпирической кривой
# плотности распределения:
function y = fEmp(x, Sx2, Xsr, n, X)
  tmp = 0;
  for i = 1:9
    tmp += (fb(sqrt(Sx2)*0.8*(i-4)+Xsr, n, X) - fb(sqrt(Sx2)*0.8*(i-5)+Xsr, n, X))*(xb(x-(sqrt(Sx2)*0.8*(i-5)+Xsr), n)-xb(x-(sqrt(Sx2)*0.8*(i-4)+Xsr), n))*(n/(0.8*sqrt(Sx2)));
  endfor
  y = tmp;
endfunction

# Строим эмпирическую кривую плотности распределения:
Xe = 0:1:5;
Ye = fEmp(Xe, Sx2, Xsr, n, X);

# Строим теоретическую кривую плотности распределения:
Yt = normpdf(Xe, Xsr, sqrt(Sx2));

# Прорисовываем график:
plot(Xe, Yt, Xe, Ye)
grid(&quot;on&quot;)
# -------------------------------------------------</code></pre></div><p>Формулы взяты из учебника. Некоторые переменные были определены выше.</p><p>Собственно проблема в том, что график, строящийся функцией normpdf, представляет собой прямую линию, а график, строящийся с помощью самописной функции fEmp вообще не выводится.</p><p>К сожалению никак не могу понять в чем проблема.</p><p>Заранее спасибо.</p><p>P.S. На всякий случай выкладываю полностью скрипт, который есть на данный момент:<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code># -------------- [Первое задание] --------------
# Для выборок X, Y найти оценки: выборочное среднее
# выборочная дисперсия, оценка центрального момента
# порядка 3 и 4, коэффициент эксцесса, коэффициент
# ассимитрии, оценка корреляционного момента, оценка
# коэффициента корреляции, размах выборки X и Y

n = 180; # Объем выборки
m = 0; # Коэффициент сдвига
s = 1; # Коэффициент масштаба
a = 0.05; # Уровень значимости

# Формируем выборки с нормальным распределением:
X = normrnd(m, s, n, 1);
Y = normrnd(m, s, n, 1);

# Находим выборочное среднее:
Xsr = mean(X)
Ysr = mean(Y)

# Находим выборочную дисперсию:
Sx2 = 0;
Sy2 = 0;
for i = 1:n
  Sx2 += X(i) - Xsr;
  Sy2 += Y(i) - Ysr;
endfor
Sx2 /= n - 1
Sy2 /= n - 1

# Находим оценку центрального момента порядка 3 и 4:
M3X = 0;
M3Y = 0;
M4X = 0;
M4Y = 0;
for i = 1:n
  M3X += (X(i) - Xsr)^3;
  M3Y += (Y(i) - Ysr)^3;
  M4X += (X(i) - Xsr)^4;
  M4Y += (Y(i) - Ysr)^4;
endfor
M3X /= n - 1
M3Y /= n - 1
M4X /= n - 1
M4Y /= n - 1

# Находим коэффициент эксцесса:
Ex = (M4X / Sx2^2) - 3
Ey = (M4Y / Sy2^2) - 3

# Находим коэффициент ассимитрии:
Sx = M3X / Sx2^(3/2)
Sy = M3Y / Sy2^(3/2)

# Находим оценку корреляционного момента:
Rxy = 0;
for i = 1:n
  Rxy += (X(i) - Xsr) * (Y(i) - Ysr);
endfor
Rxy /= n - 1

# Находим оценку коэффициента корреляции:
ro = Rxy / (Sx2^(1/2) * Sy2^(1/2))

# Находим размах выборки:
wX = X(n) - X(1)
wY = Y(n) - Y(1)
# ----------------------------------------------

# -------------- [Второе задание] --------------
# Для оценок по выбоке X построить доверительные
# доверительные интервалы для математического
# ожидания (считая дисперсию известной и
# неизвестной) и дисперсии

# Находим доверительный интервал для математического ожидания
# в случае с известной дисперсией для выборки X:
dims1 = Xsr - ((Sx2^(1/2) / n^(1/2)) * norminv(1-a/2, m, s))
dims2 = Xsr + ((Sx2^(1/2) / n^(1/2)) * norminv(1-a/2, m, s))

# Находим доверительный интервал для математического ожидания
# в случае с неизвестной дисперсией для выборки X:
dimns1 = Xsr - ((Sx2^(1/2) / n^(1/2)) * tinv(1-a/2, n-1))
dimns2 = Xsr + ((Sx2^(1/2) / n^(1/2)) * tinv(1-a/2, n-1))

# Находим доверительный интервал для дисперсии
# для выборки X:
dis1 = (n-1)*Sx2/chi2inv(1-a/2, n-1)
dis2 = (n-1)*Sx2/chi2inv(a/2, n-1)
# ----------------------------------------------

# -------------- [Третье задание] --------------
# По выборкам X, Y построить доверительный интервал
# для коэффициента корреляции

# Определяем доверительный интервал по коэффициенту
# корреляции для выборок X, Y:
z = (1/2)*log((1+Rxy)/(1-Rxy));
z1 = z - tinv(1-a/2, n) * (1/(n-3)^(1/2));
z2 = z + tinv(1-a/2, n) * (1/(n-3)^(1/2));
ro1 = tanh(z1)
ro2 = tanh(z2)
# ----------------------------------------------

# -------------- [Четвертое задание] --------------
# Для X построить эмпирическую кривую плотности
# распределения, разбив интервал (X(1), X(n)) на 10
# интервалов. На этом же графике изобразить
# теоретическую кривую

function tmp = xb(u, n)
  if (u&lt;0)
    tmp = 0;
  else
    tmp = 1/n;
  endif
endfunction

function tmp = fb(u, n, X)
  temp = 0;
  for i = 1:n
    temp += xb(u - X(i), n);
  endfor
  tmp = temp;
endfunction

# Функция для построения эмпирической кривой
# плотности распределения:
function y = fEmp(x, Sx2, Xsr, n, X)
  tmp = 0;
  for i = 1:9
    tmp += (fb(sqrt(Sx2)*0.8*(i-4)+Xsr, n, X) - fb(sqrt(Sx2)*0.8*(i-5)+Xsr, n, X))*(xb(x-(sqrt(Sx2)*0.8*(i-5)+Xsr), n)-xb(x-(sqrt(Sx2)*0.8*(i-4)+Xsr), n))*(n/(0.8*sqrt(Sx2)));
  endfor
  y = tmp;
endfunction

# Строим эмпирическую кривую плотности распределения:
Xe = 0:1:5;
Ye = fEmp(Xe, Sx2, Xsr, n, X);

# Строим теоретическую кривую плотности распределения:
Yt = normpdf(Xe, Xsr, sqrt(Sx2));

# Прорисовываем график:
plot(Xe, Yt, Xe, Ye)
grid(&quot;on&quot;)
# -------------------------------------------------

# -------------- [Пятое задание] --------------
# ---------------------------------------------

# -------------- [Шестое задание] --------------
# ----------------------------------------------</code></pre></div></div></div>]]></content>
			<author>
				<name><![CDATA[Osanve]]></name>
				<uri>https://linuxforum.ru/profile.php?id=14375</uri>
			</author>
			<updated>2011-05-28T12:00:33Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=183224#p183224</id>
		</entry>
</feed>
