首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环显著性检验

循环显著性检验
EN

Stack Overflow用户
提问于 2012-02-28 06:42:21
回答 2查看 1.1K关注 0票数 2

如果我有来自一组风叶的风向读数,是否有类似t.test (或其他显著性检验)的东西可以对循环数据执行?我假设一个正态分布(下面的数据来自这里)。我找到了CircStats包,但我想我应该在这里查找一些额外的指导。

以下是一些示例数据:

代码语言:javascript
复制
df1 <- data.frame(unit=letters, wind.direction=c(99,88,93,99,86,90,101,109,109,91,86,94,106,92,99,103,110,98,107,109,93,102,92,99,109,85))

只使用标准的t.test就可以很好地工作,因为它不会绕过零。但,

代码语言:javascript
复制
df2 <- data.frame(unit=letters, wind.direction=c(1,350,355,1,348,352,3,11,11,353,348,356,8,3,1,5,12,0,9,11,355,4,354,1,11,347))

没有,因为它的圆形平均值是~0,而线性平均值是~139…

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-28 07:17:03

您可以在circular包中使用aov.circular

代码语言:javascript
复制
# Sample data (with two groups, to compare the means)
library(circular)
x <- as.circular( 
  c(1,350,355,1,348,352,3,11,11,353,348,356,
    8,3,1,5,12,0,9,11,355,4,354,1,11,347),
  unit="degrees" 
)
g <- sample(LETTERS[1:2], 26, replace=TRUE)
# Test
aov.circular(x, g)
票数 1
EN

Stack Overflow用户

发布于 2012-02-28 07:28:11

这就是我想说的:

代码语言:javascript
复制
> df2$wd.scaled = apply(as.matrix(df2[,2]),1,function(x) ifelse(x>180,x-360,x))
> df2
   unit wind.direction wd2 wd.scaled
1     a              1   1         1
2     b            350 -10       -10
3     c            355  -5        -5
4     d              1   1         1
5     e            348 -12       -12
6     f            352  -8        -8

> mean(df2$wd.scaled)
[1] 0.3846154

如果你在180附近没有太多的观察值,这将会起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9473545

复制
相关文章

相似问题

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