Je suis curieux de savoir les procédures reproductibles qui peuvent être utilisées pour découvrir la forme fonctionnelle de la fonction y = f(A, B, C) + error_term
où mon entrée est seulement un ensemble d'observations ( y
, A
, B
et C
). Veuillez noter que la forme fonctionnelle de f
est inconnue.
Considérez le jeu de données suivant:
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
Dans cet exemple, supposons que nous le sachions FF = f(AA, BB, CC, DD, EE) + error term
, mais nous ne sommes pas sûrs de la forme fonctionnelle de f(...)
.
Quelle procédure / quelles méthodes utiliseriez-vous pour arriver à trouver la forme fonctionnelle de f(...)
?
(Point bonus: Quelle est votre meilleure estimation de la définition des f
données ci-dessus? :-) Et oui, il existe une réponse "correcte" donnant un résultat R^2
supérieur à 0,99.)
la source
FF
était "rendement de combustion" etAA
était la quantité de carburant, etBB
était la quantité d'oxygène, vous rechercheriez un terme d'interaction deAA
etBB
R^2 >= 0.99
on voudrait trouver celle qui présente le meilleur rapport performances / complexité (et bien sûr, mal ajustée). Désolé de ne pas avoir écrit cette explicité, je pensais que c'était évident :-)Réponses:
Pour trouver la forme fonctionnelle la mieux adaptée (dite forme libre ou régression symbolique) pour les données, essayez cet outil - à ma connaissance, il s'agit de la meilleure possible (du moins, j'en suis très enthousiaste) ... et de ses libre :-)
http://creativemachines.cornell.edu/eureqa
EDIT : Je lui ai donné un coup de feu avec Eureqa et je voudrais aller pour:
avec R 2 = 0,99988
J'appellerais cela un ajustement parfait (Eureqa donne d'autres solutions plus adaptées, mais elles sont aussi un peu plus compliquées. Eureqa est favorable à celui-ci, j'ai donc choisi celui-ci) - et Eureqa a tout fait pour moi quelques secondes après un ordinateur portable normal ;-)
la source
seul n'est pas une bonne mesure de la qualité de l'ajustement, mais n'entrons pas dans cela ici sauf pour observer que laparcimonieest valorisée dans la modélisation.R2
À cette fin, notez que les techniques standard d' analyse de données exploratoires (EDA) et de régression (mais pas par étapes ou par d'autres procédures automatisées) suggèrent d'utiliser un modèle linéaire sous la forme
En utilisant OLS, cela n'obtenir un ci - dessus 0,99. Encouragé par un tel résultat, on est tenté de concilier les deux côtés et la régression f sur un , b * c , a * b * c , et tous leurs carrés et produits. Cela produit immédiatement un modèleR2 F une b ∗ c a ∗ b ∗ c
avec un MSE de racine de moins de 34 et un ajustement de 0,9999R2 . Les coefficients estimés de 1,0112 et 0,988 suggèrent que les données peuvent être générées artificiellement avec la formule
plus une petite erreur normalement distribuée du SD approximativement égale à 50.
modifier
En réponse aux remarques de @ knorv, j'ai poursuivi l'analyse. Pour ce faire, j'ai utilisé les techniques qui avaient fait leurs preuves jusqu'à présent, en commençant par inspecter les matrices de diagramme de dispersion des résidus par rapport aux variables d'origine. Effectivement, il y avait une indication claire de la corrélation entre et les résidus (même si la régression MCO de f contre a , a 2 et b ∗ c n'indiquait pas que a était "significatif"). Poursuivant dans cette veine , j'ai exploré toutes les corrélations entre les termes du second degré a 2 , ... , e 2 , un *une F une une2 b ∗ c une et les nouveaux résidus et ont trouvé une relation minuscule mais très significative avec b 2 . "Très significatif" signifie que toute cette surveillance a consisté à examiner une vingtaine de variables différentes. Mon critère d'importance pour cette expédition de pêche était donc d'environ 0,05 / 20 = 0,0025: tout ce qui serait moins rigoureux pourrait facilement être un artefact de la recherche de crises.une2, … , E2, a ∗ b , a ∗ c , … , d∗ e b2
Quoi qu’il en soit, un meilleur ajustement est donné par
BTW, en utilisant la régression robuste, je peux adapter le modèle
avec un SD résiduel de 27,4 et tous les résidus entre -51 et +47: essentiellement aussi bon que l'ajustement précédent mais avec une variable de moins. C'est plus parcimonieux dans ce sens, mais moins parcimonieux dans le sens où je n'ai pas arrondi les coefficients à des valeurs "sympas". Néanmoins, c'est la forme que je privilégierais habituellement dans une analyse de régression en l'absence de théories rigoureuses sur les types de valeurs que les coefficients devraient avoir et les variables à inclure.
la source
Votre question doit être affinée, car la fonction
f
n'est certainement pas définie de manière unique par les données de l'échantillon. Il existe de nombreuses fonctions différentes qui pourraient générer les mêmes données.Cela dit, une analyse de variance (ANOVA) ou une "étude de sensibilité" peut vous en dire beaucoup sur la manière dont vos entrées (AA..EE) affectent votre sortie (FF).
Je viens de faire une ANOVA rapide et a trouvé un modèle assez bon:
FF = 101*A + 47*B + 49*C - 4484
. La fonction ne semble pas dépendre de DD ou EE linéairement. Bien sûr, nous pourrions aller plus loin avec le modèle et ajouter des termes quadratiques et mixtes. En fin de compte, vous obtiendrez un modèle parfait qui suraprésente les données et n’a aucune valeur prédictive. :)la source
En gros, il n'y a pas de repas gratuit dans l'apprentissage automatique:
/ edit: aussi, une SVM radiale avec C = 4 et sigma = 0,206 donne facilement un R2 de 0,99. L'extraction de l'équation utilisée pour dériver cet ensemble de données est laissée à la classe comme exercice. Le code est en R.
la source
Tous les modèles sont faux mais certains sont utiles: 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)
où ZZ (T) = 0 POUR T = 1,10 = 1 AUTREMENT
Il semble exister une "relation décalée" entre Y et AA ET un décalage expliqué de la moyenne pour les observations 11-25.
Résultats curieux s'il ne s'agit pas de données chronologiques ou spatiales.
la source
ORDER BY
). Les lignes n'ont pas d'ordre spécial inhérent. Vous pouvez donc les réorganiser en toute sécurité sans perdre aucune information. Désolé si je vous ai confus :-)AA(T-1)
terme dans votre équation n’a aucun sens dans ce contexte.AA(T-1)
r carré de 97,2
Vérification du diagnostic / estimation pour YY
X1 AAS
X2 BB
X3 BBS
X4 CC
Nombre de résidus (R) = n 25
Nombre de degrés de liberté = nm 20
Moyenne résiduelle = Somme R / n -.141873E-05
Somme des carrés = Somme R 2,775723E + 07
Variance = SOS / (n) 310289.
Ajusté Variance = SOS / (nm) 387861.
Ecart type RMSE = SQRT (Adj Var) 622.785
Erreur type de la moyenne = Dev standard (nm) 139.259
Moyenne / son erreur type = Moyenne / SEM -.101877E-07
Déviation absolue moyenne = Somme (ABS (R)) / n 455,684
Valeur AIC (Utilisations var) = nln + 2m 326.131
Valeur SBC (Utilisations var) = nln + m * lnn 332,226
Valeur BIC (Uses var) = voir Wei p153 340.388
R Carré = .972211
Statistique de Durbin-Watson = [- A (T-1)] ** 2 / A 2 1.76580
**
MODÈLE COMPOSANT LAG COEFF STANDARD PT
# (BOP) VALEUR D'ERREUR
ENTRÉE SÉRIE X1, AA AA CARRÉ
ENTRÉE SÉRIE X2 BB BB COMME DONNÉ
ENTRÉE SÉRIE X3 BBS BB SQUARED
ENTRÉE SÉRIE X4 CC CC COMME DONNÉ
la source