Круговая значимость тестирования - PullRequest
2 голосов
/ 28 февраля 2012

Если у меня есть показания направления ветра из коллекции лопаток ветра, есть ли что-то вроде 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 ]

1 голос
/ 28 февраля 2012

Вы можете использовать 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)
0 голосов
/ 28 февраля 2012

Вот что я хотел сказать:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...