【发布时间】:2021-07-25 01:31:12
【问题描述】:
我使用 R 中的 lm 和 poly 函数制作了一个趋势面。 我的结果摘要如下:
> summary(tls.lm)
Call:
lm(formula = DEM_small_domain_TLS_5cm ~ poly(x, y, degree = 2),
data = tlsDF)
Residuals:
Min 1Q Median 3Q Max
-0.09543 -0.01378 -0.00087 0.01260 0.10404
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.08e+01 4.98e-05 416945.4 <2e-16 ***
poly(x, y, degree = 2)1.0 -1.51e+01 2.00e-02 -754.0 <2e-16 ***
poly(x, y, degree = 2)2.0 6.79e-01 2.00e-02 33.9 <2e-16 ***
poly(x, y, degree = 2)0.1 -2.01e+01 2.00e-02 -1007.3 <2e-16 ***
poly(x, y, degree = 2)1.1 -7.17e+02 8.04e+00 -89.2 <2e-16 ***
poly(x, y, degree = 2)0.2 -6.02e-01 2.00e-02 -30.1 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.02 on 161446 degrees of freedom
Multiple R-squared: 0.908, Adjusted R-squared: 0.908
F-statistic: 3.19e+05 on 5 and 161446 DF, p-value: <2e-16
如何将系数转换为方程式?我尝试了以下方法:
截距 + coeff1.0 * x + coeff2.0 * x^2 +coeff1.1 * x * y + coeff 0.1 * y + coeff 0.2 * y^2
我也尝试将上面公式中的 x 和 y 替换掉,但是用一些提取的 x 和 y 值填充这些方程的结果与(正确构造的)趋势面结果完全不同。
编辑 在下图中,显示了 poly(..., raw=F) 和 poly(...,raw=T) 的构建趋势表面之间的差异。建议我使用raw=T,但我更喜欢raw=F的曲面。还有办法理解上面的系数吗? Poly_raw_difference
【问题讨论】:
-
在公式中尝试
poly(x, y, degree = 2, raw = TRUE)。 -
@RuiBarradas:谢谢你的建议。它给出了不同的系数,并且使用 raw=TRUE 时的公式似乎确实有效。然而,我仍然不明白的是,上面示例中构建的趋势面是正确的,但不知何故,系数无法转化为作为该趋势面来源的适当方程。
-
如果没有
raw=TRUE,则返回的多项式(引用文档)都与 0 次常数多项式正交。你需要的是 raw 多项式。 -
@RuiBarradas:我编辑了我的问题以表明 raw=T 和 raw=F 趋势面之间存在差异。由于我更喜欢 raw=F 表面,有没有办法让这个模型的系数仍然有意义?
标签: r regression lm polynomials poly