В настоящее время я работаю над полупараметрическими c регрессионными моделями, решая непараметрическую часть c, используя "Ядра". Я знаю, в R пакет KSPM
доступен для этого, но я хочу понять процедуру. Для этого я попробовал следующий код, но ответы (вручную + через пакет) не совпадают. Вручную я оцениваю бета по LRM и умножаю оценочную бета на ее регрессию и добавляю их в соответствующие значения NPR.
n<-10
y<-rnorm(n,0,1)
x1<-runif(n, -1,1)
x2<-runif(n, 0,1)
require(KernSmooth)
PI <- abs(dpik(x2) )
LRM<-lm(y~x1)
LRM
be<-LRM[1]$coefficients[2]
est<-be%*%x1
require(np)
nw<- npreg(y~x2,bws=PI)
y21<-fitted(nw)
yhat1<-est+y21
MSE1<-mean((y-yhat1)^2)
MSE1
require(KSPM)
nw1 <- kspm(y, linear = ~ x1, kernel = ~ Kernel(~ x2,kernel.function = "gaussian", rho = PI))
nw1$linear.coefficients
D1=(residuals(nw1))^2
MSE.NW1=sum(D1)/(n)
MSE.NW1
Теперь у меня есть 2 связанных вопроса.
Является ли это Logi c Правильно ли для полупараметрической c регрессия через ядра? Если да, то почему ответы не совпадают? Я также применяю LRM, почему даже коэффициенты не одинаковы. Направь меня, пожалуйста.