python - 用python统计比较曲线

标签 python statistics curve-fitting curve

我来自生物医学研究领域。

我的一个实验可以生成如所附图像中的曲线(所附图像是随机生成的示例数据)。

我想从统计上说,蓝色曲线与橙色曲线相比表现明显不同。

例如,在时间 ~1 - 5 之间,两条曲线之间的标准差不重叠,因此我假设它们在统计上是不同的。

有谁知道我可以在这里使用哪种统计方法(是方差分析吗?)来用 python 编写代码?

谢谢大家example curve

最佳答案

在您的情况下(将数据点作为时间序列),我想到的一件事是使用相关性指标(低分意味着您的特征之间的相关性较低: 在你的例子中,你实际上有 3 个特征(时间、red_trend、blue_trend),当然还有作为平均点的趋势。

这里的重要问题是,使用什么相关性指标? 基于this website, by Jason Brownlee PhD ,因为你的特征都是数字,并且可能存在非线性关系,所以你最好使用斯 PIL 曼相关系数。但使用 pearson 也没什么坏处。

您还可以在之前提出的网站中查看何时使用其他方法(即方差分析)。

作为实现示例

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats


t = np.linspace(1, 20, 100)
x = np.sin(np.exp(t))
y = np.cos(np.exp(t))

plt.plot(t, x)
plt.plot(t, y)

res1 = stats.spearmanr(x, y)
print(res1)
# SpearmanrResult(correlation=-0.01120912091209121, pvalue=0.9118658174696723)

res2 = stats.pearsonr(x, y)
print(res2)
# (-0.016667117318862758, 0.8692689697764168)

只要您的相关性接近于零,您的特征之间就应该没有关系。

在您自己的测试中,也请注意 p 值,在我的示例中,p 值很高,在统计上不显着(由于手动生成数据),您的结果将是如果您设法获得 p 值 < 0.05,则具有统计显着性。

关于python - 用python统计比较曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77286120/

相关文章:

具有线程支持的python网络爬虫

python - SQLAlchemy,如何按空数组列进行过滤?

python - "sample larger than population"in random.sample python

python - 使倾斜图像周围的黑色轮廓变白opencv

java - 如何检测 Scala 源代码中对 Java 类的依赖?

python - 像普通 python 函数一样调用 scipy.stats 概率分布

r - 计算 R 中的方差和置信区间之内和之间

r - 向直方图添加拟合函数

python - python中的非线性曲线拟合程序

gnuplot - `set xrange [x_min:x_max]` 是否限制用于函数拟合的范围?