R: Сравнение странно проиндексированных векторов - PullRequest
0 голосов
/ 23 декабря 2010

У меня есть некоторые данные, с которыми сложно разобраться со свойствами.Есть два вектора, которые измеряют качество (от 0 до 1) в точках вдоль физического объекта.Эти измерения индексируются в соответствии с расстоянием, на которое было произведено измерение от нижней части объекта.Затем к объекту применяется преобразование, улучшающее качество, и измерения проводятся снова.Тем не менее, число измерений не одинаково, равно как и точки, в которых они сделаны.

В R данные выглядят примерно так (но с гораздо большим количеством точек)

Допреобразование:

     value index
[1,]   0.3     6
[2,]   0.6    16
[3,]   0.1    25
[4,]   0.8    37
[5,]   0.2    46
[6,]   0.4    58
[7,]   0.4    64
[8,]   0.2    76

После преобразования:

      value index
 [1,]   0.3     1
 [2,]   0.5     9
 [3,]   0.7    18
 [4,]   0.4    30
 [5,]   0.9    44
 [6,]   0.3    48
 [7,]   0.4    61
 [8,]   0.5    66
 [9,]   0.3    76
[10,]   0.1    85

При условии, что качество вдоль объекта является непрерывным (если не наблюдается в каждой точке), и что количество улучшений во времятрансформация зависит от точки вдоль объекта, я хотел бы показать распределение улучшения качества.

Поскольку существует разное количество измерений и разные показатели, я не думаю, что

plot(density(after$value - before$value)) 

это то, что я ищу.У меня вопрос: есть ли разумный способ принять это различие так, чтобы у меня было несколько наблюдений за тем, насколько улучшилось качество?Или я застряну, глядя на разницу в средствах?

1 Ответ

3 голосов
/ 23 декабря 2010

Может быть, это то, что вам нужно: вы хотите отобразить сглаженную кривую Индекс против значения для «до» преобразования и для «после» преобразования на том же графике, чтобы вы могли визуализировать общее «улучшение» качества: Я показываю это ниже с некоторыми смоделированными данными.

bef <- .2 + 2*((1:1000)/1000 - .5)^2  + round(rnorm(1000),1)/100
aft <- bef * (1 + rnorm(1,.7,.2))
bef.samp <- sample(1:1000, 100)
aft.samp <- sample(1:1000, 60)
bef.df <- data.frame( value = bef[ bef.samp ], index = bef.samp )
aft.df <- data.frame( value = aft[ aft.samp ], index = aft.samp )
bef.aft <- rbind( cbind(when = 'bef', bef.df), cbind( when = 'aft', aft.df))
ggplot(bef.aft, aes(index,value)) + 
   geom_smooth(aes(colour = when), se=0, size=1) + 
      geom_point(aes(colour=when))

alt text

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