Carissimi,
un cliente chiede, se possibile, di tracciare i contorni per le previsioni del suo modello e/o gli intervalli di previsione nell'intero intervallo di valori possibili per le mie variabili indipendenti.
Lo ottiene in R (utilizzando la funzione expand.grid), dove la linea tratteggiata è l'intervallo di previsione inferiore del 95% (allegato 1).
Il meglio che è riuscito a fare (e anche a me) è stato l'allegato 2 e, insomma, io e lui non siamo riusciti ad avere la linea tratteggiata.(Ho anche un insieme fittizio di dati con il grafico)
Ha anche pubblicato la domanda nella community.
Hai qualche suggerimento?
Grazie
CIAO @MarcoSalfi ,
La funzione expand.grid agisce come FacetGrid in Seaborn per Python o come funzione facet_grid in ggplot2 di R. Fondamentalmente fa tutte le possibili combinazioni di uno o più fattori inseriti come una formula o una matrice. Qual è la riga completa del codice R utilizzata con la funzione expand.grid? Immagino che il resto del codice di tracciamento sia ciò che fornisce la trama per la densità con la casella della linea tratteggiata.
Ciao Marco,
Un'opzione potrebbe essere quella di creare un progetto di riempimento dello spazio per coprire adeguatamente la gamma di possibilità che l'utente desidera esplorare e quindi valutare la formula per tutte le combinazioni nel progetto di riempimento dello spazio.
Tuttavia, proverei a chiedere quali informazioni desidera ottenere creando la trama? Un'alternativa migliore potrebbe essere un grafico profiler della formula o il modello di regressione - senza e con controllo di estrapolazione. Il profiler è un modo molto migliore per domare la complessità dell'elevata dimensionalità di questo problema. Potremmo dare il solito avvertimento sul pericolo di estrapolare al di fuori dell'intervallo dello spazio X (o spazio del progetto) quando si utilizzano modelli empirici.
Malcom
CIAO @Chris_Kirchberg , seguendo il codice utilizzato dal cliente:
## Trasforma le variabili
log.AlphaLISA = log(AlphaLISA)
log.coniglio = log(Coniglio.Ab)
log.mouse = log(Mouse.Ab)
log.lysate = log(Lisato)
fit = lm( Log.AlphaLISA ~ Ab*(log.rabbit+log.mouse+log.lysate)^2 +
Ab*I(log.coniglio^2) + Ab*I(log.mouse^2) +
Ab*I(log.lysate^2) )
d.griglia = espandi.griglia(
Ab=c("R1-M1", "R1-M2", "R2-M1", "R2-M2", "R3-M1", "R3-M2"),
log.rabbit=seq(log(0.3), log(3), lunghezza=5),
log.mouse=seq(log(0.3), log(3), lunghezza=10),
log.lysate=seq(log(0.25), log(2), lunghezza=10)
)
## Intervallo di previsione inferiore del 95%.
d.grid = cbind(d.grid,
predict(fit, newdata=d.grid, interval="prediction", level=0.9))
d.grid[,"lower95p"] = exp(d.grid[,"lwr"])
grazie Malcom,
la discussione va in questa direzione. In realtà il cliente è aperto anche ad altre opzioni.