【问题标题】:Linear regression equation R线性回归方程 R
【发布时间】:2017-03-24 17:38:18
【问题描述】:

当我们在 R 中运行线性回归时,R 在什么变量下保存了实际的回归方程,我的意思是 R 实际上是否以以下形式保存方程:

y=B0 +B1x1 + B2x2 + B3x3 等

我问是因为我想稍后调用那个方程,或者我需要创建一个新变量并让它等于上面的方程,同时包括我的 beta 值,这样(例如)在回复

z=0.1 + 0.2x1 +0.3x2 +0.4x3 等

我知道可以使用预测功能,但我不确定这是否正是我正在寻找的功能

【问题讨论】:

  • fm <- lm(demand ~ Time, BOD); formula(fm)
  • 除了使用predict,方程式不会以您描述的形式保存,afaik。最接近的可能是coef,您可以从中构造其余部分。
  • 如果您的目标是将估计的系数应用于新数据集,您希望使用predict。如果您不确定如何使用它,请查看帮助文件(如果您使用的是lm,那就是?predict.lm)和其他类似的问题,例如stackoverflow.com/questions/9028662/…。如果您想将该公式用于任何其他目的,请将其提取出来并像 G. Grothendieck 在他的评论中描述的那样使用它。
  • @ZheyuanLi 我能否为我的预测变量指定概率分布,以便在我进行预测时使用它们?
  • @ZheyuanLi 是的。因此,例如,我希望为它们中的每一个(仅预测变量)提供一个 rnorm 分布,以及我想在回归方程中使用的这些分布中的值

标签: r regression


【解决方案1】:

如果你想得到系数,你可以在你的lm上使用summary()。

仅查看模型项及其估计值、SE 等...

my_lm <- lm(Sepal.Length~Sepal.Width+Petal.Width+Petal.Length,iris)
coeffients <- summary(my_lm)$coefficients
coeffients
               Estimate Std. Error   t value     Pr(>|t|)
(Intercept)   1.8559975 0.25077711  7.400984 9.853855e-12
Sepal.Width   0.6508372 0.06664739  9.765380 1.199846e-17
Petal.Width  -0.5564827 0.12754795 -4.362929 2.412876e-05
Petal.Length  0.7091320 0.05671929 12.502483 7.656980e-25

然后您可以随心所欲地使用。 最后,formula() 将返回您在 lm() 中调用的内容

formula(my_lm)
Sepal.Length ~ Sepal.Width + Petal.Width + Petal.Length

如果你不想使用 predict(),可以使用这个对象来代替。

my_coef<-(coeffients[,1])
my_coef
 (Intercept)  Sepal.Width  Petal.Width Petal.Length 
   1.8559975    0.6508372   -0.5564827    0.7091320 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-11
    • 2020-12-14
    • 2016-05-10
    • 2018-01-06
    • 1970-01-01
    • 2017-05-20
    • 2018-08-20
    • 1970-01-01
    相关资源
    最近更新 更多