Я пытаюсь написать функцию, которая вычисляет корреляцию между моей зависимой переменной и независимыми переменными, чтобы я мог найти идеальное отставание для своих данных, прежде чем я включил ее в модель регрессии. Я хочу рассчитать оптимальное отставание для каждой четверти (я имею в виду каждую четверть года, которую я проверяю) своих данных обучения, а затем усреднить полученные корреляции для каждого из лагов. Задержка 1 означает, что моя зависимая переменная в t лучше всего описывается моими переменными в t-1. Можно подумать об этом как о перекрестке в основном. Мой код выглядит следующим образом:Ошибка несогласованных размеров в функции cor
Korrelations.Maximierer = function(Aktie, Kategorie){
Ergebnis = matrix(nrow = 114,ncol = 18)
for(tmp in 1:18){
Start.Test=1*tmp
Ende.Test=13*tmp
Untersuchungszeitraum = Aktie[Start.Test:Ende.Test]
for(i in 0:113){
int.low=96-i+18*tmp
int.high=108-i+18*tmp
Ergebnis[i+1,tmp]=mean(abs(cor(Untersuchungszeitraum,Kategorie[int.low:int.high,-1],
method = "spearman")))
}
}
return(Ergebnis)
}
Мои данные измеряются в течение нескольких недель, поэтому каждый квартал состоит из 13 точек данных. Кроме того, я проверяю 4,5 года данных, следовательно, 18 кварталов. У меня есть данные для моих независимых переменных до 113 недель до первой точки данных зависимой переменной. Когда я запускаю это я получаю следующее сообщение об ошибке:
Error in cor(Untersuchungszeitraum, Kategorie[int.low:int.high, -1],
method = "spearman") :
incompatible dimensions In addition: There were 50 or more warnings
(use warnings() to see the first 50)
Typing в "предупреждения() говорит мне, что отклонение стандарт равен нулю, то, что же меня раздражает.
Я запускаю код для первого образца вручную, и оба «Untersuchungszeitraum» и «Kategorie [int.low: int.high]» имеют одинаковое количество строк и, следовательно, корреляция должна быть вычислимой.
После того, как вы установили мои x и y вручную, просто скопируйте код с моего скрипа и установите tmp = 1 и i = 0 вручную, поэтому опускайте петли for. Я попытался вычислить корреляцию полученных результирующих кадров и получил результат, который я искал. Плюс стандартное отклонение - это нулевая ошибка.
Я не понимаю, почему это работает, когда я набираю его вручную, а не когда я использую skript. Кроме того, некоторое понимание стандартного отклонения - это нулевая ошибка. Спасибо за любую помощь!
Что такое размерность 'Aktie' и' Kategorie'? –
Извините, должен был добавить это. Размерность Aktie - это вектор с 286 элементами. Kategorie - это data.frame с 399 строками и между 2 и 48 столбцами, каждый из которых стоит для одной переменной. Вектор Aktie также формируется из кадра данных и генерируется путем выбора только одного столбца в этом файле данных. Aktie = Dataframe [, 2]. – Sket