Я использую пакет rdd в R:
https://cran.r -project.org / web / packages / rdd /
Я пытаюсь запуститьТест McCrary и, к моему удивлению, функция не может вычислить статистику теста.Я открыл тело функции DCdensity и постепенно применил код, чтобы определить ошибку.Проблема возникает здесь
dist <- cmp - cutpoint
w <- 1 - abs(dist/bw)
w <- ifelse(w > 0, w * (cmp < cutpoint), 0)
w <- (w/sum(w)) * jp
fhatl <- predict(lm(cval ~ dist, weights = w), newdata = data.frame(dist = 0))[[1]]
w <- 1 - abs(dist/bw)
w <- ifelse(w > 0, w * (cmp >= cutpoint), 0)
w <- (w/sum(w)) * jp
fhatr <- predict(lm(cval ~ dist, weights = w), newdata = data.frame(dist = 0))[[1]]
thetahat <- log(fhatr) - log(fhatl)
sethetahat <- sqrt((1/(rn * bw)) * (24/5) * ((1/fhatr) +
(1/fhatl)))
z <- thetahat/sethetahat
p <- 2 * pnorm(abs(z), lower.tail = FALSE)
По существу, fhatl является отрицательным значением, близким к нулю, и функция журнала не определена.Оттуда ничего не может быть вычислено.
Кажется, проблема в том, что функция выбирает полосу пропускания 0,22, что очень широко.При ширине полосы ниже 0,14 (включая) мы получаем положительные оценки оценки плотности для бегущей переменной справа от порога.Во всех случаях значения очень высоки, поэтому результат не чувствителен к выбору пропускной способности ниже 0,14.
Тем не менее, я немного озадачен тем, что это происходит, и мне неловко выбирать другую полосу пропускания только потому, что ...
Мне также интересно, является ли это признаком некоторой вырожденной обработки, генерирующей данные, котораяставит проблемы, которые мне здесь не хватает.
Как бы вы справились с этой ситуацией?