Стандартизация в пакете MuMIn в R

Я использую пакет MuMIn в R для выбора моделей и расчета величины эффекта входных переменных (дождь, brk, начало, ширина). Чтобы сделать мой эффект сопоставимым между переменными, я стандартизировал их, используя функцию стандартизации в пакете arm. Вот код, которому я следую:

Для справки см. Приложение к этому документу: http://onlinelibrary.wiley.com/doi/10.1111/j.1420-9101.2010.02210.x/full Grueber et al. 2011: Многомодельный вывод в экологии и эволюции: проблемы и решения

data1<-read.csv("data.csv",header=TRUE)       #reads the data

global.model<-lmer(yld.res ~ rain + brk + onset + wid + (1|state),data=data1,REML="FALSE")               # prepares a global model

stdz.model <- standardize(global.model,standardize.y = FALSE)          # standardise the input varaibles 

model.set <- dredge(stdz.model)      ### generates the full submodel set

top.models <- get.models(model.set, subset= delta<2)   # selects models with delta AIC <2

model.avg(top.models)       # calculates the average effect size of input variables

Вот результат model.avg(top.models), который дает средний размер эффекта каждой входной переменной.

Coefficients: 
         (Intercept)     brk         rain         wid        onset
subset -4.281975e-14   -106.0919   51.54688    39.82837    35.68766

Я читал, как работает функция стандартизации - вычитает среднее и делит на 2SD.

Мой вопрос таков: поскольку я стандартизировал входные переменные, не должны ли размеры эффекта быть от -1 до 1? или размер эффекта, который показывает вывод, правильный?

пожалуйста, порекомендуйте

Большое спасибо


person Community    schedule 31.07.2014    source источник


Ответы (1)


Это скорее статистический вопрос, чем вопрос программирования, но: вы стандартизировали только переменные-предикторы, а не переменную ответа (вы указали standardize.y=FALSE); следовательно, каждый из ваших коэффициентов представляет собой ожидаемое изменение отклика (в единицах отклика!) на 2 SD изменения в предсказателе. Если диапазон ответа большой (как и должно быть в вашем примере), то это может быть очень большое изменение. Например, если бы я анализировал изменение веса слона, измеряемое в миллиграммах, я мог бы ожидать очень больших изменений реакции на достаточно небольшие изменения в предикторов (например, пола, возраста, наличия пищи). Вам, вероятно, следует использовать standardize.y=TRUE, если вы хотите действительно безразмерные / безразмерные размеры эффекта. Даже безразмерные эффекты не обязательно должны находиться в диапазоне от -1 до +1, но было бы удивительно, если бы они были такими большими.

Кстати, я думаю, что ваша standardize функция исходит из пакета arm, а не из MuMIn (library("sos"); findFn("standardize",sortby="Function)).

person Ben Bolker    schedule 31.07.2014