Визуализация предыдущих и задних плотностей параметров байесовской модели линейной регрессии
plot( или PosteriorMdl)plot( строит график апостериорных или предыдущих распределений параметров в байесовской модели линейной регрессии
PriorMdl)PosteriorMdl или PriorMdlсоответственно. plot добавляет вложенные диаграммы для каждого параметра к одной фигуре и перезаписывает одну и ту же фигуру при вызове plot несколько раз.
plot( строит график заднего и предыдущего распределений в одном и том же субплоте. PosteriorMdl,PriorMdl)plot использует сплошные синие линии для задних плотностей и пунктирные красные линии для предыдущих плотностей.
plot(___, использует любую из комбинаций входных аргументов в предыдущих синтаксисах и дополнительных параметрах, заданных одним или несколькими аргументами пары имя-значение. Например, можно оценить заднюю или предыдущую плотность, подав значения β и start2, или выбрать, какие распределения параметров включить в рисунок.Name,Value)
также возвращает значения параметров, которые pointsUsed = plot(___)plot используется для оценки плотностей на вложенных графиках.
[ также возвращает значения вычисленных плотностей.pointsUsed,posteriorDensity,priorDensity] = plot(___)
Если указать одну модель, то plot возвращает значения плотности в PosteriorDensity. В противном случае plot возвращает значения задней плотности в PosteriorDensity и предыдущие значения плотности в PriorDensity.
[ возвращает дескриптор фигуры, содержащей распределения.pointsUsed,posteriorDensity,priorDensity,FigureHandle] = plot(___)
Рассмотрим модель множественной линейной регрессии, которая предсказывает реальный валовой национальный продукт США (GNPR) с использованием линейной комбинации индекса промышленного производства (IPI), общая занятость (E) и реальная заработная плата (WR).
β3WRt + αt.
Для всех - это ряд независимых гауссовых возмущений со средним значением 0 и дисперсией .
Предположим, что эти предыдущие распределения:
λ 2В M является вектором средства 4 на 1, V является масштабированной матрицей положительной определенной ковариации 4 на 4.
B А В - форма и масштаб, соответственно, обратного гамма-распределения.
Эти допущения и правдоподобие данных подразумевают нормально-обратно-гамма-сопряженную модель.
Создайте нормально-обратно-гамма-сопряженную предыдущую модель для параметров линейной регрессии. Укажите количество предикторов 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. pointsUsedPost выходные данные могут отличаться от pointsUsedPrior. posteriorDensities1 содержит значения задней плотности.
Постройте график предыдущего и заднего распределений. Запрос значений параметров, используемых для создания графиков, и их соответствующих плотностей.
[pointsUsedPP,posteriorDensities2,priorDensities2] = plot(PosteriorMdl,PriorMdl);

Все выходные значения имеют те же размеры, что и pointsUsedPrior. posteriorDensities2 выход содержит задние значения плотности. 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' и numPoints-мерный числовой вектор или numVarNames-мерный вектор ячейки числовых векторов. numPoints - количество значений параметров, plot вычисляет и строит график плотности.
Если Points является числовым вектором, то plot оценивает и строит графики плотностей всех указанных распределений с использованием его элементов (см. VarNames).
Если Points является вектором ячейки числовых векторов, то:
numVarNames должно быть numel(, где 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 является repmat({. В противном случае Points},numel(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;
Поскольку неправильные распределения (распределения с плотностью, которые не интегрируются в 1) не определены должным образом, plot не может их очень хорошо построить.
Байесовская модель линейной регрессии рассматривает параметры β и start2 в модели множественной линейной регрессии (MLR) yt = xtβ + αt как случайные величины.
Для времени t = 1,...,T:
yt - наблюдаемый ответ.
xt - вектор строки 1-by- (p + 1) наблюдаемых значений p предикторов. Чтобы разместить пересечение модели, x1t = 1 для всех t.
β - вектор (p + 1) -by-1-столбца коэффициентов регрессии, соответствующих переменным, составляющим столбцы xt.
αt - случайное возмущение со средним значением ноля и Cov (λ) = start2IT × T, в то время, как start- T-by-1 вектор, содержащий все возмущения. Эти допущения подразумевают, что вероятность данных
xtβ, start2).
(yt; xtβ, start2) - гауссова плотность вероятности со средним значением xtβ и дисперсией start2, оцениваемой при yt;.
Перед рассмотрением данных необходимо наложить совместное предварительное предположение о распределении на (β, start2). В байесовском анализе выполняется обновление распределения параметров с использованием информации о параметрах, полученных из вероятности получения данных. Результатом является совместное апостериорное распределение (β, start2) или условное апостериорное распределение параметров.
conjugateblm | customblm | diffuseblm | empiricalblm | lassoblm | mixconjugateblm | mixsemiconjugateblm | semiconjugateblmИмеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.