dr inż. Jacek Jarnicki doc. PWr Niezawodność diagnostyka systemów laboratorium Ćwiczenie 2 1. Treść ćwiczenia Generowanie realizacji zmiennych losowych i prezentacja graficzna wyników losowania. Symulacja badania niezawodnościowego i estymacja parametrów rozkładu zmiennej losowe opisującej czas życia elementu. 2. Generacja realizacji zmiennych losowych W pakiecie statystycznym systemu MATLAB znajduje się szereg funkcji służących do generowania realizacji zmiennych losowych. Noszą one nazwę generatorów zmiennych losowych. Lista tych funkcji wygląda następująco: Random Number Generators betarnd binornd chi2rnd exprnd frnd gamrnd geornd hygernd lognrnd Beta random numbers. Binomial random numbers. Chi-square random numbers. Exponential random numbers. F random numbers. Gamma random numbers. Geometric random numbers. Hypergeometric random numbers. Lognormal random numbers.
nbinrnd ncfrnd nctrnd ncx2rnd normrnd Negative binomial random numbers. Noncentral F random numbers. Noncentral t random numbers. Noncentral Chi-square random numbers. Normal (Gaussian) random numbers. poissrnd Poisson random numbers. raylrnd random trnd unidrnd unifrnd weibrnd Rayleigh random numbers. Parameterized random number routine. Student's t random numbers. Discrete uniform random numbers. Continuous uniform random numbers. Weibull random numbers. Dla przykładu wywołanie funkcji normrnd(mu, sigma) spowoduje wygenerowanie jednej realizacji zmiennej losowej z rozkładu normalnego o parametrach mu = μ,. sigma = σ. Prosty program pozwalający wygenerować wektor składający się z ustalonej liczby np. n =10 realizacji zmiennych losowych pochodzących z rozkładu normalnego o parametrach μ =0 i σ=1 może wyglądać na przykład tak: n = 10; % Zadeklarowanie wymiaru wektora t = zeros(1,n); % Wyzerowanie elementów wektora t % Losowanie kolejnych elementów wektora for i = 1:n, t(i) = normrnd(0,1); end t % Wyświetlenie wylosowanych elementów wektora t To samo można zrobić prościej wywołując funkcję generatora z dodatkowymi parametrami (patrz plik pomocy). Program upraszcza się wtedy do postaci:
% Wylosowanie i wyświetlenie 10 elementów wektora t t = normrnd(0,1,1,10) Uwaga: Proszę sprawdzić, co się stanie, jeśli powyższy program zostanie uruchomiony kilkakrotnie? Jak za każdym razem będzie wyglądał wektora t. 3. Graficzna prezentacja wyników losowania przy pomocy histogramu Do pokazania na rysunku wyników losowania służy między innymi funkcja hist(...), pozwalająca na utworzenie rysunku histogramu danych. Przykład użycia funkcji rysującej histogram może być taki: % Wylosowanie 100 elementów wektora t t = normrnd(0,1,1,100); % Narysowanie histogramu hist(t); Uwaga: W przypadku użycia funkcji hist(...) bez dodatkowych parametrów (tak jak powyżej), zarówno zakres jak i liczba słupków histogramu dobierana jest automatycznie. Dodatkowe informacje dotyczące zmiany wyglądu histogramu znajdują się w pliku pomocy. 4. Graficzna prezentacja wyników losowania przy pomocy wykresu probabilistycznego W pakiecie statystycznym systemu MATLAB dostępne są dwie funkcje pozwalające na graficzną prezentację dopasowania danych do określonego rozkładu. Są to funkcje normplot(...) i weibplot(...). Pierwsza z nich pozwala ocenić dopasowanie danych do rozkładu normalnego a druga do rozkładu Weibulla. Obowiązuje zasada, że im bardziej dane pasują do określonego rozkładu, tym lepiej układają się wzdłuż linii prostej. Na przykład jeśli wylosować dane z rozkładu normalnego i sporządzić dla nich wykres probabilistyczny w układzie współrzędnych dla tego rozkładu uzyska się efekt taki jak pokazano poniżej:
% Wylosowanie 100 elementów wektora t t = normrnd(0,1,1,100); % Narysowanie wykresu probabilistycznego normplot(t); Wykonanie programu pozwoli na prezentacje danych przy pomocy wykresu. 0.997 Normal Probability Plot 0.99 0.98 0.95 0.90 0.75 Probability 0.50 0.25 0.10 0.05 0.02 0.01 0.003-2.5-2 -1.5-1 -0.5 0 0.5 1 1.5 2 Data Jak widać punkty odpowiadające wynikom losowania układają się dość dobrze wzdłuż linii prostej co pozwala przypuszczać, że rzeczywiście pochodzą z rozkładu normalnego. 5. Wyznaczanie parametrów rozkładu prawdopodobieństwa metodą największej wiarogodności Do wyznaczania parametrów rozkładów metodą największej wiarogodności przygotowano w pakiecie statystycznym następujące funkcje.
Parameter Estimation betafit Parameter estimation for the beta distribution. betalike Beta log-likelihood function. binofit expfit gamfit gamlike mle Parameter estimation for the binomial distribution. Parameter estimation for the exponential distribution. Parameter estimation for the gamma distribution. Gamma log-likelihood function. Maximum likelihood estimation. normlike Normal log-likelihood function. normfit Parameter estimation for the normal distribution. poissfit Parameter estimation for the Poisson distribution. unifit Parameter estimation for the uniform distribution. Przykładowo wywołanie funkcji normfit(t) spowoduje obliczenie dla danych zapisanych jako elementy wektora t parametrów rozkładu normalnego, który najlepiej pasuje do tych danych.program pozwalający wygenerować wektor t oraz wyznaczenie parametrów rozkładu normalnego dla tego wektora ilustruje kolejny przykład. % Wylosowanie 100 elementów wektora t z rozkładu normalnego % o parametrach μ = 0 i σ = 1 t = normrnd(0,1,1,100); % Obliczenie parametrów rozkładu metodą największej % wiarogodności i ich wydrukowanie [mi, sigma] = normfit(t) 6. Zadania do wykonania Wykorzystując funkcje pakietu statystycznego napisać proste programy realizujące poniższe zadania:
Dla elementu nienaprawialnego, którego czas życia opisany jest rozkładem wykładniczym o parametrze λ = 1000 wylosować trzy próby. Pierwsza o liczności n = 50, druga dla n = 500, trzecia gdy n = 5000. Wyniki losowań zapisać do plików binarnych. Uwaga 1: Proszę używać funkcji exprnd(...), fopen(...), fclose(...), fwrite( ). Uwaga 2: Proszę zwrócić uwagę, że w pakiecie statystycznym przyjęto zapis rozkładu wykładniczego w postaci t F() t = 1 exp λ Konsekwencją takiej notacji jest to, że średni czas życia dla elementu o tak opisanym rozkładzie wynosi nie 1/ λ lecz λ tak więc w przypadku gdy funkcję exprnd( ) wywołamy dla przykładu z parametrem λ = 1000 symulujemy realizację czasu życia elementu o wartości średniej czasu życia 1000 jednostek czasu. Napisać program (programy) odczytujące dane z plików i rysujące histogramy dla tych danych. Uwaga: Proszę używać funkcji fread(...) i hist(...). Zmodyfikować programy (programy) rysujące histogram przez dodanie rysowania wykresów probabilistycznych na siatce rozkładu Weibulla i normalnego. Jeden program powinien rysować teraz, co najmniej trzy wykresy, histogram i dwa wykresy probabilistyczne. Uwaga: Proszę używać funkcji weibplot(...), normplot(...), figure(). Uzupełnić dotychczas napisany program (programy) o obliczanie estymatorów parametrów rozkładu metodą największej wiarogodności. Sprawdzić jak wyglądają estymatory dla rozkładu wykładniczego (z tego rozkładu losowano dane) i rozkładu, Welbulla. Obliczyć estymator wartości średniej dla rozkładu Weibulla. Uwaga: Proszę używać funkcji expfit(...), weibfit(...), weibstat( ). Napisać program rysujący wykres przebiegu estymatora największej wiarogodności średniego czasu życia elementu w funkcji liczności próby. Założyć, że czas życia elementu opisany jest zmienną losową o rozkładzie wykładniczy z parametrem λ = 1000 a liczności próby wynoszą 50, 100,500, 1000, 5000, 10000, 50000, 100000, 500000, 1000000. Uwaga: Proszę używać funkcji exprnd(, )expfit(...) a w miejsce funkcji plot( ) zastosować funkcję semiologx( ). W sprawozdaniu należy skomentować otrzymane rezultaty.