MSEs vergleichen bei Varianzanalyse?

Alles zu (M)ANOVA, ALM...

MSEs vergleichen bei Varianzanalyse?

Beitragvon Van_Study » Do 1. Jun 2017, 11:25

Guten Tag liebe Leute,
ich suche verzweifelt Hilfe, da ich beim Thema Varianzreduktion nicht weiter komme. :(
In R habe ich bereits einiges dazu programmiert, allerdings weiß ich nicht ob das genügt für eine Varianzreduktion.
Ich hänge den Quellcode gleich mit an. Letztendlich bin ich momentan an dem Punkt, dass ich 3 unterschiedliche MSEs aus einer Untersuchung von 800 Personen erzeugt habe und diese miteinander vergleiche um auf 200 weitere Personen zu schließen (--> der kleinste MSE wird bevorzugt). Reicht diese Aussage für eine einfache Varianzreduktion oder sollte man noch einen tiefergehenderen Vergleich anstellen?
Ich bin euch über jegliche Antwort unglaublich dankbar!


#Monte Carlo Simulation zur multiplen Regression:
library(ggplot2)
set.seed(100)

#Leere Variablen erzeugen
mse_modell1<-NULL
mse_modell2<-NULL
mse_modell3<-NULL

for(i in 1:10000){
#Erzeugen eines Datensatzes mit einer bestimmten Zusammenhangsstruktur
#Es werden jeweils 1000 Leute gezogen
qualifikation<-rnorm(1000,50,10) #metrische, normalverteilte Variable
jahre_derzeitige_Stelle<-rnorm(1000,10,2) #metrische, normalverteilte Variable mit einem Mittelwert von 10 
#und einer Standardabweichung von 2
geschlecht<-rbinom(1000,1,0.6) #binäre dummy variable
#Männer 1 Frauen 0
soziale_kompetenz<-rnorm(1000,50,10)#metrische, normalverteilte Variable
größe<-rnorm(1000,180,15) #metrische, normalverteilte Variable
herkunft<-rbinom(1000,1,0.8) #binäre dummy variable
ernährungsverhalten<-rnorm(1000,50,10) #metrische, normalverteilte Variable

#Erzeugen von Einkommen als Linearkombination einiger relevanter Prädiktoren und einem Fehler
einkommen<-qualifikation*6+jahre_derzeitige_Stelle*23+geschlecht*300+soziale_kompetenz*4+rnorm(1000,0,200)

#Erstellen eines Datensatzes mit allen Variablen
data<-data.frame(qualifikation,jahre_derzeitige_Stelle,geschlecht,soziale_kompetenz,
größe,herkunft,einkommen,ernährungsverhalten)

#Aufteilen des Datensatzes in ein Testset zur Messung der Vorhersagegenauigkeit
#und ein Trainingset zur Schätzung der Regressionsmodells
auswahl<-sample(seq(1,1000,by=1),size=800) #Trainingset hat eine größe von 800 Personen
trainingdata<-data[auswahl,]
testdata<-data[-auswahl,]
#Schätzen von drei unterschiedlich komplexen Modellen
#Modell 1 enthält alle Variablen
modell1<-lm(einkommen~herkunft+größe+qualifikation+soziale_kompetenz+ernährungsverhalten+
geschlecht+jahre_derzeitige_Stelle,data = trainingdata)
#Modell 2 enthält nur die irrelevanten Variablen
modell2<-lm(einkommen~herkunft+größe+ernährungsverhalten,data = trainingdata)
#Modell 3 enthält nur die relevanten Variablen
modell3<-lm(einkommen~qualifikation+soziale_kompetenz+geschlecht+jahre_derzeitige_Stelle,data = trainingdata)

#Schätzung des durchschnittlichen quadrierten Residuuums der jeweiligen Modells
#Auch Test standard error
#Das Modell mit dem geringsten durchschnittlichen Error bei der Vorhersage neuer Werte wäre zu präferieren
mse1<-mean(sqrt((as.numeric(predict.lm(modell1,testdata))-testdata$einkommen)^2))
mse2<-mean(sqrt((as.numeric(predict.lm(modell2,testdata))-testdata$einkommen)^2))
mse3<-mean(sqrt((as.numeric(predict.lm(modell3,testdata))-testdata$einkommen)^2))
#Abspeichern der soeben berechneten mses in einen Vektor der am Ende alle Werte der 10000
#Wiederholungen enthät
mse_modell1<-c(mse_modell1,mse1)
mse_modell2<-c(mse_modell2,mse2)
mse_modell3<-c(mse_modell3,mse3)
}

#Schätzer für den erwartetes MSE für die jeweiligen Modelle nach 10000 Wiederholungen
mean(mse_modell1)
hist(mse_modell1)

mean(mse_modell2)
hist(mse_modell2)

mean(mse_modell3)
hist(mse_modell3)
plot1<-data.frame(c(mse_modell1,mse_modell2,mse_modell3),c(rep("Modell1",10000),rep("Modell2",10000),rep("Modell3",10000)))
colnames(plot1)<-c("durchschnittlicher_Testfehler","Modell")

ggplot(data=plot1,aes(Modell,durchschnittlicher_Testfehler,fill=Modell))+
geom_boxplot()+
ylab("durchschnittlicher Testfehler")+
xlab(NULL)+
ggtitle("Verteilung der durchschnittlichen Testfehler nach Modell")+
theme_bw(base_size=20)+
theme(legend.position="bottom",legend.title = element_text(size=0))
Van_Study
Einmal-Poster
Einmal-Poster
 
Beiträge: 1
Registriert: Do 1. Jun 2017, 11:10
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Zurück zu Varianzanalysen

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 2 Gäste