首页 > 其他分享 >提建议的解决方法

提建议的解决方法

时间:2024-05-23 11:33:54浏览次数:7  
标签:建议 power sq 效应 test 检验 样本量 解决 方法

increase sample size:但是必须给出统计学上的理由

  • Power estimation
library(pwr)

# t检验
power_t_test <- function(m1, m2, sd1, sd2, n1, n2, alpha = 0.05) {
  sd_pooled <- sqrt(((n1 - 1) * sd1^2 + (n2 - 1) * sd2^2) / (n1 + n2 - 2))
  d <- (m1 - m2) / sd_pooled
  power <- pwr.t.test(n = n1 + n2, d = d, sig.level = alpha, type = "two.sample", alternative = "two.sided")$power
  return(list(d = d, power = power))
}

# Wilcoxon秩和检验
power_wilcox_test <- function(z, n, alpha = 0.05) {
  r <- z / sqrt(n)
  power <- pwr.r.test(n = n, r = r, sig.level = alpha)$power
  return(list(r = r, power = power))
}

# 单因素方差分析
power_anova_test <- function(ss_between, ss_total, n, k, alpha = 0.05) {
  eta_sq <- ss_between / ss_total
  f <- sqrt(eta_sq / (1 - eta_sq))
  power <- pwr.anova.test(k = k, n = n, f = f, sig.level = alpha)$power
  return(list(eta_sq = eta_sq, f = f, power = power))
}

# Fisher's精确检验和卡方检验
power_fisher_chisq_test <- function(chi_sq, n, k, alpha = 0.05) {
  if (k == 2) {
    effect_size <- sqrt(chi_sq / n)
  } else {
    effect_size <- sqrt(chi_sq / (n * (k - 1)))
  }
  power <- pwr.chisq.test(w = effect_size, N = n, df = (k - 1) * (k - 1), sig.level = alpha)$power
  return(list(effect_size = effect_size, power = power))
}

# 示例用法
t_test_result <- power_t_test(m1 = 10, m2 = 12, sd1 = 2, sd2 = 2.5, n1 = 30, n2 = 30)
print(t_test_result)

wilcox_test_result <- power_wilcox_test(z = 2.5, n = 50)
print(wilcox_test_result)

anova_test_result <- power_anova_test(ss_between = 100, ss_total = 500, n = 10, k = 3)
print(anova_test_result)

fisher_chisq_test_result <- power_fisher_chisq_test(chi_sq = 8, n = 100, k = 2)
print(fisher_chisq_test_result)

好的,我来解释一下这些函数中使用的统计量:

  1. power_t_test函数:

    • d: 这是Cohen's d效应量,用于衡量两组平均值之间的差异大小。它是两组平均值的差值除以pooled标准差。
    • power: 这是在给定效应量和样本量的情况下,t检验能够检测到真实效应的概率。
  2. power_wilcox_test函数:

    • r: 这是Wilcoxon秩和检验的效应量,计算方式为标准化的Wilcoxon统计量z除以sqrt(n)。
    • power: 这是在给定效应量和样本量的情况下,Wilcoxon秩和检验能够检测到真实效应的概率。
  3. power_anova_test函数:

    • eta_sq: 这是η^2效应量,用于衡量在单因素方差分析中,因子对总变异的解释程度。它等于因子平方和除以总平方和。
    • f: 这是f效应量,与η^2相关,计算方式为sqrt(eta_sq / (1 - eta_sq))。
    • power: 这是在给定效应量和样本量的情况下,单因素方差分析能够检测到真实效应的概率。
  4. power_fisher_chisq_test函数:

    • effect_size: 这是效应量,对于2x2列联表,计算方式为sqrt(chi_sq / n);对于其他情况,计算方式为sqrt(chi_sq / (n * (k - 1)))。
    • power: 这是在给定效应量和样本量的情况下,Fisher's精确检验或卡方检验能够检测到真实效应的概率。

总的来说,这些函数中使用的统计量包括Cohen's d、Wilcoxon秩和检验的r、η^2、f和卡方检验的效应量,它们都是衡量效应大小的指标。通过这些指标和样本量,可以计算出相应检验的统计力。

怎么阐述这些理由:
The current study has not enough power - it can detect differences between groups with the probability of xx. That may cause high-level of type-II error. If we want to achieve at least 0.8 power, we need to have that many animals in each group, and the groups must be balanced.

