如何在';用户定义的';R中的公式?
我有一个包含5个自变量的数据框,我希望线性方程的形式如下:如何在';用户定义的';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
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)是否错误?