Визуализация априорных и апостериорных плотностей параметров байесовской линейной регрессионой модели
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.