Answers:
...该关系是非线性的,但x和y之间有明确的关系,我如何测试关联并标记其性质?
这样做的一种方式将是适合作为半参估计函数使用,例如,一个广义相加模型和测试是否功能性估计是恒定的,这将表明没有关系和。这种方法使您不必进行多项式回归,并且有时不必对多项式的阶数做出任意决定,等等。
具体来说,如果您有观测值,则可以拟合模型:
并检验假设。在中,您可以使用函数执行此操作。如果是您的结果并且是您的预测变量,则可以键入:R
gam()
y
x
library(mgcv)
g <- gam(y ~ s(x))
键入summary(g)
将为您提供上述假设检验的结果。就描述关系的性质而言,最好通过绘图来完成。一种方法R
(假设已经输入了上面的代码)
plot(g,scheme=2)
如果您的响应变量是离散的(例如二进制),则可以通过拟合逻辑GAM来将其容纳在此框架中(在中R
,您可以添加family=binomial
到的调用中gam
)。此外,如果有多个预测,则可以包括多个添加剂术语(或普通线性项),或适合的多变量函数,例如,如果你有预测。如果使用默认方法,则交叉验证会自动选择关系的复杂性,尽管此处有很多灵活性- 如果感兴趣,请参阅帮助文件。x, z
gam
如果非线性关系是单调秩相关(Spearman的rho)将是适当的。在您的示例中,有一个明显的小区域,曲线从单调递增变为单调递减,就像抛物线在一阶导数等于。
我认为,如果您有一些建模知识(除了经验信息之外)(在)发生了变化,那么您可以将相关性描述为正,并在对的集合上使用Spearman的rho其中提供该相关性的估计,并对使用Spearman相关性的另一种估计,其中相关性为负。然后,这两个估计值表征了和之间的相关结构,并且与使用所有数据进行估计时接近的相关估计值不同,这些估计值都将很大并且符号相反。(X ,ÿ )X < 一个X > 一个X ÿ 0
有人可能会争辩说,仅凭经验信息(即观察到的对)就足以证明这一点。
您可以使用距离相关性测试来测试任何类型的依赖性。有关距离相关性的更多信息,请参见此处:了解距离相关性计算
这是原始论文:https : //arxiv.org/pdf/0803.4101.pdf
在R中,这是在energy
具有dcor.test
功能的包中实现的。
如果我的理解是错误的,请有人纠正我,但是处理非线性变量的一种方法是使用线性逼近。因此,例如,取指数分布的对数应该可以将变量视为正态分布。然后,它可以像任何线性回归一样用于解决问题。
我曾经实现通用的加性模型来检测两个变量之间的非线性关系,但是最近我发现了通过nlcor
R中的程序包实现的非线性相关性,您可以按照与Pearson相关性相同的方式来实现此方法,相关系数在0和1之间,而不是在Pearson相关中在-1和1之间。较高的相关系数意味着存在很强的非线性关系。假设两个时间序列x2
和y2
,两个时间序列之间的非线性相关性如下测试
install.packages("devtools")
library(devtools)
install_github("ProcessMiner/nlcor")
library(nlcor)
c <- nlcor(x2, y2, plt = T)
c$cor.estimate
[1] 0.897205
这两个变量似乎通过非线性关系密切相关,您还可以获取相关系数的调整后的p值
c$adjusted.p.value
[1] 0
您还可以绘制结果
print(c$cor.plot)
您可以查看此链接以获取更多详细信息