Ошибка в собственных значениях (сигма, симметрия c = ИСТИНА): матрица 0 x 0 в метрологии uncertM C с матрицей корреляции 2x2 - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь узнать, как использовать пакет MetRology в R. Я использовал данные в Приложении H.2 руководства GUM в качестве простого примера, чтобы попытаться распространить неопределенность по методу Монте-Карло, включая корреляцию. У меня есть две переменные V и I. Поэтому у меня есть корреляционная матрица 2x2 с корреляцией между I, V в недиагональных элементах. Если я поставлю эту матрицу для функции uncertM C, я получу ошибку: «Ошибка в собственных (Sigma, симметрия c = ИСТИНА): матрица 0 x 0». Если я не включаю матрицу корреляции, я не получаю ошибку. Почему я получаю ошибку, когда включена корреляция? В руководстве по метрологии есть пример с четырьмя переменными и корреляционной матрицей 4x4, которая работает для меня. Есть что-то очевидное, что я делаю не так?

Заранее спасибо!

library(errors) # for gum H.2 dataset
library(metRology) # for uncertMC

#extract relevant data

meanV  <-  with(GUM.H.2, mean(V))
meanI  <-  with(GUM.H.2, mean(I))

#uncertainties of the mean as per GUM (over sqrt(N))

uV <-  with(GUM.H.2, sd(V)/sqrt(length(V)))
uI <-  with(GUM.H.2, sd(I)/sqrt(length(I)))

# correlation between V and I

corIV  <-  with(GUM.H.2, cor(I,V))

#set up a 2 x 2 correlation matrix

u.cor <-  diag(1,2)

# off-diagonal elements

u.cor[1,2] <- u.cor[2,1] <-  corIV

#set up inputs for uncertMC

# the expression Z = V/I

expr <-  expression(V/I)

x <- list(V= meanV, I= meanI)

u  <-  list(V=uV, I=uI)

u.MC <-  uncertMC(expr = expr, x = x, u = u, cor = u.cor)

#errors with Error in eigen(Sigma, symmetric = TRUE) : 0 x 0 matrix
...