Страница 1 из 1

Расчет корреляции

Добавлено: 29 июл 2008, 16:27
Zhenya Lazarev
Попытался рассчитать корреляцию между двумя наборами данных в R, но после введения следующих команд выскакивает ошибка:

Код: Выделить всё

> local({pkg <- select.list(sort(.packages(all.available = TRUE)))
+ if(nchar(pkg)) library(pkg, character.only=TRUE)})
> set1 = read.dbf(file.choose())
> str(set1)
'data.frame':   24014 obs. of  3 variables:
 $ lat    : num  65.9 67.9 69.6 71.3 73.5 ...
 $ lon_180: num  -86.0 -86.2 -86.7 -87.0 -87.3 ...
 $ ht_m   : num  -1013 -1420 -1199  -346 -2636 ...
 - attr(*, "data_types")= chr  "N" "N" "N"
> dim(set1)
[1] 24014     3
> set2 = read.dbf(file.choose())
> str(set2)
'data.frame':   75070 obs. of  3 variables:
 $ b         : num  -180 -180 -180 -180 -180 ...
 $ l         : num  62.2 62.8 63.2 64.2 64.8 ...
 $ POINT_ELEV: num  -38.8 182.5 937.5 520.0 700.0 ...
 - attr(*, "data_types")= chr  "N" "N" "N"
> dim(set2)
[1] 75070     3
> plot(set1$ht_m,set2$POINT_ELEV)
Ошибка xy.coords(x, y, xlabel, ylabel, log) : 
  'x' and 'y' lengths differ
Возможно дело в том, что в наборах разное количество записей?

Когда же хочешь узнать само значение корреляции, то:

Код: Выделить всё

> cor(set1$ht_m,set2$POINT_ELEV)
Ошибка в cor(set1$ht_m, set2$POINT_ELEV) : несовместимые размерности...
И в продолжение следующий вопрос - нельзя ли для рассчета корреляции использовать аркгисовский Geostatistical Analyst?

Re: Расчет корреляции

Добавлено: 30 июл 2008, 02:04
Максим Дубинин
Да, ошибка правильная вылезает для корреляции надо чтобы наборы были одного размера (количество элементов в 1=количеству элементов во 2).

Затем, я глянул примеры, а как это вобще коррелировать то? На картинке - черные точки - randy, красные - mybase. Это нельзя так влоб. Я бы взял черные - снял ими значения с растра по которому получены красные (ведь есть же он?), а потом уже считал.

Изображение

Re: Расчет корреляции

Добавлено: 30 июл 2008, 02:20
Zhenya Lazarev
Да, растр конечно есть - попробуем! Большое спасибо за ответ:)!