Регрессия с несколькими зависимыми переменными?

62

Возможно ли иметь (множественное) уравнение регрессии с двумя или более зависимыми переменными? Конечно, вы могли бы запустить два отдельных уравнения регрессии, по одному для каждого DV, но не похоже, чтобы оно охватило какую-либо связь между двумя DV?

Джефф
источник
Как в SUR или 3SLS?
Старик в море.

Ответы:

36

Да, это возможно. То, что вас интересует, называется «многомерная множественная регрессия» или просто «многомерная регрессия». Я не знаю, какое программное обеспечение вы используете, но вы можете сделать это в R.

Вот ссылка, которая предоставляет примеры.

http://www.public.iastate.edu/~maitra/stat501/lectures/MultivariateRegression.pdf

Brett
источник
2
Можно добавить, что подгонка регрессий по отдельности действительно эквивалентна многомерной формулировке с матрицей зависимых переменных. В R с установленным пакетом mvtnorm (1-й: многомерная модель, 2-й: отдельные одномерные модели): библиотека (mvtnorm); X <- rmvnorm (100, c (1, 2), матрица (c (4, 2, 2, 3), ncol = 2)); Y <- X% *% матрицы (1: 4, ncol = 2) + rmvnorm (100, c (0, 0), diag (c (20, 30))); lm (Y ~ X [, 1] + X [, 2]); lm (Y [, 1] ~ X [, 1] + X [, 2]); lm (Y [, 2] ~ X [, 1] + X [, 2])
каракал
3
Если это эквивалентно, какова цель?
Джошуа Розенберг
1
@JoshuaRosenberg Одной из причин запуска многомерной регрессии по отдельным регрессиям с одиночными зависимыми переменными является возможность проводить тесты коэффициентов по различным исходным переменным. Например, вы можете выполнить F-тест, чтобы увидеть, оказывает ли предиктор тот же эффект на одну переменную результата, что и на другую переменную результата.
AlexK
10

Ответ @ Бретта в порядке.

Если вы заинтересованы в описании вашей двухблочной структуры, вы также можете использовать регрессию PLS . По сути, это регрессионный каркас, основанный на идее построения последовательных (ортогональных) линейных комбинаций переменных, принадлежащих каждому блоку, так, чтобы их ковариация была максимальной. Здесь мы считаем, что один блокИкс содержит пояснительные переменные, а другой блок Y переменные ответов, как показано ниже:

альтернативный текст

Мы ищем «скрытые переменные», которые учитывают максимум информации (линейным образом), включенной в Икс блок, позволяя предсказать Yблок с минимальной ошибкой. UJ а также vJнагрузки (т. е. линейные комбинации), связанные с каждым измерением. Критерии оптимизации гласят

Максимум|Uчас| =1,|vчас| =1сОУ(Иксчас-1Uчас,Yvчас)(МаксимумсОУ(ξчас,ωчас))

где Иксчас-1 обозначает спущенный (то есть остаточный) Икс блок, после часго регрессия.

Корреляция между факториальными баллами по первому измерению (ξ1 а также ω1) отражает величину Икс-Y ссылка.

хл
источник
Я думаю, что многократный X-множественный PLS по существу делает многократный "множественный X-одиночный" PLS. Таким образом, отношения между переменными Y не рассматриваются.
Ланселибай
4

Многомерная регрессия выполняется в SPSS с использованием опции GLM-многовариантности.

Поместите все ваши результаты (DV) в поле результатов, а все ваши непрерывные предикторы - в поле ковариат. Вам ничего не нужно в поле факторов. Посмотрите на многовариантные тесты. Одномерные тесты будут такими же, как отдельные множественные регрессии.

Как сказал кто-то другой, вы также можете указать это как модель структурного уравнения, но тесты те же.

(Интересно, ну, я думаю, что это интересно, в этом есть некоторая разница между Великобританией и США. В Великобритании множественная регрессия обычно не считается многовариантной техникой, поэтому многомерная регрессия является многомерной, только если у вас несколько результатов / DV. )

Джереми Майлз
источник
2
добавление в ответе Джереми Майлза: www-01.ibm.com/support/docview.wss?uid=swg21476743
Эпаминонд
2

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

