Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如果我想要一个单一的线性回归模型,而不是一个;传销;?_R_Regression_Linear Regression_Lm_Mlm - Fatal编程技术网

R 如果我想要一个单一的线性回归模型,而不是一个;传销;?

R 如果我想要一个单一的线性回归模型,而不是一个;传销;?,r,regression,linear-regression,lm,mlm,R,Regression,Linear Regression,Lm,Mlm,我已在下图中共享了我正在处理的前9行数据(y0至y6为输出,其余为输入): 我的目标是获得y0到y6的拟合输出数据 我使用以下命令尝试了R中的lm函数: lm1 <- lm(cbind(y0, y1, y2, y3, y4, y5, y6) ~ tt + tcb + s + l + b, data = table3) summary(lm1) lm1Bycbind(y0,y1,y2,y3,y4,y5,y6) 对于您要查找的内容,将y*变量堆叠起来,复制其他自变量,然后进行一次回归 Y

我已在下图中共享了我正在处理的前9行数据(
y0
y6
为输出,其余为输入):

我的目标是获得
y0
y6
的拟合输出数据

我使用以下命令尝试了R中的
lm
函数:

lm1 <- lm(cbind(y0, y1, y2, y3, y4, y5, y6) ~ tt + tcb + s + l + b, data = table3)
summary(lm1)
lm1By
cbind(y0,y1,y2,y3,y4,y5,y6)

对于您要查找的内容,将
y*
变量堆叠起来,复制其他自变量,然后进行一次回归

Y <- c(y0, y1, y2, y3, y4, y5, y6)
tt. <- rep(tt, times = 7)
tcb. <- rep(tcb, times = 7)
s. <- rep(s, times = 7)
l. <- rep(l, times = 7)
b. <- rep(b, times = 7)

fit <- lm(Y ~ tt. + tcb. + s. + l. + b.)

适用于OP以外的其他读者

我在此准备一个小的可重复的例子(只有一个协变量
x
和两个重复
y1
y2
)来帮助您理解这个问题

set.seed(0)
dat_wide <- data.frame(x = round(runif(4), 2),
                       y1 = round(runif(4), 2),
                       y2 = round(runif(4), 2))
#     x   y1   y2
#1 0.90 0.91 0.66
#2 0.27 0.20 0.63
#3 0.37 0.90 0.06
#4 0.57 0.94 0.21

## The original "mlm"
fit_mlm <- lm(cbind(y1, y2) ~ x, data = dat_wide)
额外的变量
time
id
被创建。前者告诉我们案例来自哪个复制品;后者告诉您案例在复制中的记录

为了使同一模型适用于所有复制品,我们需要

fit1 <- lm(y ~ x, data = dat_long)
#(Intercept)            x  
#     0.2578       0.5801  

matrix(fitted(fit1), ncol = 2)  ## there are two replicates
#          [,1]      [,2]
#[1,] 0.7798257 0.7798257
#[2,] 0.4143822 0.4143822
#[3,] 0.4723891 0.4723891
#[4,] 0.5884029 0.5884029
通过
cbind(y0,y1,y2,y3,y4,y5,y6)
我们拟合了7个独立的模型(这是一个更好的想法)

对于您要查找的内容,将
y*
变量堆叠起来,复制其他自变量,然后进行一次回归

Y <- c(y0, y1, y2, y3, y4, y5, y6)
tt. <- rep(tt, times = 7)
tcb. <- rep(tcb, times = 7)
s. <- rep(s, times = 7)
l. <- rep(l, times = 7)
b. <- rep(b, times = 7)

fit <- lm(Y ~ tt. + tcb. + s. + l. + b.)

适用于OP以外的其他读者

我在此准备一个小的可重复的例子(只有一个协变量
x
和两个重复
y1
y2
)来帮助您理解这个问题

set.seed(0)
dat_wide <- data.frame(x = round(runif(4), 2),
                       y1 = round(runif(4), 2),
                       y2 = round(runif(4), 2))
#     x   y1   y2
#1 0.90 0.91 0.66
#2 0.27 0.20 0.63
#3 0.37 0.90 0.06
#4 0.57 0.94 0.21

## The original "mlm"
fit_mlm <- lm(cbind(y1, y2) ~ x, data = dat_wide)
额外的变量
time
id
被创建。前者告诉我们案例来自哪个复制品;后者告诉您案例在复制中的记录

为了使同一模型适用于所有复制品,我们需要

fit1 <- lm(y ~ x, data = dat_long)
#(Intercept)            x  
#     0.2578       0.5801  

matrix(fitted(fit1), ncol = 2)  ## there are two replicates
#          [,1]      [,2]
#[1,] 0.7798257 0.7798257
#[2,] 0.4143822 0.4143822
#[3,] 0.4723891 0.4723891
#[4,] 0.5884029 0.5884029

欢迎来到SO!请阅读感谢您的输入。感谢您的输入。基本上,我想构建一个方程,如:Y=a+(tt x系数1)+(s x系数2)+(l x系数3)+(b x系数4),其中;a是截距。Y对应于y0、y1至y6的拟合值。所以我的要求是所有7个输出都有相同的模型系数。任何帮助都将不胜感激。我确实是统计和建模领域的新手!谢谢,欢迎光临!请阅读感谢您的输入。感谢您的输入。基本上,我想构建一个方程,如:Y=a+(tt x系数1)+(s x系数2)+(l x系数3)+(b x系数4),其中;a是截距。Y对应于y0、y1至y6的拟合值。所以我的要求是所有7个输出都有相同的模型系数。任何帮助都将不胜感激。我确实是统计和建模领域的新手!谢谢,谢谢。以下是在一个y中获得所有输出的方法。然后是lm。库(重塑2)数据存储库。以下是在一个y中获得所有输出的方法。然后是lm。图书馆(2)dat2
coef(summary(fit1))
#             Estimate Std. Error   t value  Pr(>|t|)
#(Intercept) 0.2577636  0.2998382 0.8596755 0.4229808
#x           0.5800691  0.5171354 1.1216967 0.3048657

coef(summary(fit2))
#             Estimate Std. Error  t value    Pr(>|t|)
#(Intercept) 0.2577636 0.01385864 18.59949 0.002878193
#x           0.5800691 0.02390220 24.26844 0.001693604