Визуализация априорных и апостериорных плотностей параметров байесовской линейной регрессионой модели
plot( или PosteriorMdl)plot( строит графики апостериорных или предшествующих распределений параметров в байесовской линейной регрессионой модели
PosteriorMdlPriorMdl) или PriorMdl, соответственно. plot добавляет подграфики для каждого параметра к одному рисунку и перезаписывает тот же рисунок при вызове plot несколько раз.
plot( строит графики апостериорных и предшествующих распределений на том же подграфике. PosteriorMdl,PriorMdl)plot использует сплошные синие линии для задних плотностей и штриховые красные линии для предыдущих плотностей.
plot(___, использует любой из комбинаций входных аргументов в предыдущих синтаксисах и дополнительные опции, заданные одним или несколькими аргументы пары "имя-значение". Для примера можно оценить апостериорную или предшествующую плотность, задав значения β и σ2, или выберите, какие распределения параметров необходимо включить в рисунок.Name,Value)
также возвращает значения параметров, которые pointsUsed = plot(___)plot используется для оценки плотностей на подграфиках.
[ также возвращает значения вычисленных плотностей.pointsUsed,posteriorDensity,priorDensity]
= plot(___)
Если вы задаете одну модель, то plot возвращает значения плотности в PosteriorDensity. В противном случае, plot возвращает апостериорные значения плотности в PosteriorDensity и предыдущие значения плотности в PriorDensity.
[ возвращает указатель на рисунок рисунка, содержащий распределения.pointsUsed,posteriorDensity,priorDensity,FigureHandle]
= plot(___)
Рассмотрим множественную линейную регрессионую модель, которая предсказывает реальный валовой национальный продукт США (GNPR) с использованием линейной комбинации индекса промышленного производства (IPI), общая занятость (E), и реальная заработная плата (WR).
Для всех , - серия независимых гауссовских нарушений порядка со средним значением 0 и отклонением .
Предположим, что эти предыдущие распределения:
. является вектором средств 4 на 1, и является масштабированной 4 на 4 положительно определенной ковариационной матрицей.
. и - форма и шкала, соответственно, обратного гамма- распределения.
Эти предположения и вероятность данных подразумевают нормальную-обратную-гамма-сопряженную модель.
Создайте нормально-обратную гамма-сопряженную предшествующую модель для параметров линейной регрессии. Задайте количество предикторов p и имена переменных.
p = 3; VarNames = ["IPI" "E" "WR"]; PriorMdl = bayeslm(p,'ModelType','conjugate','VarNames',VarNames);
PriorMdl является conjugateblm Байесовский объект линейной регрессионной модели, представляющий предшествующее распределение коэффициентов регрессии и отклонение нарушения порядка.
Постройте график предыдущих распределений.
plot(PriorMdl);

plot строит графики предельных предварительных распределений точки пересечения, коэффициентов регрессии и нарушения порядка отклонения.
Предположим, что среднее значение коэффициентов регрессии является и их масштабная ковариационная матрица
Кроме того, предшествующая шкала отклонения нарушения порядка составляет 0,01. Укажите предыдущую информацию с помощью записи через точку.
PriorMdl.Mu = [-20; 4; 0.001; 2]; PriorMdl.V = diag([1 0.001 1e-8 0.01]); PriorMdl.B = 0.01;
Запросите новый рисунок и постройте график предыдущего распределения.
plot(PriorMdl);

plot заменяет распределение тока рисунка на график предшествующего распределения нарушения порядка отклонения.
Загрузите набор данных Нельсона-Плоссера и создайте переменные для данных предиктора и отклика.
load Data_NelsonPlosser
X = DataTable{:,PriorMdl.VarNames(2:end)};
y = DataTable.GNPR;Оцените апостериорные распределения.
PosteriorMdl = estimate(PriorMdl,X,y,'Display',false);PosteriorMdl является conjugateblm объект модели, который содержит апостериорные распределения и .
Постройте график апостериорных распределений.
plot(PosteriorMdl);

Постройте график априорных и апостериорных распределений параметров на тех же подграфиках.
plot(PosteriorMdl,PriorMdl);

