Мне любопытно , повторяемых процедур , которые могут быть использованы , чтобы обнаружить функциональную форму функции , y = f(A, B, C) + error_term
где мой единственный вход множество наблюдений ( y
, A
, B
и C
). Обратите внимание, что функциональная форма f
неизвестна.
Рассмотрим следующий набор данных:
AA BB CC DD EE FF == == == == == == 98 11 66 84 67 10500 71 44 48 12 47 7250 54 28 90 73 95 5463 34 95 15 45 75 2581 56 37 0 79 43 3221 68 79 1 65 9 4721 53 2 90 10 18 3095 38 75 41 97 40 4558 29 99 46 28 96 5336 22 63 27 43 4 2196 4 5 89 78 39 492 10 28 39 59 64 1178 11 59 56 25 5 3418 10 4 79 98 24 431 86 36 84 14 67 10526 80 46 29 96 7 7793 67 71 12 43 3 5411 14 63 2 9 52 368 99 62 56 81 26 13334 56 4 72 65 33 3495 51 40 62 11 52 5178 29 77 80 2 54 7001 42 32 4 17 72 1926 44 45 30 25 5 3360 6 3 65 16 87 288
В этом примере предположим, что мы это знаем FF = f(AA, BB, CC, DD, EE) + error term
, но не уверены в функциональной форме f(...)
.
Какие процедуры / какие методы вы бы использовали, чтобы найти функциональную форму f(...)
?
(Бонус: каково ваше лучшее предположение при определении f
приведенных выше данных? :-) И да, есть «правильный» ответ, который даст R^2
более 0,99.)
FF
был «выход сгорания» иAA
было количество топлива, иBB
было количество кислорода, вы бы искали взаимодействующий терминAA
иBB
R^2 >= 0.99
хотелось бы найти ту, которая имеет наилучшее соотношение производительности и сложности (и, конечно, из выборки). Извините за то, что вы не написали этуОтветы:
Чтобы найти наиболее подходящую функциональную форму (так называемую свободную форму или символическую регрессию) для данных, попробуйте этот инструмент - насколько мне известно, это лучший из доступных (по крайней мере, я очень рад этому) ... и его свободный :-)
http://creativemachines.cornell.edu/eureqa
РЕДАКТИРОВАТЬ : Я дал ему шанс с Eureqa, и я бы пошел на:
с R 2 = 0,99988
Я бы назвал это идеальным соответствием (Eureqa предлагает другие, более подходящие решения, но они также немного сложнее. Eureqa одобряет это, поэтому я выбрал это) - и Eureqa сделала все для меня примерно за несколько секунд. нормальный ноутбук ;-)
источник
Один R 2 не является хорошей мерой соответствия, но давайте не будем вдаваться в это здесь, за исключением того, чтоотметим,чтоскупостьценится при моделировании.R2
Для этого обратите внимание, что стандартные методы разведочного анализа данных (EDA) и регрессии (но не пошаговые или другие автоматизированные процедуры) предлагают использовать линейную модель в форме
Используя OLS, это достигает выше 0,99. Воодушевленные таким образом, возникает соблазн квадрат обеих сторон и регресса п на , Ь * с , * б * с , и все их квадраты и изделия. Это сразу производит модельR2 f a b∗c a∗b∗c
с корневой MSE менее 34 и скорректированный 0,9999R2 . Расчетные коэффициенты 1,0112 и 0,988 предполагают, что данные могут быть искусственно получены с помощью формулы
плюс немного нормально распределенная ошибка SD примерно равная 50.
редактировать
Во всяком случае, улучшенная посадка дается
with mean residual0 , standard deviation 26.8, all residuals between -50 and +43, and no evidence of non-normality (although with such a small dataset the errors could even be uniformly distributed and one couldn't really tell the difference). The reduction in residual standard deviation from around 50 to around 25 would often be expressed as "explaining 75% of the residual variance."
I make no claim that this is the formula used to generate the data. The residuals are large enough to allow some fairly large changes in a few of the coefficients. For instance, 95% CIs for the coefficients ofa , b2 , and the constant are [-0.4, 2.7], [-0.013, -0.003], and [-7, 61] respectively. The point is that if any random error has actually been introduced in the data-generation procedure (and that is true of all real-world data), that would preclude definitive identification of the coefficients (and even of all the variables that might be involved). That's not a limitation of statistical methods: it's just a mathematical fact.
BTW, using robust regression I can fit the model
with residual SD of 27.4 and all residuals between -51 and +47: essentially as good as the previous fit but with one less variable. It is more parsimonious in that sense, but less parsimonious in the sense that I haven't rounded the coefficients to "nice" values. Nevertheless, this is the form I would usually favor in a regression analysis absent any rigorous theories about what kinds of values the coefficients ought to have and which variables ought to be included.
It is likely that additional strong relationships are lurking here, but they would have to be fairly complicated. Incidentally, taking data whose original SD is 3410 and reducing their variation to residuals with an SD of 27 is a 99.99384% reduction in variance (theR2 of this new fit). One would continue looking for additional effects only if the residual SD is too large for the intended purpose. In the absence of any purpose besides second-guessing the OP, it's time to stop.
источник
Your question needs refining because the function
f
is almost certainly not uniquely defined by the sample data. There are many different functions which could generate the same data.That being said, Analysis of Variance (ANOVA) or a "sensitivity study" can tell you a lot about how your inputs (AA..EE) affect your output (FF).
I just did a quick ANOVA and found a reasonably good model:
FF = 101*A + 47*B + 49*C - 4484
. The function does not seem to depend on DD or EE linearly. Of course, we could go further with the model and add quadratic and mixture terms. Eventually you will have a perfect model that over-fits the data and has no predictive value. :)источник
Broadly speaking, there's no free lunch in machine learning:
/ edit: также радиальный SVM с C = 4 и sigma = 0,206 легко дает R2 0,99. Извлечение фактического уравнения, использованного для получения этого набора данных, оставлено в качестве упражнения для класса. Код находится в R.
источник
Все модели неверны, но некоторые полезны: GEPBox
Y (T) = - 4709,7
+ 102,60 * AA (T) - 17,0707 * AA (T-1)
+ 62,4994 * BB (T) + 41,7453 * CC (T) + 965,70 * ZZ (T)
где ZZ (T) = 0 для T = 1,10 = 1 в обратном порядке
По-видимому, существует «запаздывающая связь» между Y и AA и объясненный сдвиг в среднем для наблюдений 11-25.
Любопытные результаты, если это не хронологические или пространственные данные.
источник
ORDER BY
). Строки не имеют особого специального порядка. Так что вы можете смело их переставлять, не теряя никакой информации. Извините, если я вас смутил :-)AA(T-1)
Член в вашем уравнении не имеет смысла в этом контексте.AA(T-1)
или любого «среднего сдвига» вводятся ложные переменные: переобучение. Что интересно в этом примере, так это то, что, хотя я склонен думать о переоснащении, которое дает оптимистично (и неправильно) высокийплощадь R 97,2
Оценка / Диагностическая проверка для переменной YY
X1 AAS
X2 BB
X3 BBS
X4 CC
Количество невязок (R) = n 25
Число степеней свободы = нм 20
Остаточное среднее = сумма R / n -.141873E-05
Сумма квадратов = сумма R 2 .775723E + 07
Дисперсия = SOS / (n) 310289.
Скорректировано Дисперсия = SOS / (нм) 387861. Среднеквадратическое
отклонение RMSE = SQRT (Adj Var) 622,785
Стандартная ошибка среднего значения = Стандартное Dev / (нм) 139,259
Среднее / его стандартная ошибка = Среднее / SEM-101877E-07 Значение AIC (использует var) = nln + 2m 326,131
Среднее абсолютное отклонение = Сумма (ABS (R)) / n 455,684
Значение SBC (использует var) = nln + m * lnn 332.226
Значение BIC (использует var ) = см. Вэй p153 340,388
R Square = .972211 Статистика
Дурбина-Ватсона = [- A (T -1)] ** 2 / A 2 1.76580
**
МОДЕЛЬ КОМПОНЕНТА LAG COEFF STANDARD PT
# (BOP) ЗНАЧЕНИЕ ОШИБКИ ЗНАЧЕНИЕ
ВХОДНАЯ СЕРИЯ X1 AAS AA SQUARED
ВХОДНАЯ СЕРИЯ X2 BB BB В ПОДАРОК
ВХОДНАЯ СЕРИЯ X3 BBS BB SQUARED
ВХОДНАЯ СЕРИЯ X4 CC CC В ПОДАРОК
источник