如何在';用户定义的';R中的公式?

如何在';用户定义的';R中的公式?,r,regression,R,Regression,我有一个包含5个自变量的数据框,我希望线性方程的形式如下: y = A (a + pA + qB + rC + sD + tE) 其中,A,B,C,D和E是我的自变量,p,q,r,s和t是我需要找到的系数。 #Pseudo Data y = rnorm(100) A = rnorm(100) B = rnorm(100) C = rnorm(100) D = rnorm(100) E = rnorm(100) AB = A*B AC = A*C AD = A*D AE = A*E m

我有一个包含5个自变量的数据框,我希望线性方程的形式如下:

y = A (a + pA + qB + rC + sD + tE) 
其中,
A
B
C
D
E
是我的自变量,
p
q
r
s
t
是我需要找到的系数。

#Pseudo Data
y = rnorm(100) 

A = rnorm(100)
B = rnorm(100)
C = rnorm(100)
D = rnorm(100)
E = rnorm(100)

AB = A*B
AC = A*C
AD = A*D
AE = A*E

model = lm(y~-1+A+AB+AC+AD+AE)
这将产生:

> model

Call:
lm(formula = y ~ -1 + A + AB + AC + AD + AE)

Coefficients:
         A          AB          AC          AD          AE  
 0.1896753  -0.0835971  -0.0183475  -0.0007795  -0.0174815  

> 
> summary(model)

Call:
lm(formula = y ~ -1 + A + AB + AC + AD + AE)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.05531 -0.58641  0.08847  0.73281  2.86074 

Coefficients:
     Estimate Std. Error t value Pr(>|t|)  
A   0.1896753  0.1084157   1.750   0.0834 .
AB -0.0835971  0.1088133  -0.768   0.4442  
AC -0.0183475  0.1264781  -0.145   0.8850  
AD -0.0007795  0.0930502  -0.008   0.9933  
AE -0.0174815  0.1140712  -0.153   0.8785  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.957 on 95 degrees of freedom
Multiple R-squared:  0.03374,   Adjusted R-squared:  -0.01712 
F-statistic: 0.6634 on 5 and 95 DF,  p-value: 0.6521

公式
中的变量之间使用
命令,以获得它们的乘法交互作用,而不产生主要影响。例如:

y=A(A+pA+qB+rC+sD+tE)

我不知道您是否试图抑制截取,但我假设是这样,因为您没有将
a
放入所需估计的列表中


y~0+A+A:B+A:C+A:D+A:E

我假设你的结果($y$)会出现随机错误,否则这不是一个统计问题。。。无论如何,这看起来很普通,没有截距,预测值是$A、A^2、AB、AC、AD$和$AE$。你的问题到底是什么?(注意,把$a$称为$y$-截距是不太正确的……按照你写这篇文章的方式,$a$是$a$的斜率)。如果$a$是截距,你的意思是你想建模:$$y=a+a(pA+qB+rC+SD+tE)+\varepsilon$$还是@Macro question是你想要的?对不起。我的意思是@Macro所说的(即,“a”作为“a”的斜率,预测因子是a、a^2、AB、AC、AD和AE)。我该怎么在R上做呢?顺便说一句,我对R-编程非常陌生,只接触过使用函数“lm”的简单线性回归建模。要做宏想要做的事情,首先创建他列出的变量(A到AE),然后使用lm()进行回归。@Meed,根据你最近的评论,这是一个编程问题,而不是统计问题,所以我投票决定结束。这会起作用,但是用户应该注意不要包含没有主要效果的交互术语……同意。我只是在复制上面列出的模型。如果OP想要主要效果,那么他们也可以做以下事情:
model=lm(y~-1+A+B+C+D+EAB+AC+AD+AE)
对于OP自己的启发,如果他们想要,从上面的命令中删除
-1
也会给他们一个截取术语。为什么模型中没有
AA=A*A
lm(公式=y~A+AA+AB+AC+AD+AE)是否错误?