如何找到平滑样条/黄土回归的p值?


10

我有一些变量,我很想找到它们之间的非线性关系。因此,我决定拟合一些样条曲线或黄土,并打印漂亮的图(请参见下面的代码)。但是,我还希望获得一些统计数据,以使我了解这种关系是随机性问题的可能性有多大……即,我需要一些总体p值,例如对于线性回归而言。换句话说,我需要知道拟合曲线是否有意义,因为我的代码会将曲线拟合到任何数据。

x <- rnorm(1000)
y <- sin(x) + rnorm(1000, 0, 0.5)

cor.test(x,y)
plot(x, y, xlab = xlab, ylab = ylab)
spl1 <- smooth.spline(x, y, tol = 1e-6, df = 8)
lines(spl1, col = "green", lwd = 2)

spl2 <- loess(y ~ x)
x.pr <- seq(min(x), max(x), length.out = 100)
lines(x.pr, predict(spl2, x.pr), col = "blue", lwd = 2)

Answers:


8

花键库具有的功能bsns将创建样条基与使用lm功能,那么你就可以适应包括样条曲线的线性模型和模型,并使用anova功能做全,减少模型试验,看样条模型拟合显著更好比线性模型

这是一些示例代码:

x <- rnorm(1000)
y <- sin(x) + rnorm(1000, 0, 0.5)

library(splines)

fit1 <- lm(y~x)
fit0 <- lm(y~1)
fit2 <- lm(y~bs(x,5))

anova(fit1,fit2)
anova(fit0,fit2)

plot(x,y, pch='.')
abline(fit1, col='red')
xx <- seq(min(x),max(x), length.out=250)
yy <- predict(fit2, data.frame(x=xx))
lines(xx,yy, col='blue')

您也可以使用该poly函数进行多项式拟合,并测试非线性项以测试曲率。

对于黄土来说,要复杂一些。对于黄土平滑参数,存在一些等效自由度的估计,可以将其与线性和黄土模型的值一起使用,以进行F检验。我认为基于自举和置换测试的方法可能更直观。R2

有一些技术可以计算和绘制黄土拟合的置信区间(我认为ggplot2软件包中可能有内置方法),您可以绘制置信带并查看直线是否适合该区间(此方法不是p值,但仍然给出是/否。

您可以拟合线性模型并采用残差,然后将黄土模型拟合至残差作为响应(而感兴趣的变量作为预测变量),如果真实模型是线性的,则此拟合应接近于一条平线并重新排列点相对于预测变量应该没有任何区别。您可以使用它来创建置换测试。拟合黄土,找到距离0最远的预测值,现在随机置换这些点并拟合新的黄土,然后从0寻找最远的预测点,重复一堆,p值是更远的排列值的比例从0到原始值。

您可能还希望将交叉验证作为选择黄土带宽的一种方法。这没有给出p值,但是无限带宽对应于理想的线性模型,如果交叉验证表明非常大的带宽,则表明线性模型可能是合理的,如果较高的带宽明显不如某些带宽越小,则表明曲率和线性不足。


谢谢格雷格!我认为第一段听起来很可行,只是我对与线性模型比较不感兴趣,只是看样条线是否可以解释它。您能否提供一些代码或更具体的指针,以了解如何使用方差分析测试样条曲线?我一直在研究bs和ns函数,但是我在统计学上不太擅长自己发明它。
好奇

是的,我发现了如何为黄土计算(请参阅fibosworld.wordpress.com/2012/11/04/loess-regression-with-r),但我不知道如何将转换为p-价值...R 2R2R2
好奇的

我为anovawith splines方法添加了一些示例代码。对于来自的F检验,请考虑是SSR除以SST,而是SSE除以SST,因此比率仅SSR除以SSE(取消SST的2种情况)。包括自由度和一点代数,就可以得到整体回归的F统计量。R 2 1 R 2 R 2R2R21R2R21R2
格雷格·斯诺

格雷格,谢谢!1)您能解释一下正在lm(y~bs(x,5))做什么,为什么不这样做lm(y~I(bs(x,5)))?我对此调用感到很困惑,因为bs(x,5)的结果不是变量... 2)我是否正确理解我要查找的p值是的结果anova(fit0,fit2)
好奇

1
它只是在做线性回归。就像您可以使用,和进行线性回归以拟合基于多项式的曲线一样,该函数创建变量的变换并将其传递给线性变量。x 2 x 3 xxx2x3bsxlm
格雷格·斯诺
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.