Работа с вероятностными распределениями

Вероятностные распределения являются теоретическими распределениями на основе предположений об исходной совокупности. Распределения определяют вероятность событию, что случайная переменная имеет определенное, дискретное значение или находится в пределах заданной области непрерывных значений.

Statistics and Machine Learning Toolbox™ предлагает несколько способов работать с вероятностными распределениями.

  • Объекты Распределения вероятностей — Создают объект вероятностного распределения путем строения распределения вероятности к выборочным данным или настройкой значений параметров. Затем используйте объектные функции, чтобы вычислять распределение, сгенерировать случайные числа, и так далее.

  • Приложения и Интерактивные пользовательские интерфейсы — В интерактивном режиме соответствуют и исследуют вероятностные распределения при помощи приложения Distribution Fitter, пользовательского интерфейса Probability Distribution Function и инструмента генерации случайных чисел (randtool)

  • Специфичные для распределения Функции и Типовые Функции распределения — Эти функции полезны для генерации случайных чисел, вычислительной итоговой статистики в цикле или скрипте и передаче cdf или PDF как указатель на функцию к другой функции. Можно также использовать эти функции, чтобы выполнить расчеты на массивах значений параметров, а не одном наборе параметров.

    • Используйте специфичные для распределения функции, такой как normpdf и normcdf, с заданными параметрами распределения.

    • Используйте типовые функции распределения (cdf, icdf, pdf, и random) с заданным именем распределения и параметрами.

Для списка распределений, поддержанных Statistics and Machine Learning Toolbox, смотрите Поддерживаемые Распределения.

Объекты Распределения вероятностей

Объекты вероятностного распределения позволяют вам строить распределение вероятности к выборочным данным или задавать распределение настройкой значений параметров. Можно затем выполнить множество исследований объекта распределения.

Создайте Объекты Распределения вероятностей

Оцените параметры вероятностного распределения от выборочных данных путем подбора объекта распределения вероятностей к использованию данных fitdist. Можно соответствовать одному заданному параметрическому или непараметрическому распределению к выборочным данным. Можно также соответствовать нескольким распределениям того же типа к выборочным данным на основе сгруппированных переменных. Для большинства распределений, fitdist оценка наибольшего правдоподобия (MLE) использования, чтобы оценить параметры распределения от выборочных данных. Для получения дополнительной информации и дополнительные опции синтаксиса, смотрите fitdist.

В качестве альтернативы можно создать объект вероятностного распределения с заданным использованием значений параметров makedist.

Работа с Объектами Распределения вероятностей

Если вы создаете объект вероятностного распределения, можно использовать объектные функции для:

  • Вычислите доверительные интервалы для параметров распределения (paramci).

  • Вычислите итоговую статистику, включая среднее значение (meanмедианаmedian), межквартильный размах (iqrДисперсияvar), и стандартное отклонение (std).

  • Оцените функцию плотности вероятности (pdf).

  • Оцените кумулятивную функцию распределения (cdf) или обратная кумулятивная функция распределения (icdf).

  • Вычислите отрицательную логарифмическую правдоподобность (negloglik) и профилируйте функцию правдоподобия (proflik) для распределения.

  • Сгенерируйте случайные числа от распределения (random).

  • Обрежьте распределение до заданных нижних и верхних пределов (truncate).

Сохраните объект вероятностного распределения

Чтобы сохранить ваше вероятностное распределение возражают против.MAT файла:

  • На панели инструментов нажмите Save Workspace. Эта опция сохраняет все переменные в вашей рабочей области, включая любые объекты вероятностного распределения.

  • В браузере рабочей области щелкните правой кнопкой по вероятностному распределению, возражают и выбирают Save as. Эта опция сохраняет только выбранный объект вероятностного распределения, не другие переменные в вашей рабочей области.

В качестве альтернативы можно избавить объект вероятностного распределения непосредственно от командной строки при помощи save функция. save позволяет вам выбрать имя файла и указать, что вероятностное распределение возражает, что вы хотите сохранить. Если вы не задаете объект (или другая переменная), MATLAB® сохраняет все переменные в вашей рабочей области, включая любые объекты вероятностного распределения, к заданному имени файла. Для получения дополнительной информации и дополнительные опции синтаксиса, смотрите save.

Анализируйте распределение Используя Объекты Распределения вероятностей

В этом примере показано, как использовать объекты вероятностного распределения выполнить многоступенчатый анализ подходящего распределения.

Анализ иллюстрирует как к:

  • Стройте распределение вероятности к выборочным данным, которые содержат классы экзамена 120 студентов при помощи fitdist.

  • Вычислите среднее значение классов экзамена при помощи mean.

  • Постройте гистограмму данных о классе экзамена, наложенных с графиком PDF подходящего распределения, при помощи plot и pdf.

  • Вычислите контур для лучших 10 процентов студенческих классов при помощи icdf.

  • Сохраните подходящий объект вероятностного распределения при помощи save.

Загрузите выборочные данные.

load examgrades

Выборочные данные содержат 120 5 матрица классов экзамена. Экзамены оцениваются по шкале от 0 до 100.

