循环重要性测试

时间:2012-02-27 22:42:21

标签: r statistics geometry

如果我从一组风向标中获得风向读数,是否可以对循环数据执行t.test(或其他重要性测试)?我假设正态分布(下面的数据来自)。我找到了CircStats包,但我想在这里查看一些额外的指导。

一些示例数据:

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可以正常工作,因为它不会绕零。但是,

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 ...

2 个答案:

答案 0 :(得分:1)

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

# 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 :(得分:0)

这就是我的意思:

> 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附近没有很多观察结果,这将有效。