p.specht
| Sozialforscher versuchen Thesen comment "Angehörige bildungsferner Schichten ou bien aus Gebieten avec geringer Kaufkraft volonté selten Generaldirektor" statistisch trop belegen. avec cela moderne Clusterungs- et Korrelationsverfahren mais marcher, doit seulement qui Umfrageskalen (quoi bedeutet bildungsfern, quoi kaufkraftarm) miteinander wertmäßig comparable gemacht volonté. comme procéder hierzu wird volontiers qui Z-Spaltennormierung herangezogen, qui je testhalber Schritt pour Schritt velours Probe zum besseren Nachvollziehen dargestellt habe.
Windowtitle "Spaltenweise z-Normierung zur Skalen-Vergleichbarmachung qui [n,m]-Erfassungsmatrix einer Umfrage"
'(Copyleft) 2015-04 by P. Specht, vienne. sans chacun Gewähr!
Windowstyle 24:font 2
Fenêtre 0,0-%maxx,%maxy
' Dimension qui gewünschten Testmatrix:
Var n&=5:var m&=5
Déclarer M![n&-1,m&-1],sum!,s![m&-1],Xm![m&-1],D![n&-1,m&-1],txt$
Déclarer Q![n&-1,m&-1],qs![m&-1],v![m&-1],sigma![m&-1],i&,j&,Z_sp![n&-1,m&-1]
Déclarer p![m&-1],pz![m&-1],ps![m&-1]'Probevektoren
txt$=" ["+str$(n&)+»+str$(m&)+"]-Testmatrix M, avec Zufallswerten belegt"
Randomiser
whileloop 0,n&-1:i&=&Boucle
whileloop 0,m&-1:j&=&Boucle
M![i&,j&]=rnd(10000)'rnd()*10^(rnd(53)-18)
endwhile
endwhile
Probe2:
imprimer:imprimer txt$;
whileloop 0,n&-1:i&=&Boucle
whileloop 0,m&-1:j&=&Boucle
imprimer tab(j&*27);format$("%g",M![i&,j&]),
endwhile
endwhile
imprimer
waitinput
txt$=" Zeilenvektor s[] qui Spaltensummen de M[,]"
whileloop 0,m&-1:j&=&Boucle
sum!=0
whileloop 0,n&-1:i&=&Boucle
sum!=sum!+M![i&,j&]
endwhile
s![j&]=sum!
endwhile
imprimer:imprimer txt$;
whileloop 0,m&-1:j&=&Boucle
imprimer tab(j&*27);format$("%g",S![j&]),
endwhile
imprimer
waitinput
txt$=" Zeilenvektor Xm[] qui Spaltenmittelwerte"
whileloop 0,m&-1:j&=&Boucle
xm![j&]=S![j&]/n&
endwhile
imprimer:imprimer txt$;
whileloop 0,m&-1:j&=&Boucle
imprimer tab(j&*27);format$("%g",xm![j&]),
endwhile
imprimer
waitinput
txt$=" Matrix D[,] qui sur Spaltenmitten zentrierten Spalten"
whileloop 0,m&-1:j&=&Boucle
whileloop 0,n&-1:i&=&Boucle
D![i&,j&]=M![i&,j&]-xm![j&]
endwhile
endwhile
imprimer:imprimer txt$;
whileloop 0,n&-1:i&=&Boucle
whileloop 0,m&-1:j&=&Boucle
imprimer tab(j&*27);format$("%g",D![i&,j&]),
endwhile
endwhile
imprimer
waitinput
txt$=" Probe: somme qui Zentrierten Werte muss presque 0 son!"
whileloop 0,m&-1:j&=&Boucle
sum!=0
whileloop 0,n&-1:i&=&Boucle
sum!=sum!+D![i&,j&]
endwhile
p![j&]=sum!
endwhile
imprimer:imprimer txt$;
whileloop 0,m&-1:j&=&Boucle
imprimer tab(j&*27);format$("%g",p![j&]),
endwhile
imprimer
waitinput
txt$=" Matrix Q qui Quadrate qui (Spaltenmittelwert-zentrierten) Werte D"
Whileloop 0,m&-1:j&=&Boucle
whileloop 0,n&-1:i&=&Boucle
Q![i&,j&]=sqr(D![i&,j&])
endwhile
endwhile
imprimer:imprimer txt$;
whileloop 0,n&-1:i&=&Boucle
whileloop 0,m&-1:j&=&Boucle
imprimer tab(j&*27);format$("%g",Q![i&,j&]),
endwhile
endwhile
imprimer
waitinput
txt$=" Zeilenvektor qs[] qui Spaltensummen de Q[,]"
whileloop 0,m&-1:j&=&Boucle
sum!=0
whileloop 0,n&-1:i&=&Boucle
sum!=sum!+Q![i&,j&]
endwhile
qs![j&]=sum!
endwhile
imprimer:imprimer txt$;
whileloop 0,m&-1:j&=&Boucle
imprimer tab(j&*27);format$("%g",qs![j&]),
endwhile
imprimer
waitinput
txt$=" Zeilenvektor v[] qui Spaltenvarianzen de D[,]"
whileloop 0,m&-1:j&=&Boucle
v![j&]=qs![j&]/n&
endwhile
imprimer:imprimer txt$;
whileloop 0,m&-1:j&=&Boucle
imprimer tab(j&*27);format$("%g",v![j&]),
endwhile
imprimer
waitinput
txt$=" Zeilenvektor sigma[] qui Spalten-Standardabweichungen de D[,]"
whileloop 0,m&-1:j&=&Boucle
'cas sigma![j&]<>0
sigma![j&]=sqrt(v![j&])
endwhile
imprimer:imprimer txt$;
whileloop 0,m&-1:j&=&Boucle
imprimer tab(j&*27);format$("%g",sigma![j&]),
endwhile
imprimer
waitinput
txt$=" Ergebnismatrix Z_sp qui spaltenweise z-normierten Werte qui Originalmatrix M"
Whileloop 0,m&-1:j&=&Boucle
whileloop 0,n&-1:i&=&Boucle
si sigma![j&]<>0
Z_sp![i&,j&]=D![i&,j&]/Sigma![j&]
'd'autre
' imprimer "********** Sigma[";str$(j&);"]=0 ignored! ***************":beep:waitinput
' Z_sp![i&,j&]=D![i&,j&]
endif
endwhile
endwhile
:::::::::::::::::::cls
imprimer:imprimer txt$;
whileloop 0,n&-1:i&=&Boucle
whileloop 0,m&-1:j&=&Boucle
imprimer tab(j&*27);format$("%g",Z_sp![i&,j&]),
endwhile
endwhile
imprimer
waitinput
txt$=" Probe 1: somme qui Z-normierten Spaltenwerte muss proche 0 son!"
whileloop 0,m&-1:j&=&Boucle
sum!=0
whileloop 0,n&-1:i&=&Boucle
sum!=sum!+Z_sp![i&,j&]
endwhile
pz![j&]=sum!
endwhile
imprimer:imprimer txt$;
whileloop 0,m&-1:j&=&Boucle
imprimer tab(j&*27);format$("%g",pz![j&]),
endwhile
imprimer
waitinput
imprimer
imprimer " Probe 2: qui Standardabweichung qui Spaltenwerte de Z_sp[,] muss 1 ergeben."
imprimer " en supplément wird Z_sp dans M geladen et cela Programme nochmals gestartet! "
waitinput
whileloop 0,m&-1:j&=&Boucle
whileloop 0,n&-1:i&=&Boucle
M![i&,j&]=Z_sp![i&,j&]
endwhile
endwhile
txt$=" qui ["+str$(n&)+»+str$(m&)+"]-Testmatrix M ist eh bien avec den Z-normierten Werten belegt."
cls
GOTO "Probe2"
FIN
|
|