Создайте вектор, содержащий первый столбец данных о классе экзамена.

x = grades(:,1);

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

pd = fitdist(x,'Normal')
pd = 
  NormalDistribution

  Normal distribution
       mu = 75.0083   [73.4321, 76.5846]
    sigma =  8.7202   [7.7391, 9.98843]

fitdist возвращает объект вероятностного распределения, pd, из типа NormalDistribution. Этот объект содержит предполагаемые значения параметров, mu и sigma, для подходящего нормального распределения. Интервалы рядом с оценками параметра составляют 95% доверительных интервалов для параметров распределения.

Вычислите среднее значение классов экзамена студентов с помощью подходящего объекта распределения, pd.

m = mean(pd)
m = 75.0083

Среднее значение классов экзамена равно mu параметр оценивается fitdist.

Постройте гистограмму классов экзамена. Наложите график подходящей PDF визуально сравнить подходящее нормальное распределение с фактическими классами экзамена.

x_pdf = [1:0.1:100];
y = pdf(pd,x_pdf);
 
figure
histogram(x,'Normalization','pdf')
line(x_pdf,y)

Figure contains an axes object. The axes object contains 2 objects of type histogram, line.

PDF подходящего распределения следует за той же формой как гистограмма классов экзамена.

Определите контур для верхних 10 процентов студенческих классов экзамена при помощи обратной кумулятивной функции распределения (icdf). Этот контур эквивалентен значению, в котором cdf вероятностного распределения равен 0,9. Другими словами, 90 процентов классов экзамена меньше чем или равны граничному значению.

A = icdf(pd,0.9)
A = 86.1837

На основе подходящего распределения 10 процентов студентов получили оценку экзамена, больше, чем 86,1837. Эквивалентно, 90 процентов студентов получили оценку экзамена, меньше чем или равную 86,1837.

Сохраните строившее распределение вероятности, pd, как файл с именем myobject.mat.

save('myobject.mat','pd')

Приложения и интерактивные пользовательские интерфейсы

Приложения и пользовательские интерфейсы обеспечивают интерактивный подход к работе с параметрическими и непараметрическими вероятностными распределениями.

  • Используйте приложение Distribution Fitter, чтобы в интерактивном режиме соответствовать распределению к выборочным данным и экспортировать объект вероятностного распределения в рабочую область.

  • Используйте пользовательский интерфейс Probability Distribution Function, чтобы визуально исследовать эффект на PDF и cdf изменения значений параметра распределения.

  • Используйте пользовательский интерфейс Генерации случайных чисел (randtool) в интерактивном режиме сгенерировать случайные числа от вероятностного распределения с заданными значениями параметров и экспортировать их в рабочую область.

Приложение Distribution Fitter

Приложение Distribution Fitter позволяет вам в интерактивном режиме строить распределение вероятности к своим данным. Можно отобразить различные типы графиков, вычислить доверительные границы и оценить припадок данных. Можно также исключить данные из подгонки. Можно сохранить данные и экспортировать подгонку к рабочей области как объект вероятностного распределения выполнить последующий анализ.

Загрузите приложение Distribution Fitter от вкладки Apps, или путем ввода distributionFitter в Командном окне. Для получения дополнительной информации смотрите, что Данные модели Используют Приложение Distribution Fitter.

Default view of the Distribution Fitter app

Инструмент Probability Distribution Function

Пользовательский интерфейс Probability Distribution Function визуально исследует вероятностные распределения. Можно загрузить пользовательский интерфейс Probability Distribution Function путем ввода disttool в Командном окне.

Default view of the Probability Distribution Function Tool

Инструмент генерации случайных чисел

Пользовательский интерфейс Генерации случайных чисел генерирует случайные данные из заданного распределения и экспортирует результаты в вашу рабочую область. Можно использовать этот инструмент, чтобы исследовать эффекты изменяющихся параметров и объема выборки на распределениях.

Пользовательский интерфейс Генерации случайных чисел позволяет вам устанавливать значения параметров для распределения и изменять их нижние и верхние границы; чертите другую выборку от того же распределения, с помощью того же размера и параметров; и экспортируйте текущую случайную выборку в свою рабочую область для использования в последующем анализе. Диалоговое окно позволяет вам обеспечить имя для выборки.

Default view of the Random Number Generation Tool

Специфичные для распределения функции и типовые функции распределения

Используя специфичные для распределения функции и типовые функции распределения полезно для генерации случайных чисел, вычислительной итоговой статистики в цикле или скрипте и передаче cdf или PDF как указатель на функцию к другой функции. Можно также использовать эти функции, чтобы выполнить расчеты на массивах значений параметров, а не одном наборе параметров.

  • Специфичные для распределения функции — Некоторые поддерживаемые распределения имеют специфичные для распределения функции. Эти функции используют следующие сокращения, как в normpdf, normcdf, norminv, normstat, normfit, normlike, и normrnd:

    • pdf — Функции плотности вероятности

    • cdf — Кумулятивные функции распределения

    • inv — Обратные кумулятивные функции распределения

    • stat — Функции статистики распределения

    • fit — Функции Distribution Fitter

    • like — Отрицательные функции логарифмической правдоподобности

    • rnd — Генераторы случайных чисел

  • Типовые функции распределения — Использование cdf, icdf, mle, pdf, и random с заданным именем распределения и параметрами.

    • cdf — Кумулятивная функция распределения

    • icdf — Обратная кумулятивная функция распределения

    • mle — Функция подбора кривой распределения

    • pdf — Функция плотности вероятности

    • random — Производящая функция случайных чисел

