2010-12-17 103 views
1

我有两个依赖于两个变量和彼此依赖,这可以在R(必须!)模拟,但我不知道如何,任何人提示?多变量回归

在明确的条款:

我想我的数据有以下型号Model:分别coef2出现在两个行 兮,易建联是输入和输出数据

Y1=X1*coef1+X2*coef2 
Y2=X1*coef2+X2*coef3 

我到目前为止:

lm(Y1~X1+X2,mydata) 

现在我该如何添加该模型的第二行包括交叉依赖性?

非常感谢您的帮助! 干杯,巴斯蒂安

+3

这个问题可能是适用于HTTP: //stats.stackexchange.com/您可能还想更改标题,因为多元回归似乎并不是您想要的:这只是“lm(cbind(Y1,Y2)〜X1 + X2,mydata)”,其中相当于分别进行两个回归而不会限制两个权重相等。你可能需要研究结构方程模型。软件包'sem','lavaan'和'OpenMx'会让你更进一步。你也可以看看http://cran.r-project.org/doc/contrib/Fox-Companion/appendix-sems.pdf – caracal 2010-12-17 22:04:33

+0

当你在r-help中提出这个问题时,Y1和Y2是x和y投影距离取决于角度。从来没有弄清楚有多少测量值,分析中每个单元有哪些计数,或者分析师是否需要控制离中心的距离。如果你会包含更多的上下文,你可能会得到更好的答案。 – 2010-12-17 23:01:18

+0

仅在2年后检查。我以为我只发布在R-Help中。无论如何,我的解决方案是远离R,或者宁可留在R中而不使用函数构建。有点令人失望,但它的工作。 – Bastiaan 2012-06-12 20:28:29

回答

4

试试这个:

# sample data - true coefs are 2, 3, 4 
set.seed(123) 
n <- 35 
DF <- data.frame(X1 = 1, X2 = 1:n, X3 = (1:n)^2) 
DF <- transform(DF, Y1 = X1 * 2 + X2 * 3 + rnorm(n), 
      Y2 = X1 * 3 + X2 * 4 + rnorm(n)) 

# construct data frame for required model 
DF2 <- with(DF, data.frame(y = c(Y1, Y2), 
x1 = c(X1, 0*X1), 
x2 = c(X2, X1), 
x3 = c(0*X2, X2))) 

lm(y ~. - 1, DF2) 

我们看到它,实际上,恢复的真实coefs 2,3,4:

> lm(y ~. - 1, DF2) 

Call: 
lm(formula = y ~ . - 1, data = DF2) 

Coefficients: 
    x1  x2  x3 
2.084 2.997 4.007