2010-10-18 4 views
4

Какие пакеты и функции в R могут выполнять двумерную неаддитивную локальную регрессию/гладкость. Для примера рассмотримR: Двумерная непараметрическая регрессия

b<-seq(-6*pi,6*pi,length=100) 
xy<-expand.grid(b,b) 
x=xy[[1]] 
y=xy[[2]] 
z= sin(x)+cos(y) + 2*sin(x)*cos(y) 
contour(b,b,matrix(z,100,100)) 

alt text

Какие функции может оценить это?

+0

ОК теперь немного сложнее, как мне сделать это в аддитивной бинарной системе? –

+0

Вы также можете попробовать stats.stackexchange.com – mbq

+0

Выполнение этого с двоичными данными может быть немного сложным. Две вещи, о которых я могу думать: (1) все равно; использовать бутстрап, чтобы получить доверительные интервалы (немного сложно из-за пространственного аспекта - блокировать бутстрап?) или (2) использовать gam() в mgcv (но см. комментарий @ ucfagls ниже для трудностей с этим подходом) –

ответ

3

вы можете сделать это с лесс:

fit <- loess(z ~ x+ y, span=0.01) 
dev.new() 

contour(b, b, matrix(predict(fit), 100, 100)) 
1

mgcv имеет различные варианты сплайн 2-D.

+0

Это было мое предложение после того, как я увидел ответ Грега. Однако, когда я пробовал это, мне нужно было подобрать очень сложную поверхность, используя большое количество узлов, и даже тогда пригонка была не такой хорошей, как «лесс()» в этом случае. Я использовал что-то вроде 'gam (z ~ s (x, y, k = 200)', чтобы получить разумную посадку. Я больше не изучал, так как мой старый ноутбук не справлялся с задачей быстрой установки этих моделей. –

Смежные вопросы