2013-03-26 5 views
0

Мне нужно вычислить ковариацию на data.frame, но я получу матрицу NaN, если data.frame имеет только одну строку. Что мне делать для ковариации на data.frame с одной строкой?R cov (x) где x - data.frame с одной строкой

Ну основной проблемой является: у меня есть замечание от нормального распределения (да иногда это слишком маленький) я хочу, чтобы вычислить среднее и корреляционную матрицу для максимизации функции правдоподобия

, если есть только один наблюдение его возможное?

+0

Принимать ковариацию кадра данных с одной строкой не имеет смысла, поскольку ковариация определяется как между двумя или более наборами данных. Почему вы хотите взять ковариацию одного ряда? – peeol

+0

Я хотел вектор covatiance с собой –

+0

То же самое, что и дисперсия. Попробуйте вместо этого использовать дисперсию вектора. – peeol

ответ

0

?cov Отрывок из

The denominator n - 1 is used which gives an unbiased estimator of 
the (co)variance for i.i.d. observations. These functions return 
‘NA’ when there is only one observation (whereas S-PLUS has been 
returning ‘NaN’), and fail if ‘x’ has length zero. 

Если вам нужно разделить на n вместо n-1, я рекомендую писать специальную функцию ковариации.

+0

есть ли какая-либо сборка в одном или ее слишком редко, чтобы иметь одно наблюдение в моей программе изменить некоторую константу чтобы избежать данных.кадры с одной строкой –

+0

Вы можете протестировать одно наблюдение, а если TRUE, постройте нулевую матрицу. – ndoogan

+0

Обнуление плохое, потому что это не может быть ковариационная матрица распределения gause , если вы увлекаетесь обучением и вероятностями обучения, что бы вы предложили сделать с матрицей единственного повторного наблюдения Возможно, я должен вычислить ковариацию с n в качестве знаменателя, когда у меня есть только один наблюдение –

0

Если у вас есть только одно наблюдение, ковариация не определена. Поэтому матрица NaN является вполне разумным выходом.

Что касается того, как лучше всего справиться с этим в контексте вашей проблемы, невозможно сказать, не зная больше о вашей проблеме.

+0

Может быть, я пропущу что-то из статистического курса, но ковариация может быть определена в математике для одного вектора? –

+0

@ Ярослав Кищенко: Это другое дело: 'var (c (1,2,3,4))'. – NPE

+0

какая разница между var и cov мои наблюдения из многомерного распределения –

0

Основываясь на ваш комментарий, сделайте следующее:

Проверьте, если кадр данных имеет только одну строку. Если он имеет одну строку, найдите дисперсию, используя функцию var в R вместо функции cov. Если у него несколько строк, используйте cov.

Обратите внимание, что ковариация вектора с самим собой совпадает с дисперсией этого вектора.

+0

спасибо, теперь я получаю только один маленький вопрос, чтобы сделать его понятным Я никогда не встречался до функции covar Я использую cov они такие же? –

+0

Да, моя ошибка. Функция 'cov' правильна для ковариации (нет функции, называемой' covar', я неправильно помню). – peeol

+0

сейчас я получаю спасибо –

Смежные вопросы