Анализируйте распределение Используя специфичные для распределения функции

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

Анализ иллюстрирует как к:

  • Стройте распределение вероятности к выборочным данным, которые содержат классы экзамена 120 студентов при помощи normfit.

  • Постройте гистограмму данных о классе экзамена, наложенных с графиком PDF подходящего распределения, при помощи plot и normpdf.

  • Вычислите контур для лучших 10 процентов студенческих классов при помощи norminv.

  • Сохраните предполагаемые параметры распределения при помощи save.

Можно выполнить тот же анализ с помощью объекта вероятностного распределения. Смотрите Анализируют Распределение Используя Объекты Распределения вероятностей.

Загрузите выборочные данные.

load examgrades

Выборочные данные содержат 120 5 матрица классов экзамена. Экзамены оцениваются по шкале от 0 до 100.

Создайте вектор, содержащий первый столбец данных о классе экзамена.

x = grades(:,1);

Соответствуйте нормальному распределению к выборочным данным при помощи normfit.

[mu,sigma,muCI,sigmaCI] = normfit(x)
mu = 75.0083
sigma = 8.7202
muCI = 2×1

   73.4321
   76.5846

sigmaCI = 2×1

    7.7391
    9.9884

normfit функция возвращает оценки параметров нормального распределения и 95% доверительных интервалов для оценок параметра.

Постройте гистограмму классов экзамена. Наложите график подходящей PDF визуально сравнить подходящее нормальное распределение с фактическими классами экзамена.

x_pdf = [1:0.1:100];
y = normpdf(x_pdf,mu,sigma);
 
figure
histogram(x,'Normalization','pdf')
line(x_pdf,y)

Figure contains an axes object. The axes object contains 2 objects of type histogram, line.

PDF подходящего распределения следует за той же формой как гистограмма классов экзамена.

Определите контур для верхних 10 процентов студенческих классов экзамена при помощи нормальной обратной кумулятивной функции распределения. Этот контур эквивалентен значению, в котором cdf вероятностного распределения равен 0,9. Другими словами, 90 процентов классов экзамена меньше чем или равны граничному значению.

A = norminv(0.9,mu,sigma)
A = 86.1837

На основе подходящего распределения 10 процентов студентов получили оценку экзамена, больше, чем 86,1837. Эквивалентно, 90 процентов студентов получили оценку экзамена, меньше чем или равную 86,1837.

Сохраните предполагаемые параметры распределения как файл с именем myparameter.mat.

save('myparameter.mat','mu','sigma')

Используйте функции распределения вероятностей в качестве указателя на функцию

В этом примере показано, как использовать функцию распределения вероятностей normcdf как указатель на функцию в тесте качества подгонки хи-квадрата (chi2gof).

Этот пример тестирует нулевую гипотезу, которую выборочные данные содержали во входном векторе, x, прибывает из нормального распределения параметрами µ и σ, равный среднему значению (mean) и стандартное отклонение (std) из выборочных данных, соответственно.

rng('default') % For reproducibility
x = normrnd(50,5,100,1);
h = chi2gof(x,'cdf',{@normcdf,mean(x),std(x)})
h = 0

Возвращенный результат h = 0 указывает на тот chi2gof не отклоняет нулевую гипотезу на 5%-м уровне значения по умолчанию.

Этот следующий пример иллюстрирует, как использовать функции распределения вероятностей в качестве указателя на функцию в сэмплере среза (slicesample). Пример использует normpdf сгенерировать случайную выборку 2 000 значений от стандартного нормального распределения и графики гистограмма получившихся значений.

rng('default') % For reproducibility
x = slicesample(1,2000,'pdf',@normpdf,'thin',5,'burnin',1000);
histogram(x)

Figure contains an axes object. The axes object contains an object of type histogram.

Гистограмма показывает это, при использовании normpdf, получившаяся случайная выборка имеет стандартное нормальное распределение.

Если вы передаете функцию распределения вероятностей для экспоненциального распределения PDF (exppdf) как указатель на функцию вместо normpdf, затем slicesample генерирует эти 2 000 случайных выборок от экспоненциального распределения со значением параметров по умолчанию µ, равного 1.

rng('default') % For reproducibility
x = slicesample(1,2000,'pdf',@exppdf,'thin',5,'burnin',1000);
histogram(x)

Figure contains an axes object. The axes object contains an object of type histogram.

Гистограмма показывает что получившаяся случайная выборка при использовании exppdf имеет экспоненциальное распределение.

Смотрите также

| | | |

Похожие темы