|
Python |
Matlab/Octave |
Vorbereitung (Laden von Modulen/Paketen) |
from numpy import *
from numpy.random import *
from matplotlib.pyplot import *
|
%Octave: pkg load statistics
%Matlab: erfordert die Statistics and Machine Learning Toolbox
|
Generieren von Werten mit einer
stetigen Verteilung (normalverteilte Zufallsgröße als Beispiel, mit dem Erwartungswert und der Standardabweichung ) |
N=100
mu=3
sigma=1
x=normal(mu,sigma,N)
plot(x,'o')
show()
|
N=100;
mu=3;
sigma=1;
x=normrnd(mu,sigma,[1,N]);
plot(x,'o')
|
Generieren von Werten mit einer diskreten Verteilung (Poisson-verteilte Zufallsgröße als Beispiel, mit der Intensität ) |
N=100
Lambda=3
x=poisson(Lambda,N)
plot(x,'o')
show()
|
N=100;
lambda=3;
x=poissrnd(lambda,[1,N]);
plot(x,'o')
|
Generieren von gleichmäßig verteilten Werten mit der Klassengrenzen |
K=20
xi=0.5*arange(0,K)-2
plot(xi,'o')
show()
|
K=20;
xi=0.5*(0:K-1)-2;
plot(xi,'o')
|
Generieren von ungleichmäßig verteilten Werten mit der Klassengrenzen |
K=20
xi=0.5*(1+arange(0,K)/float(5))**2-3
plot(xi,'o')
show()
|
K=20;
xi=0.5*(1+(0:K-1)/5).^2-3;
plot(xi,'o')
|
Kumulative Verteilungsfunktion (linksseitige Stetigkeit, sowohl stetige als auch diskrete Verteilungen) |
F=zeros(len(xi))
for i in range(0,len(xi)):
F[i]=sum(x<xi[i])
F/=float(len(x))
plot(xi,F,'o')
show()
oder
#Bei histogram() werden jeweils Werte gleich der unteren Intevallgrenze mitgezählt.
#Im letzten Intervall werden dann aber Werte beider Intervallgrenzen gezählt.
#Unterhalb des ersten Abfragewertes werden keine Werte gezählt.
#Deshalb werden ein Intervall von -∞ bis zur ersten Intervallgrenze und ein Intervall ab der letzten Intervallgrenze bis +∞ ergänzt.
F=cumsum(histogram(x,bins=append(append(-inf,xi),inf))[0][0:len(xi)])/float(len(x))
plot(xi,F,'o')
show()
|
F=zeros(1,length(xi));
for i=1:length(xi)
F(i)=sum(x<xi(i));
end
F=F/length(x);
plot(xi,F,'o')
oder
%Bei histc() werden jeweils Werte gleich der unteren Intevallgrenze mitgezählt.
%Unterhalb des ersten Abfragewertes werden keine Werte gezählt.
%Deshalb wird ein Intervall von -∞ bis zur ersten Intervallgrenze ergänzt.
F=cumsum(histc(x,[-inf,xi]))/length(x);
F=F(1:end-1);
plot(xi,F,'o')
|
Kumulative Verteilungsfunktion (rechtsseitige Stetigkeit, sowohl stetige als auch diskrete Verteilungen) |
F=zeros(len(xi))
for i in range(0,len(xi)):
F[i]=sum(x<=xi[i])
F/=float(len(x))
plot(xi,F,'o')
show()
oder
#Für rechtsseitige Stetigkeit werden alle Werte und Intervallgrenzen invertiert und ihre Reihenfolge umgekehrt.
#Hier hilft dann, dass von histogram() Werte gleich der unteren Intevallgrenzen mitgezählt werden.
#Es muss dann nur noch ein Intervall zur Unterscheidung der Werte bis zur letzten Intervallgrenze und oberhalb der letzten Intervallgrenze ergänzt werden.
F=cumsum(flip(histogram(-x,bins=flip(-append(-inf,xi)))[0]))/float(len(x))
plot(xi,F,'o')
show()
|
F=zeros(1,length(xi));
for i=1:length(xi)
F(i)=sum(x<=xi(i));
end
F=F/length(x);
plot(xi,F,'o')
oder
%Für rechtsseitige Stetigkeit werden alle Werte und Intervallgrenzen invertiert und ihre Reihenfolge umgekehrt.
%Auch hier muss ein Intervall ergänzt werden, um alle Werte vor der ersten Intervallgrenze mitzuzählen.
F=cumsum(flip(histc(-x,flip(-[-inf,xi]))))/length(x);
F=F(2:end);
plot(xi,F,'o')
|
Wahrscheinlichkeitsfunktion (nur für diskrete Verteilungen) |
xi=arange(0,11)
#Bei histogram() werden im letzten Intervall Werte beider Intervallgrenzen gezählt.
#Deshalb wird der letzte Abfragewert noch ein zweites Mal eingetragen, um die Werte am letzten und am vorletzten Abfragewert zu trennen.
P=histogram(x,bins=append(xi,xi[-1]))[0]/float(len(x))
plot(xi,P,'o')
show()
|
xi=(0:10);
P=histc(x,xi)/length(x);
plot(xi,P,'o')
|
Wahrscheinlichkeitsdichtefunktion (nur für stetige Verteilungen) |
K=len(xi)
f=histogram(x,bins=xi)[0][0:K-1]/float(len(x))/(xi[1:K]-xi[0:K-1])
step(xi,append(0,f))
show()
|
f=histc(x,xi)/length(x);
f=f(1:length(xi)-1);
f=f./reshape(xi(2:length(xi))-xi(1:length(xi)-1),size(f));
stairs(xi,[f,0])
|