Я пытаюсь согласовать линейную модель с некоторыми данными только одним предиктором (скажем, (x, y)). Данные таковы, что для малых значений x значения y обеспечивают плотное прилегание к прямой линии, однако при увеличении значений x значения y становятся более изменчивыми. Вот пример таких данных (R код)
y = c(3.2,3.4,3.5,3.8,4.2,5.5,4.5,6.8,7.4,5.9)
x = seq(1,10,1)
Мне любопытно узнать, существует ли какое-либо преобразование мощности (возможно, Box cox?), Которое позволяет мне лучше соответствовать данным, чем просто выполнять линейное соответствие, как показано ниже.
fit = lm(y ~ x)
r
regression
variance
data-transformation
брокколи
источник
источник
Ответы:
Пакет MASS, который поставляется с уже установленным R, имеет
boxcox()
функцию, которую вы можете использовать: После прочтения данных выполните:Затем посмотрите на полученный график, который графически показывает 95% доверительный интервал для параметра преобразования boxcox. Но у вас на самом деле недостаточно данных (n = 10), чтобы сделать это, результирующий доверительный интервал увеличивается почти от -2 до 2 !, с максимальной вероятностной оценкой, равной приблизительно 0 (логарифмическое преобразование, как было сказано ранее). Если ваши реальные данные имеют больше наблюдений, вы должны попробовать это.
Как уже говорили другие, это преобразование действительно пытается стабилизировать отклонения. Из теории не совсем очевидно, что она пытается максимизировать основанную на нормальном распределении функцию правдоподобия, которая предполагает постоянную дисперсию. Можно подумать, что максимизация вероятности, основанной на норме, попыталась бы нормализовать распределение остатков, но на практике основной вклад в максимизацию вероятности вносит стабилизация отклонений. Возможно, это не так удивительно, учитывая, что вероятность, которую мы максимизируем, основана на семействе нормальных распределений с постоянной дисперсией!
Однажды я написал демонстрацию на основе слайдера в XLispStat, которая наглядно продемонстрировала это!
источник
Когда у вас есть линейные отношения, но неравные отклонения, вам обычно нужно преобразовать и x, и y, чтобы получить линейные отношения с равными отклонениями (или просто использовать взвешенную регрессию наименьших квадратов для нетрансформированных переменных).
Процедура AVAS может использоваться для предложения возможных преобразований.
источник
glm
каркас с функцией связи Пуассона?Ну, в R вы можете попробовать это:
Но это действительно зависит от того, что вы подразумеваете под «лучшим соответствием данным»
источник
хорошо, если все ваши данные для x неотрицательны, то вы можете использовать преобразование Кокса блока ..., чтобы оценить идеальное значение параметра лямбда-преобразования, вы можете использовать matlab ... http://www.mathworks.in/ помощь / финансы / boxcox.html
источник