Chers tous,
un client demande si possible de tracer les contours des prédictions de son modèle et/ou des intervalles de prédiction sur toute la plage de valeurs possibles pour mes variables indépendantes.
Il l'obtient dans R (en utilisant la fonction expand.grid), où la ligne pointillée est l'intervalle de prédiction inférieur à 95 % (pièce jointe 1).
Le mieux qu'il ait pu faire (et moi aussi) c'est l'attachement 2 et, en bref, lui et moi n'avons pas pu avoir la ligne pointillée.(J'ai aussi un ensemble factice de données avec le graphique)
Il a également posté la question dans la communauté.
Avez-vous une suggestion?
merci
Salut @MarcoSalfi ,
La fonction expand.grid agit comme FacetGrid dans Seaborn pour Python ou la fonction facet_grid dans ggplot2 de R. Il fait essentiellement toutes les combinaisons possibles d'un ou plusieurs facteurs introduits sous forme de formule ou de matrice. Quelle est la ligne complète de code R utilisée avec la fonction expand.grid ? Je suppose que le reste du code de traçage est ce qui donne l'intrigue pour la densité avec la boîte en pointillés.
Salut Marco,
Une option pourrait être de créer une conception de remplissage d'espace pour couvrir de manière adéquate la gamme de possibilités que votre utilisateur souhaite explorer, puis d'évaluer la formule pour toutes les combinaisons dans la conception de remplissage d'espace.
Cependant, j'essaierais de lui demander quelles informations il souhaite obtenir en créant l'intrigue ? Une meilleure alternative peut être un graphe profileur de la formule ou du modèle de régression - sans et avec contrôle d'extrapolation. Le profileur est un bien meilleur moyen d'apprivoiser la complexité de la haute dimensionnalité de ce problème. Nous souhaiterions peut-être donner l'avertissement habituel sur le danger d'extrapoler en dehors de la plage de l'espace X (ou espace de conception) lors de l'utilisation de modèles empiriques.
Malcom
Salut @Chris_Kirchberg , suivant le code utilisé par le client :
## Variables de transformation
log.AlphaLISA = log(AlphaLISA)
log.lapin = log(Lapin.Ab)
log.mouse = log(Mouse.Ab)
log.lysat = log(Lysat)
fit = lm( Log.AlphaLISA ~ Ab*(log.lapin+log.souris+log.lysat)^2 +
Ab*I(log.lapin^2) + Ab*I(log.souris^2) +
Ab*I(log.lysat^2) )
d.grid = expand.grid(
Ab=c("R1-M1", "R1-M2", "R2-M1", "R2-M2", "R3-M1", "R3-M2"),
log.rabbit=seq(log(0.3), log(3), length=5),
log.mouse=seq(log(0.3), log(3), length=10),
log.lysate=seq(log(0.25), log(2), length=10)
)
## Intervalle de prédiction réduit de 95 %
d.grid = cbind(d.grid,
prédire (ajustement, nouvelles données = d.grid, intervalle = "prédiction", niveau = 0,9))
d.grid[,"lower95p"] = exp(d.grid[,"lwr"])
merci Malcom,
la discussion va dans ce sens. En fait, le client est également ouvert à d'autres options.