然后下面用power = 0.8作为阈值,看看需要的n大小是多少

pwr.anova.test(k = k, f = f, sig.level = alpha, power=0.8)

标签:建议,power,sq,效应,test,检验,样本量,解决,方法
From: https://www.cnblogs.com/chen-heybro/p/18208018

相关文章

  • VMware Vsphere 配置多写入器以及启用CBT错误解决
    VMwareVsphere配置多写入器以及启用CBT错误解决为满足OracleRac需求,需要在VMware上配置共享磁盘同时给两台rac虚拟机使用,以下为配置过程:1.两台虚拟机同时新增一个SCSI控制器,默认选项即可,如下图所示。在A虚拟机新增一块硬盘硬盘:类型:一定要选择厚置共享类型:多写入器......
  • VScode生成头文件的 #ifndef #define #endif方法
    在Vscode中,按快捷键Ctrl+Shift+P搜索snippets命令,选择“代码片段:配置用户代码片段”选择“新建全局代码片段文件”新建名称:addheader创建后会自动打开,将内容替换为以下代码:{ "CC++Header":{ "scope":"c,cpp", "prefix":"header", "description":"......
  • 解决postgres数据库remaining connection slots are reserved for non-replication su
    来源:【小工具】-解决postgres数据库remainingconnectionslotsarereservedfornon-replicationsuperuserconnectio-CSDN博客psycopg2.OperationalError:FATAL:remainingconnectionslotsarereservedfornon-replicationsuperuserconnection报错信息Traceback......
  • uniapp 闪屏页被拉伸解决方案 9图制作
    问题当闪屏页是一张图的时候,针对不同分辨率,容易被拉伸解决9图制作(必须是纯色背景)首先拿一张png图用安卓studio打开,就生产了一张9图然后进行9图制作右侧画边,底部画边,然后左边和顶部,利用画边,把可以拉伸的描出来在uniapp里面设置附送大佬的视频https://www.bilibil......
  • Ubuntu 解决 Too many open files 问题
    #查看限制结果ulimit-a#修改配置#删除最后一行echo-e"#add_config"|sudotee-a/etc/security/limits.conf#加上文本echo-e"\n"|sudotee-a/etc/security/limits.confecho-e"mzc\tsoft\tnproc\t204800"|sudotee-a......
  • 树莓派内网穿透方法大全
     在用树莓派搭建自有服务的过程中,比如NAS,经常会遇到内网穿透这个词。通俗而言,就是让你能用4G网络连接到家里正连着路由器的树莓派。内网穿透技术有很多种,常见的有端口映射、反向代理和P2P穿透。端口映射,即静态地址转换,将内网地址与公网地址进行一对一的转换,且每个内部......
  • 解决老旧电脑在win7中浏览器访问https网站出现的Let‘sEncrypt证书过期的问题
        原因LetsEncrypt证书未过期,但是其顶级ca根证书“DSTRootCAX3”在2021-09-01过期了,老旧设备上的win系统会被影响到。解决步骤下载三张Letsencrypt的根证书“DSTRootCAX3”的最新版本,包含isrgrootx1.der+isrg-root-x2.der+lets-encrypt-r3.der:https://do......
  • 记录一个按列内容拆分Excel文件的小方法
    importtkinterastkimportosimporttkinter.filedialogimporttkinter.simpledialogimportpandasaspdimporttkinter.messageboximporttkinter.ttkimporttracebackglobalcolumn,sheet_origlobalcombox_2#按内容分类defsplit_by_group():#获取需......
  • 记录一个批量压缩文件夹的方法
    importosimportzipfilefromtkinterimportfiledialogclassZipDir:"""ZipFile()用于创建1个zip文件对象,示例中的三个参数分别表示:filename:压缩成的zip包的路径(含压缩包名称);例如:xxx.zipmode:可选r,w,a,代表不同的打开文件的方式;r只读;w重写;a添加......
  • 记录一个按文档长度分割Excel文件的方法
    importtkinterastkimportpandasaspdimporttkinter.filedialogimportosimporttracebackwindows=tk.Tk()####按长度拆分——自定义函数##拆分函数defdivision_by_length(iterable,length):iterable_len=len(iterable)start=0while1:......