首页 > 编程知识 正文

python可行性分析,python典型相关分析

时间:2023-05-04 02:35:44 阅读:234047 作者:4760

利用python进行显著性分析 实验数据

做的是朋友的 呃呃植物什么什么实验 ,相关数据已经打码,最右侧的一列是 spss 的显著性分析的结果

代码

最终设想是能实现和 SPSS 一样或者近似的结果

用到的库是
scipy,用于处理数据(皮尔逊相关系数) scipy一点点的介绍
pandas 读取Excel表

import scipy.stats as statsimport pandas as pddef i_max(l): # 求出最大的数的下标 m = 0 for i in range(len(l)): if l[i] > l[m]: m = i return md = [] # 后面需要的数据ave = [] # 后面需要的平均数excel = pd.DataFrame(pd.read_excel("~/Desktop/a.xlsx")) # 读取桌面上的Excel文件for i in range(0, 34, 3): t = [] ave.append(float(excel.iloc[i, 5])) for j in range(3): t.append(float(excel.iloc[i + j, 3])) d.append(t)index = [i_max(ave)]alp = ['a', 'b', 'c', 'd', 'e', 'f']for i in range(len(d) - 1): j = i_max(ave) # 找到最大的数的序号 ave[j] = 0.0 # 把这个数记为0.0 下次再找,这个数就不是最大的了 k = i_max(ave) # 现在找到最大的,其实是最开始的次大的数,但是我们标记成0.0,那么下次又可以找到这个数 index.append(k) # 记录每次比较的两个结果的序号 r, p = stats.pearsonr(d[j], d[k]) # pearsonr函数是求的皮尔逊相关系数,返回两个值,r是相关系数,p是显著系数 print(j + 1, k + 1, r, p)# 目前的结果前 4个 是和 SPSS 一样的,后面不一样的结果会慢慢找原因,然后修正# ...未完 结果: 10 4 -0.6413898608277883 0.55671626484822134 12 -0.9898759299467776 0.0906650229633433612 11 -0.8816299039421831 0.312893254076345611 7 -0.8243893815168324 0.38303741412216497 5 0.5335389318521752 0.64172356080150135 6 0.9360463758613995 0.22891269909303376 1 -0.25527000776792763 0.83567127818603441 2 -0.678734316474344 0.52505758816270892 3 0.727818444387284 0.481068700312822343 8 -0.7739014822551675 0.43660507717061648 9 0.9999946059038105 0.002091003016632062

更新分界线
——————————
好了,我坦白,不填坑了。我实在想不明白。先弃坑了。

历史中提交的图片或压缩文件

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。