【问题标题】:Regression of Higher order高阶回归
【发布时间】:2015-02-26 07:44:14
【问题描述】:

我想拟合一个模型 $Y = X_1^2 + X_2^2 + X_1 + X_2 + X_1\cdot X_2$

如何在 R 中构建它

glm(Y ~ poly(X1,2) * poly(X2,2)

如何将其推广到更高阶? 例如。 $Y = X_1^3 + X_2^3 + X_1\cdot X_2^2 + X_1^2 \cdot X_2 + X_1^2 + X_2^2 + X_1 + X_2 + X_1\cdot X_2$

【问题讨论】:

  • 我喜欢通过多于 1 个参数的回归来拟合高阶模型。
  • 考虑将poly的第二个参数从2改为3

标签: r regression lm


【解决方案1】:

您可以将glm 与以下公式一起使用:

glm(Y ~ poly(X1, 2) + poly(X2, 2) + X1:X2)

函数poly 创建多项式。在您的示例中,poly(X1, 2) 产生 $X_1$ 和 $X_1^2$。请注意poly 创建orthogonal polynomials。如果你想要原始多项式,你必须使用参数raw = TRUE

X1:X2 是 $X_1$ 和 $X_2$ 之间的交互,即 $X_1 \cdot X_2$。

此外,您的公式不包含截距。我想这不是故意的。但是,如果您真的想在 R 中创建一个没有截距的模型,则必须将命令更改为 glm(Y ~ 0 + poly(X1, 2) + poly(X2, 2) + X1:X2)

请注意,除非您在 glm 中指定 family,否则该函数将拟合线性模型。


您提出的公式 (Y ~ poly(X1,2) * poly(X2,2)) 创建了上述公式的所有项和附加项,即 $X_1$ 和 $X_2$ 的一阶和二阶多项式之间的所有交互,即 $X_1 \ cdot X_2^2$、$X_1^2 \cdot X_2$ 和 $X_1^2 \cdot X_2^2$。

【讨论】:

  • 那么,有没有办法将这个通用化为更多变量?说X1到X5?它是什么命令?
猜你喜欢
  • 2015-08-31
  • 2021-11-19
  • 1970-01-01
  • 2014-08-16
  • 2014-01-22
  • 1970-01-01
  • 2020-04-04
  • 2019-10-07
  • 2021-11-01
相关资源
最近更新 更多