繁体   English   中英

如何在R中的“用户定义”公式上进行线性回归?

[英]How to do linear regression on a 'user-defined' formula in R?

我有一个包含5个独立变量的数据框,并且我希望线性方程采用以下形式:

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

其中ABCDE是我的自变量,而pqrst是我需要找到的系数。

R使用lm()命令,您可以执行以下操作:

#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

formula变量之间使用:命令,以获取它们的乘积交互作用而没有主要影响。 例如:

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

我不能告诉,如果你试图压制拦截,但我相信这样,因为你还没有把a所希望estimands的列表。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM