首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何绘制基于数据列的Mann检验(Wilcoxon秩和检验)?

如何绘制基于数据列的Mann检验(Wilcoxon秩和检验)?
EN

Stack Overflow用户
提问于 2022-11-05 20:55:00
回答 1查看 31关注 0票数 0

我想绘制基于subtype列的Mann检验(Wilcoxon秩和检验),该列包含normalKIRPKIRCKICH数据。

我刚开始使用Python进行统计。

代码语言:javascript
复制
import pandas as pd
import plotly.express as px
from scipy.stats import mannwhitneyu


normal = df.iloc[:,7:-2][df['subtype'] == "normal"]
kirp = df.iloc[:,7:-2][df['subtype'] == "KIRP"]
kirc = df.iloc[:,7:-2][df['subtype'] == "KIRC"]
kich = df.iloc[:,7:-2][df['subtype'] == "KICH"]

nnormal, nkirp, nkirc, nkich = len(normal), len(kirp), len(kirc), len(kich)

U1, p = mannwhitneyu(normal, kirp, kirc, kich, method="exact")

回溯:

代码语言:javascript
复制
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/tmp/ipykernel_27/1709062782.py in <module>
----> 1 U1, p = mannwhitneyu(normal, kirp, kirc, kich, method="exact")

/opt/conda/lib/python3.7/site-packages/scipy/stats/_mannwhitneyu.py in mannwhitneyu(x, y, use_continuity, alternative, axis, method)
    389 
    390     x, y, use_continuity, alternative, axis_int, method = (
--> 391         _mwu_input_validation(x, y, use_continuity, alternative, axis, method))
    392 
    393     x, y, xy = _broadcast_concatenate(x, y, axis)

/opt/conda/lib/python3.7/site-packages/scipy/stats/_mannwhitneyu.py in _mwu_input_validation(x, y, use_continuity, alternative, axis, method)
    136 
    137     bools = {True, False}
--> 138     if use_continuity not in bools:
    139         raise ValueError(f'`use_continuity` must be one of {bools}.')
    140 

TypeError: unhashable type: 'DataFrame'

下游代码:

代码语言:javascript
复制
U2 = nnormal*nkirp*nkirc*nkich - U1
_, pnorm = mannwhitneyu(normal, kirp, kirc, kich, method="asymptotic")

# Plot
fig = px.box(_, y="pnorm")
fig.show()

期望输出示例:

EN

回答 1

Stack Overflow用户

发布于 2022-11-05 21:35:16

mannwhitneyu方法接受两个样本数组。您会得到错误,因为函数的第三个参数(use_continuity)可以是TrueFalse。如果要将kirp、kirc和kich与正常样本进行比较,可以这样做:

代码语言:javascript
复制
u_kirp, p_kirp = mannwhitneyu(normal, kirp, method="exact")
u_kirc, p_kirc = mannwhitneyu(normal, kirc, method="exact")
u_kich, p_kich = mannwhitneyu(normal, kich, method="exact")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74331424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档