Рассмотрим регрессионую модель в График Предшествующих и Апостериорных распределениях.
Загрузите набор данных Нельсона-Плоссера, создайте сопряженную предыдущую модель по умолчанию, а затем оцените апостериор, используя первые 75% данных. Отключите отображение оценки.
p = 3; VarNames = ["IPI" "E" "WR"]; PriorMdl = bayeslm(p,'ModelType','conjugate','VarNames',VarNames); load Data_NelsonPlosser X = DataTable{:,PriorMdl.VarNames(2:end)}; y = DataTable.GNPR; d = 0.75; PosteriorMdlFirst = estimate(PriorMdl,X(1:floor(d*end),:),y(1:floor(d*end)),... 'Display',false);
Постройте график предыдущего распределения и апостериорного распределения отклонения нарушения порядка. Верните указатель на рисунок.
[~,~,~,h] = plot(PosteriorMdlFirst,PriorMdl,'VarNames','Sigma2');

h - указатель на рисунок для графика распределения. Если вы измените имя тега рисунка путем изменения Tag свойство, затем следующая plot вызов помещает все новые графики распределения на другой рисунок.
Измените имя указателя на рисунок на FirstHalfData использование записи через точку.
h.Tag = 'FirstHalfData';Оцените апостериорное распределение с помощью остальных данных. Задайте апостериорное распределение на основе конечных 25% данных в качестве предыдущего распределения.
PosteriorMdl = estimate(PosteriorMdlFirst,X(ceil(d*end):end,:),... y(ceil(d*end):end),'Display',false);
Постройте график апостериорного отклонения нарушения порядка на основе половины данных и всех данных к новому рисунку.
plot(PosteriorMdl,PosteriorMdlFirst,'VarNames','Sigma2');

Этот тип графика показывает эволюцию апостериорного распределения, когда вы включаете новые данные.
Рассмотрим регрессионую модель в График Предшествующих и Апостериорных распределениях.
Загрузите набор данных Нельсона-Плоссера и создайте сопряженную предыдущую модель по умолчанию.
p = 3; VarNames = ["IPI" "E" "WR"]; PriorMdl = bayeslm(p,'ModelType','conjugate','VarNames',VarNames); load Data_NelsonPlosser X = DataTable{:,PriorMdl.VarNames(2:end)}; y = DataTable.GNPR;
Постройте график предыдущих распределений. Запросите значения параметров, используемых для создания графиков, и их соответствующих плотностей.
[pointsUsedPrior,priorDensities1] = plot(PriorMdl);

pointsUsedPrior - массив ячеек 5 на 1 из 1 на 1000 числовых векторов, представляющий значения параметров, которые plot используется для построения графика соответствующих плотностей. Первый элемент соответствует точке пересечения, следующие три элемента соответствуют коэффициентам регрессии, а последний элемент соответствует отклонению нарушения порядка. priorDensities1 имеет те же размерности, что и pointsUsed и содержит соответствующие значения плотности.
Оцените апостериорное распределение. Отключите отображение оценки.
PosteriorMdl = estimate(PriorMdl,X,y,'Display',false);Постройте график апостериорных распределений. Запросите значения параметров, используемых для создания графиков, и их соответствующих плотностей.
[pointsUsedPost,posteriorDensities1] = plot(PosteriorMdl);

pointsUsedPost и posteriorDensities1 имеют те же размерности, что и pointsUsedPrior. The pointsUsedPost выход может отличаться от pointsUsedPrior. posteriorDensities1 содержит апостериорные значения плотности.
Постройте график априорных и апостериорных распределений. Запросите значения параметров, используемых для создания графиков, и их соответствующих плотностей.
[pointsUsedPP,posteriorDensities2,priorDensities2] = plot(PosteriorMdl,PriorMdl);

