Non ho ancora provato a trattenere i dati per prevedere, ma la mia intuizione è che fissare le covarianze a zero nel tuo modello è analogo alla previsione di un DV combinando un insieme di equazioni di regressione lineare separate, a singolo IV, separate. A differenza di questo approccio, la regressione multipla tiene conto della covarianza nei IV quando si produce un modello di equazioni per predire il DV. Ciò certamente migliora l'interpretabilità separando gli effetti diretti dagli effetti indiretti che si verificano interamente all'interno dell'insieme incluso di IV. Onestamente, non sono sicuro se questo migliora necessariamente la previsione del DV. Essendo un utente di statistiche e non uno statistico, ho messo insieme la seguente funzione di test di simulazione per dare una risposta incompleta (apparentemente, "Sì, l'accuratezza predittiva migliora quando il modello incorpora la covarianza IV") in questo caso si spera analogo ...
simtestit=function(Sample.Size=100,Iterations=1000,IV.r=.3,DV.x.r=.4,DV.z.r=.4) {
require(psych); output=matrix(NA,nrow=Iterations,ncol=6); for(i in 1:Iterations) {
x=rnorm(Sample.Size); z=rnorm(Sample.Size)+x*IV.r
y=rnorm(Sample.Size)+x*DV.x.r+z*DV.z.r
y.predicted=x*lm(y~x+z)$coefficients[2]+z*lm(y~x+z)$coefficients[3]
bizarro.y.predicted=x*lm(y~x)$coefficients[2]+z*lm(y~z)$coefficients[2]
output[i,]=c(cor(y.predicted,y)^2,cor(bizarro.y.predicted,y)^2,
cor(y.predicted,y)^2>cor(bizarro.y.predicted,y)^2,cor(x,z),cor(x,y),cor(y,z))}
list(output=output,percent.of.predictions.improved=100*sum(output[,3])/Iterations,
mean.improvement=fisherz2r(mean(fisherz(output[,1])-fisherz(output[,2]))))}
# Wrapping the function in str( ) gives you the gist without filling your whole screen
str(simtestit())
Questa funzione genera campioni casuali ( , = ) da tre variabili normalmente distribuite: rumore casuale e rumore casuale. L'utente può influenzare in qualche modo le loro correlazioni sovrascrivendo i valori predefiniti per gli ultimi tre argomenti, ma il rumore casuale influenza anche le correlazioni del campione, quindi questo simula il modo in cui l'errore di campionamento influenza le stime dei parametri di correlazione reali. La funzione calcola previsioni basate su coefficienti di regressione per e derivati da:N= Iterations
nSample.Size
z
= x
+y
= x
+ z
+y
x
z
( ) regressione multipla ( ) e ...1y.predicted
( ) due regressioni lineari bivariate separate ( ).2bizarro.y.predicted
La output
matrice contiene Iterations
righe e sei colonne: s di e , un test vero-falso per stabilire seR2121 > 2rx
y
z
output
simtestit()
str( )
R21rpsych
R2R2IV.r
) è più grande. Dato che probabilmente hai più familiarità con la tua funzione GLM di me (che non lo è affatto), potresti probabilmente cambiare questa funzione o usare l'idea di base per confrontare le previsioni GLM attraverso tutti i IV che desideri senza troppi problemi. Supponendo che sarebbe (o lo farà) allo stesso modo, sembrerebbe che la risposta di base alla tua seconda domanda sia probabilmente sì, ma quanto dipende da quanto fortemente la covaria IV. Le differenze nell'errore di campionamento tra i dati trattati e i dati utilizzati per adattarsi al modello potrebbero sopraffare il miglioramento della sua precisione predittiva all'interno di quest'ultimo set di dati, perché, di nuovo, il miglioramento sembra essere piccolo a meno che le correlazioni IV non siano forti (almeno, in il caso massimo di base con solo due IV).