Мариана Софер
источник
2
Это кажется концептуально отличным от ответа выше. Мне все еще не ясно, как преобразование моих переменных в коэффициенты PCA позволяет мне регрессировать на 2+ зависимых переменных?
Джефф
@Даже этот ответ на самом деле концептуально похож на многомерную регрессию. Здесь предлагается сделать два дискретных шага в последовательности (то есть найти взвешенные линейные составные переменные и затем регрессировать их); многомерная регрессия выполняет два шага одновременно . Многомерная регрессия будет более мощной, поскольку WLCV формируются таким образом, чтобы максимизировать регрессию. Однако двухэтапная процедура может обеспечить большую ясность в отношении процесса или быть иным предпочтительным для исследователя.
gung - Восстановить Монику
1
@ Gung Хм, это имеет смысл для меня, если вы делаете PCA для зависимых переменных, а затем регрессируете только на первом главном компоненте ... Но тогда вы по-прежнему выбрасываете большие различия.
Джефф
1
@ Джефф, компьютеры ортогональны. Вы можете запустить независимые регрессии на каждом. Однако, это менее мощно, поскольку разложение не совсем то же самое, и многомерный регрессионный тест на самом деле не является серией регистров на ПК.
gung - Восстановить Монику
@ Да, вы можете запустить N независимых регрессий, но затем вы получите N наборов бета-коэффициентов. я не понимаю, как это решает проблему?
Джефф
1

Как упомянул caracal, вы можете использовать пакет mvtnorm в R. Предполагая, что вы создали lm-модель (называемую «модель») одного из ответов в вашей модели, и назвали его «модель», вот как получить многомерное прогнозирующее распределение из нескольких ответов "resp1", "resp2", "resp3", сохраненных в матричной форме Y:

library(mvtnorm)
model = lm(resp1~1+x+x1+x2,datas) #this is only a fake model to get
                                  #the X matrix out of it
Y = as.matrix(datas[,c("resp1","resp2","resp3")])
X =  model.matrix(delete.response(terms(model)), 
           data, model$contrasts)
XprimeX  = t(X) %*% X
XprimeXinv = solve(xprimex)
hatB =  xprimexinv %*% t(X) %*% Y
A = t(Y - X%*%hatB)%*% (Y-X%*%hatB)
F = ncol(X)
M = ncol(Y)
N = nrow(Y)
nu= N-(M+F)+1 #nu must be positive
C_1 =  c(1  + x0 %*% xprimexinv %*% t(x0)) #for a prediction of the factor setting x0 (a vector of size F=ncol(X))
varY = A/(nu) 
postmean = x0 %*% hatB
nsim = 2000
ysim = rmvt(n=nsim,delta=postmux0,C_1*varY,df=nu) 

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

Чтобы ответить Эндрю Ф., степени свободы, следовательно, равны nu = N- (M + F) +1 ... N - количество наблюдений, M - количество ответов и F - количество параметров для модели уравнения. Ну должен быть положительным.

(Вы можете прочитать мою работу в этом документе :-))

Пьер Лебрун
источник
0

Вы уже сталкивались с термином «каноническая корреляция»? Там у вас есть наборы переменных как на независимой, так и на зависимой стороне. Но, может быть, есть более современные концепции, описания у меня все восьмидесятые-девяностые ...

Готфрид Хелмс
источник
1
Каноническая корреляция - это корреляция между показателями факторов, рассчитанными на основе двухблочных структур, как с CCA или PLS. Это именно то, что я описал в своем ответе (регрессия PLS), хотя PLS более подходит, чем CCA, когда переменные играют асимметричную роль, что, вероятно, имеет место в данном случае. Это потому, что существует асимметричный процесс дефляции, и мы вместо этого работаем с ковариацией (с CCA мы дефлируем оба блока одновременно и стремимся максимизировать корреляцию вместо ковариации).
ЧЛ
@chl: upps- сегодня (конец января) я вернулся к этому вопросу / разговору в середине ноября .... Извините, я не проверял ранее - что-то было с моими курсами, а затем я забыл stat.exchange. .. Если я чего-то стою, я вернусь на следующий день.
Готфрид Хелмс
-3

Это называется моделью структурного уравнения или моделью одновременного уравнения.

Shige
источник
3
Я могу ошибаться, но я не думаю, что это одно и то же. Из графиков SEM, которые я видел, похоже, что SEM использует уравнения множественной регрессии для определения значений скрытых факторов, а затем выполняется другая регрессия по значению этих скрытых факторов для определения коэффициента более высокого порядка. Возможно, это неправильно, но я никогда не видел SEM-график, который связывал бы несколько IV с несколькими DV - все иерархично.
Джефф
Рисунок 8 в этом документе: biomedcentral.com/1471-2288/3/27 Вы можете сделать это, но в этом нет особого смысла. Это так же, как МАНОВА.
Джереми Майлз