Все выходные значения имеют те же размерности, что и pointsUsedPrior. The posteriorDensities2 выход содержит апостериорные значения плотности. The priorDensities2 выходы содержат предыдущие значения плотности.
Подтвердите, что pointsUsedPP равно pointsUsedPost.
compare = @(a,b)sum(a == b) == numel(a); cellfun(compare,pointsUsedPost,pointsUsedPP)
ans = 5x1 logical array
1
1
1
1
1
Используемые точки эквивалентны.
Подтвердите, что апостериорные плотности одинаковы, но что предыдущие плотности не совпадают.
cellfun(compare,posteriorDensities1,posteriorDensities2)
ans = 5x1 logical array
1
1
1
1
1
cellfun(compare,priorDensities1,priorDensities2)
ans = 5x1 logical array
0
0
0
0
0
При построении графика только предыдущего распределения, plot оценивает предыдущие плотности в точках, которые дают четкий график предыдущего распределения. При построении графика как априорного, так и апостериорного распределения, plot предпочитает четко построить график апостериорной функции. Поэтому график может определить другой набор точек для использования.
Рассмотрим регрессионую модель в График Предшествующих и Апостериорных распределениях.
Загрузите набор данных Нельсона-Плоссера и создайте сопряженную предыдущую модель по умолчанию для коэффициентов регрессии и отклонения нарушения порядка. Затем оцените апостериорное распределение и получите сводную таблицу оценок из summarize.
p = 3; VarNames = ["IPI" "E" "WR"]; PriorMdl = bayeslm(p,'ModelType','conjugate','VarNames',VarNames); load Data_NelsonPlosser X = DataTable{:,PriorMdl.VarNames(2:end)}; y = DataTable.GNPR; PosteriorMdl = estimate(PriorMdl,X,y);
Method: Analytic posterior distributions
Number of observations: 62
Number of predictors: 4
Log marginal likelihood: -259.348
| Mean Std CI95 Positive Distribution
-----------------------------------------------------------------------------------
Intercept | -24.2494 8.7821 [-41.514, -6.985] 0.003 t (-24.25, 8.65^2, 68)
IPI | 4.3913 0.1414 [ 4.113, 4.669] 1.000 t (4.39, 0.14^2, 68)
E | 0.0011 0.0003 [ 0.000, 0.002] 1.000 t (0.00, 0.00^2, 68)
WR | 2.4683 0.3490 [ 1.782, 3.154] 1.000 t (2.47, 0.34^2, 68)
Sigma2 | 44.1347 7.8020 [31.427, 61.855] 1.000 IG(34.00, 0.00069)
summaryTbl = summarize(PosteriorMdl); summaryTbl = summaryTbl.MarginalDistributions;
summaryTbl - таблица, содержащая статистику, которая estimate отображается в командной строке.
Для каждого параметра определите набор из 50 равномерно расположенных значений в пределах трех стандартных отклонений от среднего. Поместите значения в камеры вектора камеры 5 на 1 по порядку параметров, которые состоят из строк сводной таблицы оценок.
Points = cell(numel(summaryTbl.Mean),1); % Preallocation for j = 1:numel(summaryTbl.Mean) Points{j} = linspace(summaryTbl.Mean(j) - 3*summaryTbl.Std(j),... summaryTbl.Mean(j) + 2*summaryTbl.Std(j),50); end
Постройте график апостериорных распределений в пределах их соответствующих интервалов.
plot(PosteriorMdl,'Points',Points)
PosteriorMdl - Байесовская линейная регрессионая модель, сохраняющая апостериорные характеристики распределенияconjugateblm объект модели | empiricalblm объект моделиБайесовская линейная регрессионая модель, сохраняющая апостериорные характеристики распределения, заданные как conjugateblm или empiricalblm объект модели, возвращенный estimate.
Когда вы также задаете PriorMdl, затем PosteriorMdl - апостериорное распределение, состоящее из PriorMdl и данные. Если на NumPredictors и VarNames свойства двух моделей не равны, plot выдает ошибку.
PriorMdl - Байесовская линейная регрессионая модель, сохраняющая предшествующие характеристики распределенияconjugateblm объект модели | semiconjugateblm объект модели | diffuseblm объект модели | mixconjugateblm объект модели | lassoblm объект моделиБайесовская линейная регрессионая модель, сохраняющая предшествующие характеристики распределения, заданные как conjugateblm, semiconjugateblm, diffuseblm, empiricalblm, customblm, mixconjugateblm, mixsemiconjugateblm, или lassoblm объект модели, возвращенный bayeslm.
Когда вы также задаете PosteriorMdl, затем PriorMdl - предшествующее распределение, которое, в сочетании с вероятностью данных, формирует PosteriorMdl. Если на NumPredictors и VarNames свойства двух моделей не равны, plot выдает ошибку.
Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.
'VarNames',["Beta1"; "Beta2"; "Sigma2"] строит графики распределений коэффициентов регрессии, соответствующих именам Beta1 и Beta2 в VarNames свойство объекта модели и отклонение нарушения порядка Sigma2.'VarNames' - Имена параметровИмена параметров, указывающие, какую плотность построить на рисунке, заданные как разделенная разделенными запятой парами, состоящая из 'VarNames' и вектор камеры из векторов символов или строкового вектора. VarNames должны включать "Intercept", любое имя в VarNames свойство PriorMdl или PosteriorMdl, или "Sigma2".
По умолчанию, plot выбирает "Intercept" (если в модели существует точка пересечения), все коэффициенты регрессии и "Sigma2". Если модель имеет более 34 коэффициентов регрессии, то plot выбирает только с первого по 34-й.
VarNames является нечувствительным к регистру.
Совет
Если ваша модель содержит много переменных, попробуйте построить подмножества параметров на отдельных графиках для лучшего представления распределений.
Пример: 'VarNames',["Beta(1)","Beta(2)"]
Типы данных: string | cell
'Points' - Значения параметров для оценки плотности и графического изображенияЗначения параметров для оценки плотности и графического изображения, заданные как разделенная разделенными запятой парами, состоящая из 'Points' и a numPoints-мерный числовой вектор или numVarNames-мерный вектор камеры числовых векторов. numPoints - количество значений параметров, которые plot оценивает и строит графики плотности.
Если Points является числовым вектором, тогда plot оценивает и строит графики плотностей всех заданных распределений с помощью его элементов (см VarNames).
Если Points является вектором камеры из числовых векторов, затем:
numVarNames должен быть числительным , где (VarNames)VarNames - значение VarNames.
Камеры соответствуют элементам VarNames.
Для j = 1, …, numVarNames, plot оценивает и строит графики плотности параметра с именем при помощи вектора точек в камере VarNames{j}Points .(j)
По умолчанию, plot определяет 1000 адекватные значения, при которых можно вычислить и построить график плотности для каждого параметра.
Пример: 'Points',{1:0.1:10 10:0.2:25 1:0.01:2}
Типы данных: double | cell
pointsUsed - Значения параметров, используемые для оценки плотности и графического изображенияЗначения параметров, используемые для оценки плотности и графического изображения, возвращаются как вектор камеры числовых векторов.
Предположим Points и VarNames являются значениями Points и VarNames, соответственно. Если Points является числовым вектором, тогда PointsUsed is repmat (. В противном случае {Points}, число (VarNames))PointsUsed равен Points. Камеры соответствуют именам в VarNames.
posteriorDensity - Оцененные и построенные апостериорные плотностиОцененные и построенные апостериорные плотности, возвращенные как numVarNames-by-1 камеры вектор числовых векторов-строк. numVarNames является numel , где (VarNames)VarNames - значение VarNames. Камеры соответствуют именам в VarNames. posteriorDensity имеет те же размерности, что и priorDensity.
priorDensity - Оцененная и построенная предыдущая плотностьОцененные и построенные предыдущие плотности, возвращенные как numVarNames-by-1 камеры вектор числовых векторов-строк. priorDensity имеет те же размерности, что и posteriorDensity.
FigureHandle - Окно рисунка, содержащее распределенияОкно рисунка, содержащее распределения, возвращенные как figure объект.
plot перезаписывает окно рисунка, которое оно создает.
Если вы переименовываете FigureHandle для нового окна рисунка или вызова figure перед вызовом plot, затем plot продолжает перезаписывать текущую фигуру. Чтобы построить график распределений на другое окно рисунка, измените идентификатор рисунка окна текущей фигуры, переименовав его Tag свойство. Для примера переименовать текущую фигуру окно под названием FigureHandle на newFigure, в командной строке введите:
FigureHandle.Tag = newFigure;
Поскольку improper distributions (распределения с плотностями, которые не интегрируются в 1) не хорошо заданы, plot не может построить их очень хорошо.
A Bayesian linear regression model обрабатывает параметры β и σ2 в модели многофакторной линейной регрессии (MLR) yt = xt β + εt как случайные переменные.
Для времен t = 1,..., T:
yt - наблюдаемая реакция.
xt является 1-бай- (p + 1) вектором-строкой наблюдаемых значений p предикторов. Чтобы разместить точку пересечения модели, x 1 t = 1 для всех t.
β является (p + 1) -на-1 вектор-столбец коэффициентов регрессии, соответствующих переменным, которые составляют столбцы xt.
εt является случайным нарушением порядка со средним значением нуля и Cov (ε) = σ2I T × T, в то время как ε является вектором T -by-1, содержащим все нарушения порядка. Эти предположения подразумевают, что вероятность данных является
ϕ (yt; xtβ, σ2) - Гауссова плотность вероятностей со средней xtβ и отклонением σ2 оценивается при yt;.
Прежде чем рассматривать данные, вы накладываете joint prior distribution предположение на (β, σ2). В байесовском анализе вы обновляете распределение параметров с помощью информации о параметрах, полученных из вероятности данных. Результатом является joint posterior distribution (β, σ2) или conditional posterior distributions параметров.
conjugateblm | customblm | diffuseblm | empiricalblm | lassoblm | mixconjugateblm | mixsemiconjugateblm | semiconjugateblmУ вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.