2016-10-20 8 views
-2

У меня есть два набора данных, которые я хотел бы, чтобы найти наиболее подходящие типы функций:анализ функций, установка

x <- c(10, 40, 70, 100, 130, 160, 190, 220) 
y1 <- c(41.8, 45.2, 50.8, 62.5, 73.2, 86.9, 95.4, 107.9) 
y2 <- c(1.9, 34.3, 269.2, 1119.4, 2627.1, 5801.2, 11794.8, 24139.9) 

par(mfrow = c(1,2)) 
plot(x, y1); plot(x, y2) 

enter image description here

Я хотел бы сказать несколько слов о тенденциях y1 и y2, как y1, похоже, следует за линейным трендом, а y2 выглядит экспоненциально. Сначала я попытался с символическими регрессиями, особенно с пакетом 'rgp', но это очень плохой документ, и у него есть некоторые проблемы (не работают в режиме архива и т. Д.). К сожалению, нет другого символического регрессионного пакета.

Что вы предлагаете, что мне делать? Как я могу сказать/подтвердить такие выводы, как: «y1 следует за линейным трендом в функции x»?

+0

Какие проблемы программирования у вас есть? Рассмотрите другие сайты, такие как stats.stackexchange.com – Llopis

+0

@ Zheyuan Li Да, но вы можете сравнить модели в соответствии с способностью и сложностью, например, в сюжете с фронтом Парето. – pnz

+0

@Llopis rgp использует генетическое программирование, но, возможно, есть и другие полезные методы. – pnz

ответ

0

использования линейная модель:

summary.lm(lm(y1~x)) 
... 
    Multiple R-squared: 0.9802, Adjusted R-squared: 0.9768 F-statistic: 
    296.4 on 1 and 6 DF, p-value: 2.46e-06 

y1_r = 0,33044 * х + 32,46230

Так 97% A-R-squered и малый р-значение Грустно, что у вас есть линейный тренд. Для y2 вы можете использовать нелинейную регрессию таким же образом.

r <- lm(y1 ~ x) 
nr <- nls(y1 ~ exp(a + b * x), start = list(a = 0, b = 0)) 
plot(x,y1) 
lines(x,predict(nr)) 
lines(x, predict(r), col = 'red') 

вы можете решить, какая модель лучше по сравнению простой SD остатков

Residual standard error: 3.732 
Residual standard error: 2.515 

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

  • Нет связанных вопросов^_^