首页 > 解决方案 > 在统计上下文中处理关联数据的正确方法

问题描述

我有几个来自实验设置的数据点。实验进行了数百次。对于每个实验,测量了定义时间 ( t_1- t_5) 的 5 个数据点。

这个草图 中,显示了这些测量的平均值和标准偏差。

我主要通过执行以下操作获得了这些结果:

import numpy as np
datas = [data0, data1, data2, data3, data4]
datasMean=[]
datasStd=[]
for data in datas:
    datasMean.append(data.mean())
    datasStd.append(data.std())

使用一些统计分析,我想了解我的假设,即有时t_4测量值确实低于其他时间 - 与该实验中的其他数据点相关。

有什么方法可以证明这个假设是正确的?我担心我的实验结果可能例如主要包括 40% 的绿色数据点和 40% 的蓝色数据点(或其他更复杂的分布,甚至更模糊),如图所示

如何验证我的假设,即在大量实验运行中,与某个实验的其他数据点相比,数据点真的t_4总是较低?

numpyor (或其他包)的哪些功能scipy.stats适合解决这个问题?

标签: pythonstatistics

解决方案


这是否捕获了您的数据外观的一部分?:

Experiment   t1 t2 t3 t4 t5                
experiment1  a  b  c  d  e
experiment2  a  b  c  d  e
experiment3  a  b  c  d  e
experiment4  a  b  c  d  e
experiment5  a  b  c  d  e

其中 a、b、c、d 和 e 是在定义时间 t1-t5 记录的数据点。您想验证您的假设,即对于某个实验,d 总是低于 a、b、c 和 e?

这是可行的解决方案:调整数据部分的外观。


Experiment  t1  t2 t3 t4 t5               
experiment1  2  10  4  8  1
experiment2  3   3  2  5  2
experiment3  9   2  7  6  3
experiment4  4   1  6  4  5
experiment5  6  20  3  5  7
import pandas as pd
import numpy as np

#change column dtype to numeric
df[['t1', 't2','t3', 't4','t5']] = df[['t1', 't2','t3', 't4','t5']].apply(pd.to_numeric)

# new column holding minimum value occurring in every row
df['min_value'] = df.idxmin(axis=1)

结果:

Experiment  t1  t2  t3  t4  t5  min_value                   
experiment1 2   10  4   8   1   t1
experiment2 3   3   2   5   2   t3
experiment3 9   2   7   6   3   t2
experiment4 4   1   6   4   5   t2
experiment5 6   20  3   5   7   t3

推荐阅读