2013-12-07 3 views
1

Я делаю QDA по своим данным и вам нужно построить границу решения в R или MATLAB, которая выглядит как функция ниже.Выполнение функции в R

0.651 - 0.728(x_1) - 0.552(x_2) - 0.006(x_1 * x_2) - 0.071(x_1)^2 +.170 (x_2)^2 = 0

Может кто-нибудь мне помочь? Я искал interwebs и не могу найти решение.

+0

не должно быть трехмерным. Он должен выглядеть как сюжет из https://onlinecourses.science.psu.edu/stat557/book/export/html/35 2-й снизу – user35824

+0

Возможно, я попробую контуры – user35824

ответ

3

R не имеет функции для построения неявной функции, подобной этой, но вы можете подделать ее довольно хорошо с контурным сюжетом. Предполагая, что вы хотите построить над регионом [0,1]^2 (который может быть легко изменен), вы хотите какой-то код, как это:

#f is your function 
f <- function (x_1, x_2) 0.651 - 0.728 * x_1 - 0.552 * x_2 - 0.006 * x_1 * x_2 - 0.071 * x_1^2 +.170 * x_2^2 

#length=1000 to be safe, could be set lower 
x_1 <- seq(0, 1, length=1000) 
x_2 <- seq(0, 1, length=1000) 
z <- outer(x_1, x_2, FUN=f) 
contour(x_1, x_2, z, levels=0) 
+0

+1 Это классная идея. –

1

То же самое с помощью ggplot:

library(ggplot2) 
library(reshape2) # for melt(...) 
## same as first response 
x <- seq(0,10,length=1000) 
y <- seq(-10,10, length=1000) 
z <- outer(x,y,FUN=f) 
# need this extra step 
gg <- melt(z, value.name="z",varnames=c("X","Y")) 
# creates the plot 
ggplot(gg) + stat_contour(aes(x=X, y=Y, z=z), breaks=0) 

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