matlab 怎样进行T检验
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 怎样进行T检验相关的知识,希望对你有一定的参考价值。
你可以使用ttest函数。[h,sig,ci]=ttest(x,m,alpha,tail)
sig为观察值的概率,当sig为小概率时则对原假设提出质疑,ci为真正均值的1-alpha置信区间。 参考技术A ttest或者是ttest2,这是matlab自带的。你可以输入help
ttest或help
ttest2来看他们的帮助,非常方便的。
在 R 中进行多个 T 检验,精简
【中文标题】在 R 中进行多个 T 检验,精简【英文标题】:Conduct Multiple T-Tests in R, Condensed 【发布时间】:2019-07-22 00:25:18 【问题描述】:我希望在 R 中进行多个 t 检验,而不必复制粘贴每个测试。在查看“Level_#”时,每个测试将在“类型”(无论是“左”还是“右”)中是否存在差异。目前,我可能有:
t.test(Level_1 ~ Type, alternative="two.sided", conf.level=0.99)
t.test(Level_2 ~ Type, alternative="two.sided", conf.level=0.99)
Type Level_1 Level_2 Level_3
Left 17 50 98
Right 18 65 65
Left 23 7 19
Left 65 7 100
Right 9 13 17
问题是我有数百个“Level_#”,想知道如何自动化这个过程并输出结果的数据框。我的想法是以某种方式合并一个 apply 函数。
【问题讨论】:
【参考方案1】:您可以使用tidyverse
方法和purrr
和broom
包来实现。
require(tidyverse)
require(broom)
df %>%
gather(var, level, -type) %>%
nest(-var) %>%
mutate(model = purrr::map(data, function(x)
t.test(level ~ type, alternative="two.sided", conf.level=0.99,
data = x)),
value = purrr::map(model, tidy),
conf.low = purrr::map(value, "conf.low"),
conf.high = purrr::map(value, "conf.high"),
pvalue = purrr::map(value, "p.value")) %>%
select(-data, -model, -value)
输出:
var conf.low conf.high pvalue
1 level1 -3.025393 4.070641 0.6941518
2 level2 -3.597754 3.356125 0.9260015
3 level3 -3.955293 3.673493 0.9210724
样本数据:
set.seed(123)
df <- data.frame(type = rep(c("left", "right"), 25),
level1 = rnorm(50, mean = 85, sd = 5),
level2 = rnorm(50, mean = 75, sd = 5),
level3 = rnorm(50, mean = 65, sd = 5))
【讨论】:
谢谢。除了“p.value”之外,我如何向输出添加其他参数,例如置信区间? 不客气,很高兴我能提供帮助。请看我的编辑。另外,你可以在这里查看更多关于扫帚包的信息:cran.r-project.org/web/packages/broom/vignettes/broom.html以上是关于matlab 怎样进行T检验的主要内容,如果未能解决你的问题,请参考以下文章
如何用MATLAB的SurfStat工具箱对数据进行配对T检验