Я новичок в кодировании, а также размещении на форуме, но я сделаю все возможное, чтобы объяснить проблему и дать достаточно опыта, чтобы вы могли помочь мне работать через это. Я много искал решения для подобных ошибок, но весь код, который его производит, и формат данных позади него сильно отличаются.Ошибка в парах [, нм]: неправильное количество измерений
Я работаю с биологическими данными, которые состоят из различных категорий роста, но все, что меня интересует, это длина (SCL в моем коде) и возраст (возраст в моем коде). У меня много измерений длины и возраста для каждого человека во времени, и я подхожу к линейной модели nlme для несовершеннолетних возрастов и кривой фон Берт в зрелые века. Моя ювенильная модель работает очень хорошо, и я выделил h (наклон линии) и t (x перехват). Теперь мне нужно использовать эти параметры, а также T (известный возраст в зрелости), чтобы соответствовать зрелой стадии. Зрелая модель будет оценивать K (это мой единственный неизвестный). Я включил подмножество моих данных для одного человека (ID50). Это информация только для зрелых лет с h и t от юниорской подкладки, прикрепленной в самых дальних правых колонках.
Подмножество моих данных:
Это не формат очень хорошо, но я не знаю, как еще, чтобы отобразить его
сгруппированных данных: SCL ~ Возраст | ID
ID SCL Age Sex Location MeanSCL Growth Year Status T h t
50 86.8 27.75 Female VA 86.8 0.2 1994 Mature 27.75 1.807394 -19.83368
50 86.9 28.75 Female VA 87.1 0.4 1995 Mature 27.75 1.807394 -19.83368
50 87.3 29.75 Female VA 87.5 0.5 1996 Mature 27.75 1.807394 -19.83368
50 87.8 30.75 Female VA 88 0.4 1997 Mature 27.75 1.807394 -19.83368
50 88.1 31.75 Female VA 88.1 0 1998 Mature 27.75 1.807394 -19.83368
50 88.1 32.75 Female VA 88.2 0 1999 Mature 27.75 1.807394 -19.83368
50 88.2 33.75 Female VA 88.3 0.2 2000 Mature 27.75 1.807394 -19.83368
50 88.4 34.75 Female VA 88.4 0.1 2001 Mature 27.75 1.807394 -19.83368
50 88.4 35.75 Female VA 88.4 0 2002 Mature 27.75 1.807394 -19.83368
50 88.5 36.75 Female VA 88.5 0 2003 Mature 27.75 1.807394 -19.83368
Это функция роста:
vbBiphasic = function(Age,h,T,t,K) {
y=(h/(exp(K)-1))*(1-exp(K*((T+log(1-(exp(K)-1)*(T-t))/K)-Age)))
}
Это оригинальная модель роста, которая должна уместиться:
ID50 относится к моему subsetted набор данных только с индивидуальным 50
VB_mat <- nlme(SCL~vbBiphasic(Age,h,T,t,K),
data = ID50,
fixed = list(K~1),
random = K~1,
start = list(fixed=c(K~.01))
)
Однако эта модель дает ошибку:
Error in pars[, nm] : incorrect number of dimensions
Который говорит мне, что он пытается оценить другое количество параметров, чем у меня (я думаю). Первоначально я устраивал его для всех зрелых людей (для упрощения я теперь стараюсь соответствовать одному). Вот все мои вариации в коде модели, все они получают ту же ошибку:
- Ввод усредненные значения (возраст, H, T, T, K) всего населения вместо переменных.
- с использованием подмножества из 5 человек и обоих (Age, h, T, t, K), а также усредненные значения для этих лиц для каждой переменной.
- с использованием 5 разных индивидуумов отдельно с обоими (Age, h, T, t, k), а также их фактическими значениями для этих переменных (все запустили отдельно, т.е. 10 различных строк кода на случай, если некоторые работали, а другие didn 't ... но никто не сделал).
- Рассказывая модель для оценки всех параметров, а не только K
- устраняющих всех параметров, кроме K
- Переходя все значения в векторы (это то, что один форум с подобной ошибкой сказал сделать)
Наиболее из них были направлены на то, чтобы изменить количество параметров, которые R считали необходимыми для оценки, однако ни один из них не работал для меня.
Извините, похоже, я неправильно понял вашу функцию. Теперь я вижу, что h, T и t являются наблюдаемыми значениями, а не параметрами модели, которые должны быть оценены.start = list (fixed = c (K ~ .01) – rabil
start = list (fixed = c (K ~ .01) – rabil
start = list (fixed = c (K ~ .01) – rabil