Я сделал измерений двух переменных и . Они оба имеют известные неопределенности и связанные с ними. Я хочу найти связь между и . Как мне это сделать?x y σ x σ y x y
РЕДАКТИРОВАТЬ : каждый имеет различные связанные с ним, и то же самое с .σ x , i y i
Воспроизводимый R пример:
## pick some real x and y values
true_x <- 1:100
true_y <- 2*true_x+1
## pick the uncertainty on them
sigma_x <- runif(length(true_x), 1, 10) # 10
sigma_y <- runif(length(true_y), 1, 15) # 15
## perturb both x and y with noise
noisy_x <- rnorm(length(true_x), true_x, sigma_x)
noisy_y <- rnorm(length(true_y), true_y, sigma_y)
## make a plot
plot(NA, xlab="x", ylab="y",
xlim=range(noisy_x-sigma_x, noisy_x+sigma_x),
ylim=range(noisy_y-sigma_y, noisy_y+sigma_y))
arrows(noisy_x, noisy_y-sigma_y,
noisy_x, noisy_y+sigma_y,
length=0, angle=90, code=3, col="darkgray")
arrows(noisy_x-sigma_x, noisy_y,
noisy_x+sigma_x, noisy_y,
length=0, angle=90, code=3, col="darkgray")
points(noisy_y ~ noisy_x)
## fit a line
mdl <- lm(noisy_y ~ noisy_x)
abline(mdl)
## show confidence interval around line
newXs <- seq(-100, 200, 1)
prd <- predict(mdl, newdata=data.frame(noisy_x=newXs),
interval=c('confidence'), level=0.99, type='response')
lines(newXs, prd[,2], col='black', lty=3)
lines(newXs, prd[,3], col='black', lty=3)
Проблема этого примера в том, что я думаю, что он предполагает отсутствие неопределенности в . Как я могу это исправить?
r
regression
deming-regression
rhombidodecahedron
источник
источник
lm
подходит для модели линейной регрессии, то есть модели ожидания относительно , в которой ясно, что является случайным, а считается известным. Чтобы справиться с неопределенностью в вам понадобится другая модель. P ( Y | X ) Y X XDeming
функция в R-пакете MethComp .Ответы:
Пусть истинная линия , заданная углом и значением , будет множествомθ γL θ γ
Расстояние со знаком между любой точкой и этой линией(x,y)
Позволить дисперсия быть и что из быть , независимость и подразумевает отклонение этого расстоянияσ 2 i y i τ 2 i x i y ixi σ2i yi τ2i xi yi
Поэтому давайте найдем и для которых взвешенная сумма квадратов расстояний с обратной дисперсией будет как можно меньше: это будет решение с максимальной вероятностью, если предположить, что ошибки имеют двумерные нормальные распределения. Это требует численного решения, но легко найти несколько шагов Ньютона-Рафсона, начинающихся со значения, предлагаемого обычной подгонкой наименьших квадратов.γθ γ
Моделирование показывает, что это решение хорошо даже при небольших объемах данных и относительно больших значениях и . Конечно, вы можете получить стандартные ошибки для параметров обычными способами. Если вас интересует стандартная ошибка положения линии, а также наклона, то вы можете сначала центрировать обе переменные в : это должно устранить почти всю корреляцию между оценками двух параметров.τ i 0σi τi 0
Метод работает так хорошо на примере вопроса, что подобранная линия почти неотличима от истинной линии на графике: они находятся в пределах или около того друг от друга повсюду. Вместо этого в этом примере из экспоненциального распределения, а - из экспоненциального распределения с удвоенным масштабом (так что большая часть ошибки имеет место в координате ). Есть только баллов, небольшое количество. Истинные точки расположены на одинаковом расстоянии вдоль линии с интервалом между единицами. Это довольно серьезный тест, потому что потенциальные ошибки заметны по сравнению с диапазоном точек.σ i x n = 8τi σi x n=8
Истинная линия показана синим пунктиром. Вдоль него исходные точки изображены в виде полых кружков. Серые стрелки соединяют их с наблюдаемыми точками, нанесенными в виде сплошных черных дисков. Решение нарисовано как сплошная красная линия. Несмотря на наличие больших отклонений между наблюдаемыми и фактическими значениями, решение замечательно близко к правильной линии в этой области.
источник
deming
функция также может обрабатывать переменные ошибки. Вероятно, это должно привести к приступу, очень похожему на ваш.Оптимизация максимального правдоподобия для случая неопределенности в x и y была рассмотрена York (2004). Вот код R для его функции.
"YorkFit", написанный Риком Вером, 2011, переведенный на R Рэйчел Чанг
Универсальная процедура для нахождения наилучшей прямой подгонки к данным с переменными, коррелированными ошибками, включая ошибки и оценки достоверности подгонки, по формуле. (13) of York 2004, Американский журнал физики, который в свою очередь был основан на York 1969, Earth and Planetary Sciences Letters.
YorkFit <- функция (X, Y, Xstd, Ystd, Ri = 0, b0 = 0, printCoefs = 0, makeLine = 0, eps = 1e-7)
X, Y, Xstd, Ystd: волны, содержащие точки X, точки Y и их стандартные отклонения
ВНИМАНИЕ: Xstd и Ystd не могут быть равны нулю, так как это приведет к тому, что Xw или Yw будут равны NaN. Вместо этого используйте очень маленькое значение.
Ri: коэффициенты корреляции для ошибок X и Y - длина 1 или длина X и Y
b0: грубое начальное предположение для наклона (может быть получено из стандартного подбора по методу наименьших квадратов без ошибок)
printCoefs: установить равным 1 для отображения результатов в окне команд
makeLine: установить равным 1, чтобы сгенерировать волну Y для линии соответствия
Возвращает матрицу с перехватом и наклоном плюс их неопределенности
Если исходное предположение для b0 не предусмотрено, просто используйте OLS, если (b0 == 0) {b0 = lm (Y ~ X) $ коэффициенты [2]}
a, b: окончательный перехват и наклон a.err, b.err: оценочные неопределенности в пересечении и наклоне
источник