Schätzung von durchschnittlichen Schlachtgewichten anhand von Taxationsdaten Projektarbeit im Rahmen des Weiterbildungslehrgangs in angewandter Statistik des Seminars für Statistik der ETHZ Frühjahr-Sommer 2007 Daniel K. Erdin Dr. sc. tech. ETH 1/50 Inhaltsverzeichnis 1. Einleitung ................................................................................................................................ 6 2. Material und Methode.............................................................................................................. 7 3. 4. 5. 2.1. Beschreibung der Daten .................................................................................................. 7 2.2. Datenbezug und -handling............................................................................................... 8 2.3. Anpassung einer Verteilung an die Daten........................................................................ 8 2.4. Verteilung der Daten...................................................................................................... 11 2.5. Anpassung einer t-Verteilung......................................................................................... 11 2.6. Anpassung einer Γ-Verteilung........................................................................................ 12 2.7. Kombination von Normal- und Γ-Verteilung ................................................................... 12 2.8. Wahl der besten Anpassung.......................................................................................... 13 2.9. Simulationen zum Vertrauensintervall............................................................................ 13 Resultate............................................................................................................................... 14 3.1. Kategorie GI .................................................................................................................. 14 3.2. Kategorie JB.................................................................................................................. 15 3.3. Kategorie KV ................................................................................................................. 16 3.4. Kategorie LA.................................................................................................................. 18 3.5. Kategorie MA................................................................................................................. 19 3.6. Kategorie MT................................................................................................................. 20 3.7. Kategorie OB................................................................................................................. 21 3.8. Kategorie RG................................................................................................................. 22 3.9. Kategorie RV ................................................................................................................. 23 3.10. Kategorie SM................................................................................................................. 24 3.11. Kategorie VK ................................................................................................................. 25 3.12. Kategorie Schweine....................................................................................................... 26 3.13. Überblick ....................................................................................................................... 26 3.14. Multinomiale Zufallszahlen ............................................................................................ 26 3.15. Simulation...................................................................................................................... 28 Diskussion............................................................................................................................. 30 4.1. Beurteilung .................................................................................................................... 30 4.2. Interpretation der Verteilungen ...................................................................................... 30 4.3. Subpopulationen............................................................................................................ 30 4.4. Vertrauensintervalle....................................................................................................... 30 4.5. Bedeutung der Methode ................................................................................................ 31 4.6. Anwendung und Ausblick .............................................................................................. 31 Anhang.................................................................................................................................. 32 5.1. Detaillierte Resultate ..................................................................................................... 32 2/50 5.2. Glossar.......................................................................................................................... 39 5.3. Erfolglose Versuche und anderes.................................................................................. 40 5.4. Literatur ......................................................................................................................... 40 5.5. R-Skripte ....................................................................................................................... 41 3/50 Dank Mein Dank geht • an meine Frau und meine Kinder, da sie wohl am meisten unter meiner Fortbildung gelitten haben. • an meinen Arbeitgeber, dem Schweizerischen Bauernverband, für die grosszügige Unterstützung. • an meine Arbeitskollegen und Vorgesetzten, welche von meiner Abwesenheit während der Kurse und meiner zwangsläufig reduzierten Arbeitskapazität betroffen waren. • an die Proviande und insbesondere Herrn Mike Schneider, welcher die Basisdaten zur Verfügung stellt. last but not least - an die Organisatoren, Dozenten und Assistenten des Kurses für den interessanten Kurs und die gute Betreuung, insbesondere an Prof. Werner Stahel und Herrn Christoph Birrer für die Unterstützung und Betreuung im Rahmen der vorliegenden Projektarbeit. Nach vielen Jahren „Kochbuch-Statistik“ bot der Weiterbildungslehrgang des Seminars für Statistik der ETHZ endlich die Gelegenheit zu einem vertieften Einblick und dem Gefühl, mindestens ab und zu etwas verstanden zu haben. 4/50 Zusammenfassung In der vorliegenden Arbeit wird eine Methode zur Schätzung von durchschnittlichen Schlachtgewichten und Vertrauensintervallen auf der Basis der Taxationsdaten der Proviande beschrieben. Die Taxationsdaten der Proviande liefern für die Schlachttierkategorien Gitzi, Jungvieh, Kälber, Lämmer, ältere Stiere, Muni, Ochsen, Rinder, Jungkühe, Kühe und Schweine grob nach Gewichtsklassen klassierte Tierzahlen nach Monaten. Die Breite der Gewichtsklassen ist innerhalb jeder Tierkategorie konstant. Für jede Tierkategorie gibt es zudem eine untere Klasse von der nur die obere Gewichtsgrenze bekannt ist und eine obere Gewichtsklasse, von der nur die untere Gewichtsgrenze bekannt ist. Die Verteilung der Gewichte der betreffenden Tiere hat in diesem Fall keine vorgegebenen festen Grenzen. Anhand der Tierzahlen in den Klassen werden für jeden Datensatz mittels eines Anpassungstests eine optimierte t- und eine optimierte GammaVerteilung angepasst. Mit den Momenten dieser angepassten Verteilungen kann das Durchschnittsgewicht und ein Vertrauensintervall dazu mit Berücksichtigung der untersten und obersten Gewichtsklasse geschätzt werden. Je nach Tierkategorie lässt sich die t-Verteilung oder die Γ-Verteilung besser an die beobachteten Tierzahlen anpassen. Dabei weicht die geschätzte Verteilung der Gewichte gemäss Anpassungstest oft signifikant von der beobachteten Verteilung ab. In jenen Fällen, wo sich ein grösserer Anteil der Tiere in den Grenzklassen befindet, kann jedoch mindestens eine Methode mit befriedigender Genauigkeit angepasst werden. Aufgrund von multinomial erzeugten Zufallszahlen erscheinen die geschätzten Vertrauensintervalle einigermassen zuverlässig zu sein, falls eine gute Anpassung der Verteilung vorliegt und sich nicht ein extremer Anteil der Tiere in den Grenzklassen befindet. Die Bedeutung der Methode hängt vom Anteil der Tiere in den Grenzklassen und der wirtschaftlichen Bedeutung der Tierkategorie ab. Die grösste Bedeutung hat die Methode bei den Schlachtkälbern KV, bei denen eine Korrektur des durchschnittlichen Schlachtgewichtes um 5.4 kg zu einer Differenz von ca. 19 Millionen Franken auf Stufe Rohertrag führt. Die mit dieser Methode geschätzten mittleren Gewichte werden seit 2006 durch den Schweizerischen Bauernverband, das Bundesamt für Statistik und weitere Organisationen verwendet. 5/50 1. Einleitung Die durchschnittlichen Schlachtgewichte von Rindern, Schweinen, Schafen und Ziegen haben eine grosse Bedeutung, da der Anteil des Rohertrags von Schlachttieren dieser Tiergattungen gemäss der landwirtschaftlichen Gesamtrechnung für das Jahr 2003 ca. 30 % des Rohertrags des landwirtschaftlichen Wirtschaftsbereichs beträgt (Bundesamt für Statistik 2006). Durchschnittsgewichte nach Tierkategorien werden dementsprechend von diversen Organisationen benötigt (u.a. Bundesamt für Statistik, Bundesamt für Landwirtschaft, Schweizerischer Bauernverband, weitere Organisationen der Produzenten und der Verwerter). Bis Ende 2005 (definitive Schlachtviehstatistik) bzw. März 2006 (provisorische Schlachtviehstatistik) hat das Bundesamt für Statistik (BFS) diese Gewichte aufgrund von monatlichen Stichprobenerhebungen in den Schlachthöfen geschätzt. Diese Erhebungen lieferten die Ausgangsdaten für die Erstellung der Schweizerischen Schlachtviehstatistik. Da das BFS die Schätzung der Schlachtviehstatistik in der Folge aufgegeben hat, erteilte das Bundesamt für Landwirtschaft (BLW) dem Geschäftsbereich Statistik des Schweizerischen Bauernverbandes (Statistik SBV) einen entsprechenden Leistungsauftrag zur Erstellung der Schlachtviehstatistik und somit auch zur Schätzung der durchschnittlichen Schlachtgewichte. Im Gegensatz zum bisherigen Erhebungsverfahren sollten die Resultate der neutralen Taxation der Proviande gemäss Schlachtviehverordnung (Schweizerische Eidgenossenschaft 2006) die Basis für die Schätzung der durchschnittlichen Schlachtgewichte bilden. Die Proviande erklärte sich bereit, diese Daten monatlich zu liefern. Die Klassierungsdaten der Proviande liefern Angaben zu den Tierzahlen in Gewichtsklassen nach Tierkategorie (GI, JB, KV, MA, MT, OB, RG, RV, VK und Schlachtschweine) auf Monatsbasis. Diese Daten dienen primär zur Kontrolle der neutralen Taxation und des dazu verwendeten Taxationssystems (CHTAX-System bei Wiederkäuern, Magerfleischanteil bei den Schweinen). Das Ergebnis der Taxation dient dem Schlachthof zur Festlegung des Preises des betreffenden Schlachttieres. Tabelle 1: Durch die Klassierungsdaten der Proviande erfasste Tierkategorien Tierkategorie (CH-TAX) Bedeutung Klassifizierungssystem GI Gitzi Klasse I CH-TAX JB Jungvieh CH-TAX KV Schlachtkälber CH-TAX MA Muni ältere CH-TAX MT Muni ungeschaufelt CH-TAX OB Ochsen bis max. 4 Schaufeln CH-TAX RG Rinder bis max. 4 Schaufeln CH-TAX RV Rinder/Jungkühe bis max. 4 Schaufeln CH-TAX VK Kühe CH-TAX Schweine* Schlachtschweine Magerfleischanteil * Keine Kategorie nach CH-TAX, die Schweine werden vor allem aufgrund des Magerfleischanteils bewertet Im Rahmen der Datenerfassung durch die Proviande werden die Tiere jeder Kategorie nach Gewichtsklassen eingeteilt, wobei die Breite der Gewichtsklassen von der Tierkategorie abhängt. Die Gewichtsklassen haben eine untere und obere Grenze. Von den Tieren ausserhalb der registrierten Gewichtsklassen ist nur die Anzahl und die obere respektiv die untere Grenze der Gewichte bekannt. Die beiden Klassen ausserhalb des definierten Gewichtsbereichs werden in der Folge als untere und obere Grenzklasse bezeichnet. In Tabelle 2 wird dies anhand der Daten für die Kälber des Monats Januar 2005 dargestellt. 6/50 Tabelle 2: Klasse 1 2 3 4 5 6 7 8 Gewichtsdaten der Schlachtkälber KV gemäss neutraler Taxation vom Januar 2005 Gewichtsbereich Anzahl Tiere angenäherte der Klasse Klassenmitte < 70 kg 67 unbekannt 70 - 80 kg 49 75 kg 80 - 90 kg 180 85 kg 90 - 100 kg 731 95 kg 100 - 110 kg 2 344 105 kg 110 - 120 kg 4 477 115 kg 120 - 130 kg 4 597 125 kg > 130 kg 2 866 unbekannt Um einen zuverlässigen Mittelwert und ein realistisches Vertrauensintervall für den Mittelwert zu erhalten, müssen die beiden Grenzklassen, für welche der Gewichtsbereich nicht bekannt ist, ebenfalls berücksichtigt werden, zumindest falls die beiden Anzahlen von Tieren, welche unterhalb bzw. oberhalb des klassierten Bereichs liegen, sich deutlich unterscheiden und der Anteil der Tiere ausserhalb der Gewichtsklassen mit bekanntem Durchschnittsgewicht relativ gross ist. Dies ist zum Beispiel bei den Schlachtkälbern KV mit mehr als 20 % der Tiere in den beiden Grenzklassen der Fall. Werden diese beiden Grenzklassen bei der Schätzung nicht berücksichtigt, wird die Lage des Mittelwertes nicht zuverlässig bestimmt und die Streuung unterschätzt. Dadurch fällt auch das Vertrauensintervall für den Mittelwert zu klein aus. In der Folge wird eine Methode beschrieben, welche die Durchschnittsgewichte und die Vertrauensintervalle nach Tierkategorie und Monat bzw. Jahr schätzt. Die Ausgangsidee ist die folgende: anhand der klassierten Schlachtgewichtsdaten wird eine Verteilung gesucht, welche möglichst der vorliegenden Datenstruktur entspricht. Mithilfe dieser Verteilung werden dann das Durchschnittsgewicht und die Streuung bestimmt. Die vorliegende Dokumentation beschränkt sich auf die Daten des Jahres 2005. Diese dienten zur Bestimmung der Methode und hatten den Vorteil, dass für gewisse Kategorien noch Durchschnittsgewichte des BFS zum Vergleich vorhanden sind. 2. Material und Methode 2.1. Beschreibung der Daten In Tabelle 3 werden die Daten für das Jahr 2005 nach Tierkategorie dargestellt. Z.B. bestehen für die Kategorie KV (Schlachtkälber) 6 Gewichtsklassen mit einer Breite von jeweils 10 kg. Der dadurch abgedeckte Gewichtsbereich reicht von 70 bis 130 kg. 42'762 von 180'250 Kälbern bzw. 23.7 % liegen über respektive unterhalb dieser 6 Gewichtsklassen. 7/50 Tabelle 3: Struktur der Gewichtsdaten im Jahr 2005 Kategorie Klassen mit Bereich Anzahl von bis Klassenbreite Tiere total Tiere in Klassen mit Gewicht Anteil kg kg kg Anzahl Anzahl % GI 10 5 15 1 37 30 81.1 JB 6 80 200 20 525 501 95.4 KV 6 70 130 10 180’250 137’488 76.3 LA 6 13 25 2 51’847 46’802 90.3 MA 14 150 500 25 2’698 1’654 61.3 MT 14 150 500 25 75’930 75’831 99.9 OB 12 150 450 25 18’247 18’193 99.7 RG 14 150 500 25 42’060 41774 99.3 RV 14 150 500 25 8’008 8’006 100.0 SM 7 20 90 10 4’123 4’002 97.1 VK 14 150 500 25 114’335 114’218 99.9 Schweine 4 65 105 10 1’501’097 30’687 98.0 Bei der Kategorie MA (ältere Stiere) liegen sehr viele Tiere ausserhalb der Gewichtsklassen. Bei den Klassen GI (Gitzi) und JB (Jungvieh) liegen insgesamt nur wenige Angaben (37 bzw. 525 Tiere) vor. Bei diesen Kategorien wurden deshalb nur Jahresdaten ausgewertet. Die Daten der Kategorie RV (Jungkühe) mussten korrigiert werden, da von Juni bis Dezember die Daten der untersten Klasse offensichtlich falsch erfasst worden waren. 2.2. Datenbezug und -handling Die Daten werden monatlich durch die Proviande als Excel-Datei zugestellt. Diese Dateien werden über MS Access in eine SQL-Datenbank (Microsoft SQL Server) eingelesen und für die Ablage in ein relationales Datenbankformat transformiert. Ab der SQL-Datenbank werden die Daten nach Tierkategorie und Monat bzw. Jahr über SQL-Queries in CSV-Dateien (Semikolon als Trennzeichen) geschrieben, welche anschliessend ins Statistik-Programm R (R Development Core Team, 2006) importiert werden. 2.3. Anpassung einer Verteilung an die Daten 2.3.1. Wahl der Verteilung Die effektive Verteilung der Schlachtgewichtsdaten ist grundsätzlich nicht bekannt. Die Tierzahlen in den einzelnen Gewichtsklassen können durch sehr unterschiedliche Faktoren beeinflusst werden: u.a. durch die Saison, durch die Produktionsbedingungen auf den Landwirtschaftsbetrieben und durch das Bezahlungssystem im Schlachthof. Insbesondere kann nicht vorausgesetzt werden, dass die Gewichte symmetrisch oder normal verteilt sind. Grundsätzlich kann für die Gewichte G einer Tierkategorie eine beliebige Verteilung D (für Distribution), welche durch die entsprechenden Parameter definiert ist, an die Wahrscheinlichkeiten der Tierzahlen in den Gewichtsklassen 1 bis k angepasst werden. Dabei wird vorausgesetzt, dass die Gewichte der Tiere gemäss der entsprechenden Verteilung der Gewichte D(G) verteilt sind.. [1] G ~ D(G) Zur Beurteilung der Anpassungsgüte kann ein χ2-Anpassungstest (Stahel 2002) durchgeführt werden. Dieser erfolgt auf der Basis der beobachteten Anzahlen (N) in den vorhandenen der Gewichtsklassen im Vergleich zu den entsprechenden geschätzten Anzahlen (Ne). Die berechnete Testgrösse T ergibt sich somit als: 8/50 [2] T = Σi=1 bis k [(Ni - Nei)2 / Nei] Der entsprechende Freiheitsgrad (DF) für diese Testgrössen entspricht der Anzahl Klassen abzüglich der geschätzten Parameter korrigiert um 1: [3] DF = k - p - 1 Klassen ohne Beobachtungen am Rand der Verteilung werden nicht berücksichtigt, so dass in der untersten bzw. obersten verbleibenden Klasse jeweils mindestens eine Beobachtung liegt (vgl. Stahel 2002, S. 225). Eigentlich wären für diese optimierte Klassenbildung die erwarteten Werte massgebend, diese sind jedoch erst nach der Approximation der Verteilung bekannt. Die folgenden Ausführungen gelten somit für die entsprechend optimierten Klassen. Die berechnete Testgrösse sollte unter dem theoretischen Wert des Quantils der ChiquadratVerteilung für die hier gewählte Irrtumswahrscheinlichkeit α = 0.05 und die Freiheitsgrade DF liegen. Die Parameter einer in Frage kommenden Verteilung können über die R-Funktion „optim“ bestimmt werden. Mit optim werden dabei die Parameter der gewählten Verteilung gesucht, für welche die Testgrösse T am kleinsten wird. Für die berechnete Testgrösse als Quantil der Chiquadrat-Verteilung kann auch die Wahrscheinlichkeit für die k - p - 1 Freiheitsgrade berechnet werden. Der P-Wert wird dabei als 1 abzüglich der Wahrscheinlichkeit des Quantils definiert. Liegt dieser P-Wert unter 0.05, dann entspricht dies einem signifikanten Unterschied zwischen der angepassten Verteilung und der tatsächlichen Verteilung der vorliegenden Gewichtsdaten. Liegt der P-Wert über 0.05, dann kann kein signifikanter Unterschied zwischen der angepassten Verteilung und der effektiven Verteilung der Daten festgestellt werden. 2.3.2. Schätzung des Mittelwerts Der Mittelwert kann mit den vorhandenen Gewichtsdaten auf unterschiedliche Art geschätzt werden. Bei der ersten und einfachsten Methode werden nur die Mittelpunkte der Klassen (zi) für die Klassen i von 2 bis k-1 und die beobachteten Anteile der Klassen 2 bis k-1 (pk) benutzt. D.h. die Grenzklassen werden nicht berücksichtigt. Der Mittelwert m1 ergibt sich als Summe der mit dem jeweiligen Klassenmittelpunkte multiplizierten Tierzahlen der betreffenden Klassen dividiert durch die Summe der Tierzahlen der Klassen 2 bis k-1. [4] m1 = Σi=2 bis k-1 zi * Ni / Σi=2 bis k-1 Nk Diese Schätzung weist zwangsläufig einen Bias auf, falls die Grenzklassen 1 und k existieren und insbesondere, falls sie ungleich gross sind. Falls die Grenzklassen unbedeutend sind, z.B. bei den Kategorien RV (Jungkühe) und VK (Kühe), dann kann diese Schätzung schon eine genügende Genauigkeit aufweisen. Eine Verbesserung der Schätzung wird dadurch erreicht, dass die Mittelwerte aller Gewichtsklassen aufgrund der geschätzten Verteilung approximiert werden. In R wird dazu jede Klasse i in 500 Subklassen (s) unterteilt, um den jeweiligen Klassenmittelwert mi zu schätzen. Die Wahrscheinlichkeiten innerhalb der i Klassen (pis) werden anhand der approximierten Verteilung geschätzt. Für die Berechnung des Gesamtmittelwertes werden die effektiv in den Klassen beobachteten Tierzahlen verwendet (pi = Ni / Σi=1 bis k Ni) und nicht die aufgrund der approximierten Verteilung geschätzten Wahrscheinlichkeiten verwendet. [5] m2i = Σs=1 bis 500 mis * pis [6] m2 = Σi=1 bis k m2i* pi Eine dritte Variante besteht darin, den theoretischen Erwartungswert der approximierten Verteilung zu übernehmen, d.h. den Erwartungswert gemäss den geschätzten Parametern der Verteilung D für die Gewichte G. [7] m3 = E(D(G)) 2.3.3. Überlegungen zur Varianz Die grobe Klassierung der Taxationsdaten entspricht einer Waage, welche die Gewichte nur mit einer Genauigkeit im Bereich der Klassenbreite der betreffenden Kategorie ermitteln kann. 9/50 Dementsprechend setzt sich die Varianz der Gewichtsdaten aus zwei Komponenten zusammen, der Varianz innerhalb der Gewichtsklassen aufgrund der Messgenauigkeit und der Varianz aufgrund der Abweichung der Klassenmittel vom Gesamtmittel (Varianz zwischen Klassen): [8] var(G) = var(zwischen Klassen) + var(innerhalb der Klassen) Die Varianz innerhalb der Klassen mit bekannter Breite (d.h. ohne die Grenzklassen) kann approximativ anhand einer uniformen Verteilung mit der Breite der Gewichtsklassen geschätzt werden. Die Varianz einer uniform verteilten Variablen entspricht der folgenden Formel: [9] var(U(α,β)) = (β- α)2 / 12 bzw. = Klassenbreite2 / 12 dabei entsprechen α und β der unteren bzw. oberen Grenze der betreffenden Klasse und β- α somit der Klassenbreite der jeweiligen Gewichtsklassen einer Kategorie. In der Tabelle 4 werden die entsprechenden Schätzwerte für die Intra-Klassen-Varianz dargestellt. Dabei wird die Varianz der Grenzklassen nicht berücksichtigt. Diese Klassen können breiter sein als die restlichen Klassen und somit eine grössere Intra-Klassen-Varianz aufweisen. Tabelle 4: Kategorie, Klassenbreite und geschätzte Intra-Klassen-Varianz Kategorie GI (Gitzi) JB (Jungvieh) KV (Kälber) LA (Lämmer) MA (ältere Stiere) MT (Muni) OB (Ochsen) RG (Rinder) RV (Jungkühe) SM (Schafe) VK (Kühe) Schweine 2.3.4. Klassenbreite in kg 1 20 10 2 25 25 25 25 25 10 25 10 Intra-Klassen-Varianz (Vik) 0.08 33.33 8.33 0.33 52.08 52.08 52.08 52.08 52.08 8.33 52.08 8.33 Schätzung der Gesamtvarianz Die Gesamtvarianz kann wie der Mittelwert auf unterschiedliche Art geschätzt werden. Dabei soll dieselbe Systematik wie für den Mittelwert verwendet werden. Zuerst wird die Varianz aufgrund der vorhandenen Klassenmittelpunkte zi für die Klassen 2 bis k-1 berechnet, korrigiert um die Freiheitsgrade aufgrund der Anzahl Tiere in den Klassen 2 bis k-1. Es wird der Mittelwert m1 verwendet, gemäss [4]. [10] v1 = Σ Ni=2 bis k-1/(Σ Ni=2 bis k-1 - 1) * Σi=2 bis k-1(zk-m1)2 * Ni / Σi=2 bis k-1 Ni Falls sich Tiere in den Grenzklassen befinden, dann wird auf diese Weise die Varianz unterschätzt. Eine Verbesserung kann durch die Unterteilung der Klassen in Subklassen wie für den Mittelwert m2 erzielt werden. Als Gesamtmittel wird dementsprechend m2 gemäss [6] verwendet. [11] v2 = {Σi=1 bis kΣs=1 bis 500(mis-m2)2 * Ni * pis} / ( N -1) Die erwarteten Anzahlen in den Subklassen ergeben sich aus der geschätzten Wahrscheinlichkeit gemäss der angepassten Verteilung und den beobachteten Tierzahlen in den Klassen. Alternativ kann die Gesamtvarianz auch direkt aufgrund der approximierten Verteilung (D) geschätzt werden. [12] v3 = var(D(G)) 2.3.5. Vertrauensintervall Standardmässig wird das Vertrauensintervall des Mittelwertes (VI) definiert als [13] VI = m ± qt * (v / N)0.5 Wobei qt dem Quantil der t-Verteilung entspricht, üblicherweise mit einer Irrtumswahrscheinlichkeit von 5 % und dem Freiheitsgrad entsprechend der Anzahl Beobachtungen - 1. 10/50 Dies ist die korrekte Berechnungsmethode, falls der Mittelwert m und die Varianz v für eine Stichprobe genau bekannt sind. Da die Varianz im vorliegenden Fall aufgrund von k Klassen mit p Parametern geschätzt wird, ist dieses Vertrauensintervall sicher zu optimistisch. Grundsätzlich müsste man auch die Qualität der Schätzung (Resultat des Anpassungstests) berücksichtigen. Da über die Taxation in Abhängigkeit von der Tierkategorie zum Teil ein beachtlicher Teil aller Schlachttiere der jeweiligen Zeitperiode erfasst werden, bei den Kälbern z.B. ca. 70 %, könnte man für die Varianz grundsätzlich eine Endlichkeitskorrektur vornehmen. Auf diese wird jedoch aus mehreren Gründen verzichtet: • Die definitiven Schlachtzahlen sind zum Zeitpunkt der Gewichtsschätzung noch nicht bekannt. • Der Einfluss ist erst ab einem hohen Anteil der erfassten Tiere von Bedeutung. In diesem Fall wird die Varianz des Mittelwertes schon durch die entsprechend grosse Tierzahl stark reduziert. 2.4. Verteilung der Daten Grundsätzlich wäre zu erwarten, dass die Tierzahlen eher rechtsschief verteilt sind. Gegen eine herkömmliche Normalverteilung spricht die Tatsache, dass die Skala gegen unten in jedem Fall durch 0 begrenzt wird. Allerdings wird die mögliche Schwankungsbreite der Gewichte durch die Ansprüche der Abnehmer bezüglich Gewicht und Ausmastgrad der Schlachttiere stark eingeschränkt. Eine Schlachtkategorie deckt somit einen vergleichsweise kurzen Zeitabschnitt der Gesamtlebensdauer der betreffenden Ursprungstierart. Trotzdem ist zu erwarten, dass die Verteilung eher rechtsschief ist. Mit diesen Vorgaben wurden mehrere Verteilungen geprüft. Am geeignetsten erschienen die t-Verteilung (vgl. Engineering Statistics Handbook, 2006) und die Gamma-Verteilung (vgl. WolframMathWorld, 2006, in der Folge als Γ-Verteilung bezeichnet). Die tVerteilung lässt im Gegensatz zur Normalverteilung eine breitere Verteilung der Werte zu. Sie ist jedoch ebenfalls symmetrisch und hat keine festen Grenzen. Die Γ-Verteilung ist gegen unten durch 0 begrenzt und nicht symmetrisch. Sie ist eine sehr flexible Verteilungsform. Es kann jedoch nicht davon ausgegangen werden, dass die Gewichtsdaten einer Kategorie mit Sicherheit aus einer homogenen Verteilung stammen. In jeder Kategorie kann man sich Subpopulationen denken. Es sollen einige Beispiele aufgeführt werden. • Die Tiere einer Kategorie können unterschiedlichen Rassen angehören, insbesondere Milchrassen und Mastrassen bei der Rindergattung. • Die unterschiedliche Professionalität der Halter kann einen Einfluss ausüben: Gelegenheitsmäster und spezialisierte Mastbetriebe. • Die unterschiedlichen Haltungsarten und Mastformen können von Bedeutung sein. Bei Rindern und Ochsen sind dies z.B. die konventionelle, eher intensive Mast und die eher extensive Mast im Rahmen der Mutterkuhhaltung (Natura Beef). Dies kann zu unterschiedlichen Schlachtgewichten führen. 2.5. Anpassung einer t-Verteilung Es wird angenommen, dass die Gewichte (G) der Tiere an eine t-Verteilung (TV) angepasst werden können. Für die t-Verteilung muss zusätzlich zu den Parametern der Normalverteilung (Erwartungswert und Varianz) noch die Anzahl Freiheitsgrade (φ) geschätzt werden. Falls der Parameter φ gegen unendlich strebt, so ergibt sich die Normalverteilung. Die Verteilung der Gewichtsdaten aufgrund einer t-Verteilung wird dementsprechend durch das Durchschnittsgewicht (µ), die Streuung (σ2) und die Anzahl Freiheitsgrade (φ) definiert. [14] (G - µ) / σ ~ TV(φ) bzw. G = σ * TV(φ) + µ Die Streuung der t-Verteilung ist folgendermassen bestimmt: [15] var(TV) = φ /( φ -2) 11/50 Dementsprechend ergibt sich die Varianz der Gewichtsdaten aufgrund einer approximierten Verteilung gemäss [12]. Als Startwerte für die Anpassung mit der R-Funktion optim werden m=m1, s=v10.5 und φ =10 gewählt. Mit diesen Vorgaben konvergierte die Funktion optim mit den Standardeinstellungen (Methode Nelder-Mead) für die vorliegenden Daten immer. 2.6. Anpassung einer Γ-Verteilung Es wird angenommen, dass die Gewichte an eine Γ-Verteilung angepasst werden können. [16] G ~ Γ(α,θ) Dabei entspricht α dem Shape-Parameter und θ dem Scale-Parameter, durch welche die Γ-Verteilung definiert wird. Gegenüber der t-Verteilung muss hier also ein Parameter weniger geschätzt werden. Alternativ kann die Γ-Verteilung auch mit dem Rate-Parameter (ρ) anstelle des Scale-Parameters definiert werden, dabei gilt [17] ρ = 1 / θ Auch diese Verteilung lässt sich mit der R-Funktion optim wie zuvor beschrieben anpassen. Als Startwerte werden a=m1/10 und r=0.1 gewählt. Aufgrund der Γ-Verteilung kann die Varianz geschätzt werden als [18] v3 = var(Γ(G)) = αθ2 bzw. α(1/ρ)2 Der theoretische Erwartungswert der Verteilung ergibt sich als [19] m3 = α * θ bzw. α / ρ Als Startwerte für die Anpassung mit optim werden r=0.1 und a=m1*r gewählt. Mit diesen Vorgaben konvergierte die Funktion optim mit den Standardeinstellungen (Methode Nelder-Mead) für die vorliegenden Daten immer. 2.7. Kombination von Normal- und Γ-Verteilung Falls weder die t- noch die Γ-Verteilung mit Erfolg angepasst werden können, soll die Hypothese überprüft werden, ob allenfalls mehrere Verteilungen zusammenspielen. Um möglichst wenig Parameter schätzen zu müssen, wird dazu eine Kombination einer Normal- und einer Γ-Verteilung verwendet. Dazu müssen die 4 Parameter der beiden Verteilungen und ein Gewichtungsfaktor für die beiden Verteilungen bestimmt werden. Würde anstelle der Normalverteilung auch hier die tVerteilung approximiert, müsste noch ein Parameter mehr geschätzt werden. Dabei ist schon bei einer Kombination von Normal- und Γ-Verteilung die Wahl geeigneter Startwerte essentiell und nicht immer einfach. Es wird somit angenommen, dass die Gewichte an eine Kombination einer Normal- und einer ΓVerteilung angepasst werden können mit den Parametern µ = Erwartungswert der Normalverteilung σ = Standardabweichung der Normalverteilung α = Shape-Parameter der Γ-Verteilung ρ = Rate-Parameter der Γ-Verteilung w = Anteil der Normalverteilung, wobei 0 ≤ w ≤ 1 1 - w = Anteil der Γ-Verteilung Auch diese Kombination lässt sich mit der R-Funktion optim wie zuvor beschrieben anpassen. Allerdings ist es hier möglich, dass der Algorithmus nicht konvergiert bzw. keine sinnvollen Lösungen ergibt. Der theoretische Erwartungswert der kombinierten Verteilung ergibt sich als [20] m3 = w * µ + (1-w) * α / ρ Die Varianz kann folgendermassen berechnet werden: [21] v3 = w * [σ2 + (µ - m3)2] + (1-w) * [α(1/ρ)2 + (α / ρ - m3)2] 12/50 Dies entspricht der gewichteten Summe der Varianzen der beiden Verteilungen sowie der gewichteten Abweichungen der Erwartungswerte der beiden Verteilungen vom Gesamtmittelwert. 2.8. Wahl der besten Anpassung Um die Verteilungen anpassen zu können, müssen mindestens k = p + 1 Klassen vorhanden sein, d.h. eine Klasse mehr als Parameter geschätzt werden. Somit können bei den Schweinen mit 6 Klassen jeweils nur die t- oder die Γ-Verteilung alleine angepasst werden. Bei den Kategorien mit 8 Klassen scheint sich die Anpassung der Kombination kaum zu empfehlen, da im besten Fall (falls keine Klassen zusammengelegt werden müssen) 2 Freiheitsgrade für eine gleichzeitige Schätzung von zwei Verteilungen verbleiben. Tabelle 5; Verteilungen und zu schätzende Parameter Verteilung Anzahl Parameter (p) Γ-Verteilung 2 t-Verteilung 3 Kombination Normal- und Γ-Verteilung 5 Für die Entscheidung, ob die Resultate der Γ-Verteilung oder t-Verteilung verwendet werden soll, wird der P-Wert des betreffenden Anpassungstestes verwendet. D.h. 1 abzüglich der Wahrscheinlichkeit für den gefundenen T-Wert gemäss der Chiquadrat-Verteilung für die k-p-1 Freiheitsgrade. Falls dieser Wert grösser als 0.05 ist, so kann die Hypothese, dass die Verteilung mit Erfolg angepasst worden ist, beibehalten werden. Dementsprechend wird die Verteilung mit dem grösseren P-Wert bevorzugt. 2.9. Simulationen zum Vertrauensintervall 2.9.1. Multinomial verteilte Zufallsdaten Um die Zuverlässigkeit des berechneten Vertrauensintervalls zu kontrollieren, werden anhand der in den Klassen vorhandenen Daten multinomial verteilte Zufallszahlen generiert. G ~ M(N,k) Die Ausgangsparameter N (Anzahl Tiere), k (Anzahl Klassen) und die entsprechenden Wahrscheinlichkeiten der Klassen werden dabei vom Datensatz, d.h. von den beobachteten Werten, übernommen. Mit der R-Funktion rmultinom können auf dieser Basis Zufallswerte für die Tierzahlen in den k Klassen erzeugt werden. Anschliessend wird für jeden Datensatz die Verteilung angepasst. Anhand der Quantile der resultierenden Mittelwerte kann ein Vertrauensintervall geschätzt werden. Diese Methode wurde insbesondere bei den Kälbern angewandt. 2.9.2. Zufallsstichproben Die Zuverlässigkeit des Vertrauensintervalls bei steigendem Anteil der Tiere in den Grenzklassen wird anhand von Simulationen überprüft. Bei den Kälbern KV werden dazu Zufallsstichproben aus einer Kombination von Normal- und Γ-Verteilung erstellt. Der Erwartungswirt wird zunehmend erhöht, so dass immer mehr Tiere in der oberen Grenzklasse anfallen. Für jedes Sample wird die tVerteilung approximiert. Auf diese Weise wird geprüft, wie exakt die Approximation der Daten ist, falls sich zunehmend mehr Tiere in den Grenzklassen befinden. Es wurden 200 Stichproben mit jeweils 20’000 Werten erzeugt. Es wurden die folgenden Ausgangsparameter benutzt: µ = 105 σ = 13 rate = 0.3 shape = µ * rate 13/50 Die Anteile der beiden Verteilungen wurden für die Normalverteilung auf 70 % und für die ΓVerteilung auf 30 % festgesetzt. Für jedes neue Sample wurde µ um 0.2 kg erhöht. Bei den älteren Stieren werden Zufallsstichproben anhand einer reinen Gammaverteilung simuliert. Der Erwartungswert der Verteilung wird dabei zunehmend erhöht, während die Gesamtvarianz stabil gelassen wird. Durch die Vorgabe des Erwartungswertes und der Varianz können die Parameter (Shape, Rate) bestimmt werden. 3. Resultate 3.1. Kategorie GI Bei der Kategorie GI liegen für das ganze Jahr 2005 nur die klassierten Gewichte von 37 Tieren vor. Es wird deshalb nur ein Mittelwert für das Jahr 2005 geschätzt. Die unterste Klasse ist nicht besetzt und entfällt somit. Die Γ-Verteilung lässt sich etwas besser anpassen als die t-Verteilung (T-Wert von 8.9 mit einem P-Wert von 0.353). Die Korrektur des Mittelwertes (m1 = 8.8 kg, m2 = 10.6 kg) ist relativ gross. Der korrigierte Wert stimmt recht gut mit dem Mittel des BFS (11 kg) überein. Die Präzision ist gering mit einem VI von [8.8,12.9]. Auch der unkorrigierte Mittelwert m1 liegt noch in diesem Intervall. Eine Anpassung der Kombination aus Normal- und Γ-Verteilung erübrigt sich, da die Anpassung der t- und der Γ-Verteilung keine signifikante Abweichung ergibt. Grafik 1: Kategorie GI, Daten 2005 mit angepasster Γ-Verteilung (T-Wert = 8.9, P-Wert = 03.53) 14/50 3.2. Kategorie JB Die Kategorie JB sind junge Faseltiere, welche eher zur Weitermast als zur Schlachtung verkauft werden. Deshalb liegen bei der Kategorie JB im Vergleich zu den anderen Kategorien insgesamt für das Jahr 2005 nur wenig Datensätze vor (N = 525). Es wird deshalb wie bei den Gitzi ebenfalls nur ein Jahreswert geschätzt. Dabei ist die Güte der Anpassung für die t- und die Γ-Verteilung sehr ähnlich (Tt = 7.3, TG = 7.8 mit entsprechenden P-Werten von 0.121 bzw. 0.170). Beide Verteilungen ergeben beinahe dasselbe Resultat. Übernommen wird das Resultat der Γ-Verteilung mit 148.9 kg und einem VI von [146.5,151.3]. Dieser Wert liegt 2.3 kg höher als der unkorrigierte Mittelwert m1. Allerdings liegt der unkorrigierte Mittelwert m1 noch im Vertrauensintervall. Grafik 2: Kategorie JB, Daten 2005 mit angepasster Γ-Verteilung (T-Wert = 7.8, P-Wert = 0.170) 15/50 3.3. Kategorie KV Bei der wichtigen Kategorie Schlachtkälber KV sind insgesamt 23.7 % der Tiere ohne Gewichtsangabe. Die t-Verteilung lässt sich um ein Vielfaches besser anpassen als die ΓVerteilung, mit T-Werten von 1.9 bis 42.5. Die approximierte t-Verteilung weicht nur in 5 der 12 Monate mit einem P-Wert < 0.05 von den vorhandenen Daten ab. Der approximierte Mittelwert der t-Verteilungen (m2) liegt im Durchschnitt 5.3 kg über dem unkorrigierten Mittelwert (m1). Ähnlich gut wie die t-Verteilung lässt sich die Kombination von Normal- und Γ-Verteilung anpassen. Allerdings scheint die Gefahr einer Überanpassung relativ gross zu sein, da aufgrund von 8 Klassen 2 Verteilungen mit 5 Parametern angepasst werden. Die Mittelwerte und Vertrauensintervalle werden deshalb mit der t-Verteilung geschätzt. Die Vertrauensintervalle für den Mittelwert liegen im Bereich von ± 0.2 bis 0.3 kg. Grafik 3: Kategorie KV, Daten April 2005 mit angepasster t-Verteilung (T-Wert = 8.8, P-Wert = 0.067) 16/50 Ein Vergleich der Mittelwerte des BFS für das Jahr 2005 mit den approximierten Mittelwerten für 2005 und 2006 zeigt einen ausgeprägt saisonalen Verlauf der Mittelwerte. Der Verlauf der Mittelwerte ist dabei für die Jahre 2005 und 2006 sehr ähnlich. Allerdings liegen die BFSMittelwerte 2005 immer tiefer. Ohne den Ausreisser im Monat April beträgt die Differenz im Mittel 0.6 kg. Allerdings scheint der BFS-Wert für April 2005 aufgrund der CHTAX-Daten 2005 sowie 2006 nicht sehr realistisch zu sein. Schlachtgewicht in kg / Preis in Fr./kg SG Grafik 4: Mittelwerte des BFS für das Jahr 2005 und approximierte Mittelwerte für die Jahre 2005 sowie 2006, Preise1 pro kg Schlachtgewicht für die Jahre 2005 sowie 2006, alle Werte nach Monat. 124 15.5 123 15.0 122 14.5 121 14.0 120 13.5 119 13.0 118 12.5 117 12.0 116 11.5 Gewicht BFS 2005 Gewicht Geschätzt 2005 Gewicht Geschätzt 2006 Preis 2005 (Fr./kg SG) Preis 2006 (Fr./kg SG) 115 11.0 1 2 3 4 5 6 7 8 9 10 11 12 Monat 1 Realisierte Preise inkl. MwSt gemäss Proviande für die Herkunft QM Schweizer Fleisch und die Qualität T3 Eine mögliche Erklärung für den saisonalen Verlauf der Gewichtskurve besteht darin, dass aufgrund der Milchkontingentierung ab Ende Winter der Anteil jener Kälber zunimmt, welche v.a. mit Vollmilch gemästet werden. Die Mast mit Vollmilch führt zu einer verspäteten Schlachtreife und dementsprechend höheren Schlachtgewichten. Dies ist die Ursache für den Anstieg zu Beginn des Jahres und die hohen Werte in den Monaten April und Mai sein. Anschliessend reduziert sich der Anteil der Kälber aus Vollmilchmast und bei gleichzeitig sinkenden Preisen gehen die Kälber im Durchschnitt leichter an die Schlachtbank. Im Herbst ziehen die Preise normalerweise wieder an und die Produzenten versuchen ihren Ertrag über höhere Schlachtgewichte zu optimieren. Gegen Ende Jahr werden die Schlachtgewicht auf Grund der zu erwartenden tiefen Preise anfangs des Folgejahres wieder abgesenkt. 17/50 3.4. Kategorie LA Bei der Kategorie LA haben insgesamt 9.7 % der Tiere keine Gewichtsangabe. Diese Tiere sind jedoch recht gleichmässig in der untersten und obersten Klasse verteilt und nicht so einseitig wie bei den Kälbern. Dies balanciert allfällige Schätzfehler tendenziell wieder etwas aus. Die tVerteilung lässt sich eher besser anpassen (T=8.9 bis 128.1) als die Γ-Verteilung (T=21.6 bis 163.9). Allerdings weichen beide Verteilungen jeweils signifikant von der gegebenen Verteilung der Daten ab (mit Ausnahme der t-Verteilung bei den Dezember-Daten). Aus praktischer Sicht günstig ist dabei jedoch der Umstand, dass es keinen relevanten Unterschied (Differenz ≤ 0.1 kg) zwischen den aufgrund der beiden unterschiedlichen Verteilungen geschätzten Mittelwerten gibt. Der geschätzte Mittelwert (m2) liegt im Durchschnitt 0.3 kg über dem unkorrigierten Mittelwert (m1). Die Kombination aus Normal- und Γ-Verteilung lässt sich sehr gut anpassen, allerdings ergibt dies nochmals dieselben Resultate. Die Vertrauensintervalle liegen im Bereich von ± 0.1 bis 0.2 kg. Grafik 5: Kategorie LA, Daten Mai 2005 mit angepasster t-Verteilung (T-Wert = 25.9, P-Wert < 0.001) 18/50 3.5. Kategorie MA 38.7 % der Tiere dieser Kategorie haben keine Gewichtsangabe, die betreffenden Tiere befinden sich ausschliesslich in der obersten Gewichtsklasse. Die Kategorie MA (ältere Stiere) weist eine sehr grosse Varianz der Gewichte auf. Dies lässt sich dadurch erklären, dass diese Kategorie Tiere von sehr unterschiedlichem Alter erfassen kann. Das Gewicht variiert von den vergleichsweise tiefen Gewichten deklassierter Mastmuni bis zu den hohen Gewichten von alten Zuchtstieren. Von den 16 möglichen Klassen sind vor allem die unteren schlecht besetzt und die Anzahl Klassen muss mit einer Ausnahme auf 11 bis 15 Klassen reduziert werden. Bei den Daten des Jahres 2005 lässt sich die Γ-Verteilung in 10 von 12 Fällen besser anpassen als die tVerteilung (T-Wert von 13.7 bis 26.5 gegenüber 2.9 bis 34.6). Der Mittelwert m1 liegt durchschnittlich um 76 kg tiefer als der mit der Γ-Verteilung geschätzte Mittelwert m2. Das Vertrauensintervall ist mit ± 13 bis 23 kg sehr breit. Die Kombination aus Normal- und Γ-Verteilung lässt sich zwar gut schätzen, ist jedoch nicht wirklich erforderlich, da die Anpassung der ΓVerteilung nur in 2 von 12 Monaten eine signifikante Abweichung ergibt. Grafik 6: Kategorie MA, Daten April 2005 mit angepasster Γ-Verteilung (T-Wert = 7.5, P-Wert = 0.482) 19/50 3.6. Kategorie MT Bei der Kategorie MT sind nur 1.1 % der Tiere ohne Gewichtsangabe. Die obersten Gewichtsklassen sind wenig besetzt, weshalb bei vier Monaten die Anzahl Klassen von 16 auf 15 bzw. 14 reduziert wurde. Die t-Verteilung lässt sich um ein Vielfaches besser anpassen als die ΓVerteilung, allerdings mit relativ hohen T-Werten von 73.5 bis 381.8 gegenüber 1317.4 bis 2181.9 bei der Γ-Verteilung. Die entsprechenden P-Werte liegen für beide Verteilungen alle unter 0.001. Der Unterschied zwischen dem approximierten Mittelwert m2 und dem Mittelwert ohne Grenzklassen m1 ist jedoch für beide Verteilungen gering. Die Kombination aus Normal- und Γ-Verteilung lässt sich weitaus besser anpassen (mit T-Werten von 12.6 bis 56.8), ohne dass sich daraus eine relevante Differenz zum Schätzer m1 oder zum Schätzer m2 gemäss t-Verteilung ergeben würde. Interessant ist in diesem Zusammenhang, dass der Anteil der Normalverteilung im Bereich von 68 bis 80 % und somit konstant hoch geschätzt wird. Dies entspricht der Erwartung, dass der Anteil konventionell gemästeter Tiere mit hohen Schlachtgewichten bei dieser Kategorie relativ hoch sein sollte bei einem kleineren Anteil leichterer Tiere aus der Mutterkuh- bzw. Weidehaltung. Grafik 7: Kategorie MT, Daten September 2005 mit angepasster Kombination aus Normalund Γ-Verteilung (T-Wert = 12.6, P-Wert = 0.247) 20/50 3.7. Kategorie OB Bei der Kategorie OB liegen nur 0.3 % der Tiere ausserhalb des definierten Gewichtsbereichs und zwar alle in der unteren Grenzklasse. Aufgrund der schwach besetzten oberen Klassen müssen die Klassen mit einer Ausnahme von 14 auf 11 bis 13 Klassen reduziert werden. Die Γ-Verteilung (T-Werte von 11.9 bis 53.9) lässt sich leicht besser anpassen als die t-Verteilung (T-Werte von 13.6 bis 97.9). Die Resultate der beiden Methoden sind jedoch sozusagen identisch und die Korrektur der Gewichte ist gering bei einer mittleren Differenz von 0.3 kg zwischen m1 und m2. Sehr gut anpassen lässt sich die Kombination aus Normal- und Γ-Verteilung (T-Werte von 6.4 bis 39.0), wobei die Anteile der beiden Verteilungen wohl in etwa den beiden Subpopulationen aus Mutterkuhhaltung bzw. Weidemast (eher leichter) sowie aus konventioneller Mast (eher schwerer) entsprechen. Aufgrund der nachfolgenden Grafik ergibt sich effektiv der Eindruck, dass die Verteilung aus mindestens zwei Subpopulationen gebildet wird. Grafik 8: Kategorie OB, Daten Januar 2005 mit angepasster Kombination aus Normal- und Γ-Verteilung (T-Wert = 15.0, P-Wert = 0.020) 21/50 3.8. Kategorie RG Nur 0.7 % der Rinder haben keine Gewichtsangabe. Diese Tiere liegen wie bei den Ochsen alle in der unteren Grenzklasse. Da die oberen Klassen sehr schwach besetzt sind, wird die Anzahl Klassen auf 12 bis 15 Klassen herabgesetzt. Die Γ-Verteilung (T-Werte von 50.5 bis 196.3) lässt sich besser anpassen als die t-Verteilung (T-Werte von 80.1 bis 173.2), wobei keine relevante Differenz zwischen den Resultaten besteht. Allerdings ist die Abweichung von der effektiven Verteilung immer signifikant. Der approximierte Mittelwert m2 liegt im Mittel 0.8 kg unter dem Wert m1. Die Kombination aus Normal- und Γ-Verteilung kann gut angepasst werden (T-Werte von 6.7 bis 46.6). Dabei ist der Anteil der Normalverteilung mit 8 bis 34 % recht einheitlich. Allenfalls könnte es sich hier wie bei den Ochsen um die Anteile von Tieren aus Mutterkuhhaltung bzw. Weidemast (eher leichtere Tiere) und aus konventioneller Mast (eher schwerere Tiere) handeln. Auch rein optisch (vgl. Grafik 9) hat man wie schon bei den Ochsen den Eindruck, dass die Verteilung kaum von einer homogenen Population stammen kann. Grafik 9: Kategorie RG, Daten Juli 2005 mit angepasster Kombination aus Normal- und ΓVerteilung (T-Wert = 6.7, P-Wert = 0.593) 22/50 3.9. Kategorie RV Bei der Kategorie RV sind die Ausgangsdaten von Juni 2005 bis Dezember 2005 offensichtlich nicht korrekt. In diesen 7 Monaten sind bis 40 % der Tiere in der untersten Klasse ohne Gewicht, während ansonsten 0 oder 1 Tier in diese Klasse fallen. Diese offensichtlich falschen Werte werden deshalb nicht berücksichtigt. Leider konnte nicht eruiert werden, was die Ursache für diese fehlerhaften Daten war. Die Klassenzahl muss immer korrigiert werden, von 16 auf 11 bis 15 Klassen. Es ergibt sich so gut wie keine Differenz zwischen m1 und m2. Die t-Verteilung lässt sich eher leicht besser anpassen als die Γ-Verteilung, allerdings ergibt sich kein Unterschied bei den Resultaten. Bei den doch recht tiefen T-Werten der t-Verteilung (2.6 bis 27.6), welche nur in 4 Fällen eine signifikante Abweichung ergaben, kann die Kombination von Normal- und Γ-Verteilung kaum ein besseres Resultat erbringen. Zudem scheint diese Kategorie auch optisch homogener zu sein als jene der Kategorien OB und RG. Grafik 10: Kategorie RV, Daten Juni 2005 mit angepasster t-Verteilung (T-Wert = 8.6, P-Wert = 0.285) 23/50 3.10. Kategorie SM 3 % der Schafe haben im Jahr 2005 keine Gewichtsangabe. Es liegen eher wenig klassierte Gewichte vor (N = 4123). In den oberen Klassen sind nur wenige Tiere, weshalb nur in 2 Monaten 8 Klassen berücksichtigt werden konnten und sich die Anzahl Klassen in allen anderen auf 6 bis 7 Klassen reduzierte. Die Γ-Verteilung lässt sich mit T-Werten von 0.2 bis 28.4 besser anpassen als die t-Verteilung (T-Werte von 3.8 bis 35.2). Die approximierten Mittelwerte sind jedoch für die tVerteilung und die Γ-Verteilung exakt dieselben und sind im Mittel 0.6 kg tiefer als die unkorrigierten Mittelwerte m1. Die Anpassung der Kombination ist bei 6 bis 8 Klassen kaum sinnvoll. Grafik 11: Kategorie SM, Daten Oktober 2005 mit angepasster Γ-Verteilung (T-Wert = 10.1, P-Wert = 0.039) 24/50 3.11. Kategorie VK Es sind immer alle 16 Klassen besetzt, allerdings nur mit wenigen Tieren in den äussersten Klassen, so dass nur 0.1 % der Kühe ausserhalb der definierten Gewichtsklassen liegen. Es ergibt sich deshalb nur eine unbedeutende Korrektur des Mittelwertes von m1 zu m2 von durchschnittlich 0.1 kg. Die Γ-Verteilung lässt sich immer besser anpassen als die t-Verteilung, allerdings sind auch diese T-Werte relativ hoch (27.6 bis 272.5) und die approximierten Verteilungen weichen somit immer signifikant von der effektiven Verteilung der Daten ab. Besser anpassen lässt sich die Kombination aus Normal- und Γ-Verteilung (T-Werte von 15.9 bis 104.7). Allerdings ergibt auch diese Anpassung identische Resultate für die Mittelwerte. Grafik 12: Kategorie VK, Daten Juli 2005 mit angepasster t-Verteilung (T-Wert = 245.8, PWert < 0.001) 25/50 3.12. Kategorie Schweine Nur 2.0 % der Schweine liegen in den Grenzklassen 1 und 6. Die t-Verteilung kann besser angepasst werden als die Γ-Verteilung, allerdings ist die Anpassung sehr schlecht (T-Werte von 154.4 bis 1164.9). Zwischen den Resultaten aus den beiden approximierten Verteilungen gibt es jedoch keinen Unterschied. Da der Anteil der Tiere in der oberen Grenzklasse bedeutend grösser ist als in der unteren, liegt der geschätzte Mittelwert m2 im Mittel rund 0.3 kg über dem Mittelwert m1. Bei der grossen Anzahl von Schlachtschweinen hat auch diese geringe Differenz noch eine gewisse Bedeutung. Grafik 13: 3.13. Schweine, Daten August 2005 mit angepasster t-Verteilung (T-Wert = 238.7, PWert < 0.001) Überblick Bei den Kategorien mit hohen Anteilen von Tieren in den Grenzklassen kann jeweils mindestens eine der beiden einfachen Verteilungen mit befriedigender Genauigkeit approximiert werden. Dies ist v.a. von Bedeutung für die wichtige Klasse KV. Bei den Tierkategorien mit einer sehr schlechten Anpassung, d.h. insbesondere bei den Schweinen und weniger ausgeprägt bei den Muni MT, den Rindern RG und den Kühen VK, ist nur ein geringer Anteil der Tiere in den Grenzklassen, womit die Bedeutung der Approximation stark relativiert wird. 3.14. Multinomiale Zufallszahlen Die Überprüfung der Mittelwerte und der Vertrauensintervalle mit multinomial erzeugten Zufallszahlen bei der Kategorie KV ergibt eine recht gute Übereinstimmung. Schon mit 99 multinomial generierten Pseudodatensätzen ist das Vertrauensintervall stabil. Wie in Tabelle 6 gezeigt wird, weicht das berechnete Vertrauensintervall kaum vom standardmässig berechneten Vertrauensintervall (vergleiche [14]) ab. Zudem sind die Mittelwerte (vgl. Grafik 14) annähernd normal verteilt. 26/50 Tabelle 6: Geschätzte Mittelwerte, Vertrauensintervalle und multinomial geschätzte Vertrauensintervalle für die Kategorie KV Jahr-Monat geschätzter Mittelwert VI von bis multinomial von bis 2005-01 119.4 119.2 119.7 119.2 119.7 2005-02 120.6 120.4 120.9 120.4 120.9 2005-03 121.1 120.9 121.3 120.9 121.4 2005-04 123.3 123.1 123.5 123.0 123.4 2005-05 122.4 122.2 122.7 122.1 122.6 2005-06 120.9 120.6 121.1 120.7 121.3 2005-07 122.3 122.0 122.6 122.0 122.6 2005-08 123.3 123.0 123.5 122.9 123.4 2005-09 122.0 121.7 122.3 121.8 122.2 2005-10 121.2 120.8 121.5 120.8 121.5 2005-11 119.7 119.4 120.0 119.4 120.1 2005-12 115.6 115.3 115.8 115.4 115.9 Grafik 14: Verteilung der aufgrund von multinomial verteilten Pseudozufallszahlen geschätzten Mittelwerte, 99 Mittelwerte, Kategorie KV Januar 2005 27/50 3.15. Simulation Kälber KV Die Resultate der Simulation für 200 Zufallsstichproben mit steigendem Erwartungswert ergeben für die Kälber KV das in Grafik 15 gezeigte Resultat. Grafik 15: Abweichung der approximierten Mittelwerte vom Erwartungswert der Stichprobe (Abw. theoretisch) und vom effektiven Mittelwert der Stichprobe (Abw. effektiv), Bereich des Vertrauensintervalls (VI oben, VI unten) und mit 0.02 skalierte T-Werte gemäss Anteil Tiere in den Grenzklassen 0.6 0.5 0.4 0.3 Abw. theoretisch 0.2 Wert Abw. effektiv 0.1 VI oben VI unten 0.0 T-Wert * 0.02 -0.1 -0.2 -0.3 74.0 69.3 63.2 58.2 53.3 46.7 41.2 35.2 30.2 25.1 20.9 17.5 13.8 10.7 8.6 6.7 5.6 4.5 -0.4 Anteil der Kälber KV in den Grenzklassen (%) Es zeigt sich, dass der T-Wert tendenziell mit steigendem Anteil der Tiere in den Grenzklassen leicht sinkt und somit die Güte der Anpassung mit steigendem Anteil der Tiere in den Grenzklassen eher überschätzt wird. Allerdings liegt die Abweichung des geschätzten Mittelwertes in den überwiegenden Fällen innerhalb der Bandbreite des geschätzten Vertrauensintervalls. Die Approximation wird erst ab einem sehr hohen Anteil der Tiere in den Grenzklassen unzuverlässig, in etwa ab 50 %. Der Anteil Tiere in den Grenzklassen liegt bei den Kälbern KV jedoch im Bereich zwischen 19 und 29 %, d.h. in einem Bereich, in welchem das Vertrauensintervall gemäss Simulation noch zuverlässig ist. Da die einzelnen Stichproben aufgrund des Anteils der ΓVerteilung leicht rechtsschief verteilt sind, weist der geschätzte Mittelwert im vorliegenden Fall jedoch einen systematischen Bias auf. Er wird durchschnittlich um 0.1 kg zu tief geschätzt. 28/50 Ältere Stiere MA Die Resultate der Simulation für 200 Zufallsstichproben mit steigendem Erwartungswert bei konstanter Varianz (15000) ergeben für die Stiere MA das in Grafik 16 gezeigte Resultat. Grafik 16: Abweichung der approximierten Mittelwerte vom Erwartungswert der Stichprobe (Abw. theoretisch) und vom effektiven Mittelwert der Stichprobe (Abw. effektiv), Bereich des Vertrauensintervalls (VI oben, VI unten) und mit 0.5 skalierte T-Werte gemäss Anteil Tiere in den Grenzklassen 12 10 8 6 4 Abw. theoretisch Wert 2 Abw. effektiv VI oben 0 VI unten T-Wert * 0.2 -2 -4 -6 -8 18 .9 21 .8 23 .7 26 .1 28 .9 32 .6 32 .6 36 .2 40 .5 43 .0 46 .8 50 .8 53 .8 56 .2 60 .3 61 .3 66 .0 70 .3 72 .7 76 .4 -10 Anteil der Stiere MA in den Grenzklassen (%) Im Gegensatz zu den Kälbern KV liegt der T-Wert immer in einem ähnlichen Bereich. Das Vertrauensintervall scheint sogar bis zu einem Anteil von etwa 60 % der Tiere in den Grenzklassen zuverlässig zu sein. Insgesamt stellen die Simulationen die Zuverlässigkeit der Methode nicht in Frage und die berechneten Vertrauensintervalle werden im Anwendungsbereich der Approximationen nicht in Frage gestellt. 29/50 4. Diskussion 4.1. Beurteilung Bei den Tierkategorien mit einem relevanten Anteil an Tieren in den Grenzklassen (v.a. GI, JB, KV, LA, MA, allenfalls auch SM) kann mindestens eine der beiden einfachen Verteilungen (t-Verteilung, Γ-Verteilung) befriedigend angepasst werden. Allerdings kann bei einem grösseren Anteil Tieren in den Grenzklassen ein gewisser systematischer Bias nicht ausgeschlossen werden. Das Vertrauensintervall bleibt jedoch in einem weiten Bereich zuverlässig. Auf jeden Fall ergibt sich eine Verbesserung gegenüber einer Mittelwertsschätzung ohne Einbezug der Grenzklassen. Bei den übrigen Kategorien ist der Einfluss der Grenzklassen ohnehin gering. Der aufgrund der korrigierten Klassenanzahl vorgegebene Chiquadrat-Wert kann dabei jedoch meistens nicht unterschritten werden. D.h. es ergeben sich kleine P-Werte, welche eine signifikante (< 0.05) bzw. z.T. eine hoch signifikante (< 0.001) Abweichung der angepassten Verteilung von der effektiven Verteilung der Gewichte bedeuten. Ein befriedigender Anpassungstest kann v.a. dort erreicht werden, wo kleine Tierzahlen vorhanden sind (Kategorien GI, JB und MA). In den restlichen Kategorien ist die Abweichung vom Chiquadrat-Wert häufig signifikant, jedoch kaum von relevanter Bedeutung. t- und Γ-Verteilung liefern meist sehr ähnliche Schätzwerte. Falls sich Unterschiede bei den Schätzwerten - insbesondere beim Mittelwert - ergeben, so kann eine Verteilung auch deutlich besser approximiert werden. Die Frage nach der zu verwendenden Verteilung lässt sich somit aufgrund der P-Werte klar beantworten oder ist nicht von Bedeutung. 4.2. Interpretation der Verteilungen Eine Schlachtkategorie ist bezüglich der möglichen Gesamtlebensdauer der entsprechenden Tierart eine mehr oder weniger enge Auswahl von Tieren. Somit könnte eine mögliche Erklärung für die unterschiedliche Anpassungsgüte der t- und der Γ-Verteilung darin bestehen, dass bei sehr homogenen Tierkategorien bezüglich Alter und Gewicht (z.B. KV, LA, MT, Schweine) eher die tVerteilung geeignet ist. Bei Tieren mit eher breiterer Herkunft bezüglich Alter und Gewicht (JB, MA, OB, RG, RV, SM und VK) ist dementsprechend eher die Γ-Verteilung geeignet, da in diesem Falle die Gewichte nach oben weiter streuen können. 4.3. Subpopulationen Insbesondere bei den Kategorien MT, OB, RG und VK kann festgestellt werden, dass die Daten kaum von einer homogenen Verteilung stammen können. Bei diesen Kategorien lässt sich eine Kombination aus Normal- und Γ-Verteilung meist besser anpassen als eine einzelne Verteilung. Die Wahl der beiden Verteilungen erfolgt im vorliegenden Fall ziemlich willkürlich mit dem Ziel, die Approximation möglichst einfach zu ermöglichen und die Anzahl Freiheitsgrade nicht zu stark zu reduzieren. Aus der Praxis ist bekannt, dass die Schlachttierkategorien nicht in jedem Fall homogenen Populationen entsprechen müssen. Eine Kombination aus zwei Verteilungen kann jedoch nur dort sinnvoll angepasst werden, wo aus der Sicht der vorliegenden Arbeit eigentlich kein Bedarf danach besteht, nämlich bei Schlachttierkategorien mit zahlreichen Klassen und einem geringen Anteil von Tieren in den Grenzklassen. Für eine präzise Aufteilung der Schlachttierkategorien in zwei Subpopulationen müssten zudem deutlich mehr Gewichtsklassen oder kontinuierliche Messungen vorliegen. Zudem müssten wohl auch weitere Verteilungskombinationen untersucht werden. Dies ist jedoch nicht das Ziel der vorliegenden Arbeit. 4.4. Vertrauensintervalle Die Vertrauensintervalle sind im Rahmen dieser Arbeit von untergeordneter Bedeutung, da in der Praxis einfach die berechneten Mittelwerte verwendet werden, ohne dass jemand aufgrund dieser Mittelwerte eine Fehlerschätzung durchführen würde. Die durchgeführten Simulationen stellen die 30/50 berechneten Vertrauensintervalle nicht grundsätzlich in Frage. Offensichtlich ist auch der Einfluss der Messungenauigkeit bzw. der Klassenbildung (vgl. Tabelle 4 und geschätzte Gesamtvarianzen v3 in den Tabellen des Anhangs) gering. Die durch die Klassenbildung verursachte Varianz beträgt nur wenige Prozent der Gesamtvarianz. Die klassierten Daten können auch aus dieser Perspektive gut für die Schätzung des Mittelwertes verwendet werden. 4.5. Bedeutung der Methode Ein Vergleich der Resultate der Approximation aufgrund der Proviande-Daten mit den Erhebungsdaten des BFS (2007) fällt positiv aus bei den Kategorien, wo der Vergleich möglich ist (GI, KV, Schweine). Die Abweichungen sind gering. Die beschriebene Methode liefert einen besseren Schätzwert für den Mittelwert und ein zuverlässigeres (breiteres) Vertrauensintervall als wenn nur die Klassen 2 bis k-1 mit bekannten Mittelwerten berücksichtigt werden. Die grösste praktische Bedeutung hat die Methode bei der Kategorie KV. Bei 265'519 geschlachteten Kälbern im Jahr 2005 ergibt die Korrektur des Mittelwertes um durchschnittlich 5.4 kg eine Menge von 32’117 t gegenüber 30’680 t ohne Korrektur, d.h. eine zusätzliche Menge von 1’438 t bzw. 4.7 %. Pro Kopf der Bevölkerung ergibt dies einen zusätzlichen Bruttoverbrauch von 193 g Schlachtgewicht im Jahr 2005. Wirtschaftlich gesehen entspricht dies bei einem durchschnittlichen Produzentenpreis von ca. 13 Fr./kg pro kg Schlachtgewicht ab Hof einer Differenz von ca. 19 Mio. Franken oder 1 bis 2 Promille des landwirtschaftlichen Gesamtrohertrages (Bundesamt für Statistik 2006). Aber auch bei anderen Tierkategorien haben geringfügige Anpassungen beachtliche Auswirkungen. So ergibt eine Differenz von 0.3 kg pro Schlachttier bei mehr als 2.7 Mio. im Jahr 2005 geschlachteten Schweinen eine zusätzliche Schlachtgewichtsmenge von rund 800 Tonnen. 4.6. Anwendung und Ausblick Die Methode wird inzwischen standardmässig durch die Statistik SBV verwendet. Es werden zur Kontrolle generell immer die t- und die Γ-Verteilung angepasst und die Mittelwerte m2 berechnet. Übernommen werden bis auf weiteres für die Kategorien KV, LA, MT, RV und Schweine der anhand der t-Verteilung geschätzte Mittelwert m2, für die Kategorien GI, JB, MA, OB, RG, SM und VK der anhand der Γ-Verteilung geschätzte Mittelwert m2. Die Resultate werden als Durchschnittsgewichte für weitere Berechnungen durch SBV Statistik und das BFS verwendet. Fraglich ist, ob diese Methode mittelfristig den Ansprüchen des BFS im Rahmen des Statistikabkommens der Schweiz mit der EU genügen wird. Die Methode liefert jedoch mit einem relativ bescheidenen Aufwand recht präzise Daten. Der einzige Wechsel der aus dieser Sicht anzustreben wäre, ist die Registrierung und Übermittlung von unklassierten Gewichten im Rahmen der Taxation. Dies würde jedoch vor allem eine technische Vereinfachung darstellen, ohne dass dadurch die Präzision der Durchschnittsgewichte als Schätzwert für die jeweilige Gesamtpopulation an Schlachttieren wesentlich verbessert werden könnte. 31/50 5. Anhang 5.1. Detaillierte Resultate Es werden für jede Tierkategorie die wichtigsten Resultate angezeigt. 5.1.1. Kategorie Gitzi GI (nur Jahresdaten) Basisdaten Periode Tiere total 37 2005 unterste Klasse 0 ohne Grenzklassen Mittelwert (m1) Varianz (v1) 8.8 6.0 oberste Klasse 7 t-Verteilung Periode Klassen T Chi2 P-Wert m3 s f v3 m2 VI 2005 11 12.6 14.1 0.083 9.6 3.56 3 38.1 10.8 [8.8,12.9] Γ-Verteilung Periode Klassen T Chi2 P-Wert m3 shape rate v3 m2 VI 2005 11 8.9 15.5 0.353 10.5 6.02 0.58 18.2 10.6 [9.2,12.0] 5.1.2. Kategorie Jungvieh JB (nur Jahresdaten) Basisdaten Periode 2005 Tiere total 525 unterste Klasse 3 ohne Grenzklassen Mittelwert (m1) Varianz (v1) 146.6 561.5 oberste Klasse 21 t-Verteilung Periode Klassen T Chi2 P-Wert m3 s f v3 m2 VI 95 % 2005 8 7.3 9.5 0.121 148.5 26.4 23.8 761.5 148.8 [146.5,151.2] Periode Klassen T Chi2 P-Wert m3 shape rate v3 m2 VI 95 % 2005 8 7.8 11.1 0.170 148.5 27.8 0.2 795.0 148.9 [146.5,151.3] Γ-Verteilung 5.1.3. Kategorie Kälber KV Basisdaten Periode 2005-01 Anzahlen total 15311 unterste Klasse 67 oberste Klasse 2866 2005-02 15274 47 3297 115.5 101.8 2005-03 18648 59 4274 115.8 96.8 2005-04 19745 48 5597 116.9 90.4 2005-05 17763 54 4688 116.3 97.1 2005-06 14729 49 3431 115.1 115.5 2005-07 14331 53 3706 116.3 97.6 2005-08 14279 35 4061 116.8 90.0 2005-09 14053 42 3559 116.1 97.3 2005-10 11048 49 2574 115.7 100.8 2005-11 11456 59 2382 114.6 112.4 2005-12 13613 79 1686 112.5 114.3 32/50 Momente ohne Grenzklassen Mittelwert (m1) Varianz (v1) 115.0 99.1 t-Verteilung Periode Klassen T Chi2 P-Wert m3 s f v3 m2 VI 95 % 2005-01 8 38.2 9.5 0.000 119.4 11.0 5.0 200.9 119.4 [119.2,119.7] 2005-02 8 9.4 9.5 0.052 120.7 11.0 4.9 207.2 120.6 [120.4,120.9] 2005-03 8 6.1 9.5 0.189 121.1 11.1 5.1 203.6 121.1 [120.9,121.3] 2005-04 8 8.8 9.5 0.067 123.3 11.0 5.1 200.0 123.3 [123.1,123.5] 2005-05 8 7.6 9.5 0.107 122.4 11.2 4.8 214.9 122.4 [122.2,122.6] 2005-06 8 42.5 9.5 0.000 120.9 11.8 4.7 241.9 120.9 [120.6,121.1] 2005-07 8 6.7 9.5 0.150 122.3 11.0 4.4 221.6 122.3 [122.0,122.5] 2005-08 8 1.9 9.5 0.762 123.2 11.1 5.2 199.7 123.3 [123.0,123.5] 2005-09 8 9.4 9.5 0.052 122.0 11.3 5.1 208.6 122.0 [121.8,122.2] 2005-10 8 20.6 9.5 0.000 121.2 11.2 4.6 222.6 121.2 [120.9,121.4] 2005-11 8 16.2 9.5 0.003 119.8 11.7 4.6 240.1 119.7 [119.4,120.0] 2005-12 8 27.8 9.5 0.000 115.6 11.2 5.2 205.5 115.6 [115.3,115.8] 5.1.4. Kategorie Lämmer LA Basisdaten Periode 2005-01 2005-02 2005-03 2005-04 2005-05 2005-06 2005-07 2005-08 2005-09 2005-10 2005-11 2005-12 Anzahlen total 3718 5509 5644 4321 4434 4299 2978 4403 5933 3082 3556 3970 unterste Klasse 150 137 291 55 128 138 77 131 168 55 101 233 Momente ohne Grenzklassen Mittelwert (m1) Varianz (v1) 19.2 7.4 19.1 6.4 19.0 7.1 19.4 6.6 19.2 7.0 18.8 7.1 18.9 6.9 18.8 7.2 19.1 7.0 19.1 7.2 19.1 7.6 19.3 8.0 oberste Klasse 283 289 396 381 283 208 172 300 292 176 354 247 t-Verteilung Periode 2005-01 2005-02 2005-03 2005-04 2005-05 2005-06 2005-07 2005-08 2005-09 2005-10 2005-11 2005-12 T 12.4 52.7 27.2 128.1 25.9 42.2 45.5 97.2 22.9 70.0 97.2 8.9 Chi2 9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5 9.5 P-Wert 0.014 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.064 m3 19.4 19.2 19.0 19.8 19.4 18.9 19.0 19.0 19.2 19.3 19.5 19.3 s 3.1 2.6 2.9 3.0 2.9 2.9 2.8 3.0 2.9 3.1 3.4 3.4 f 4.46 3.97 3.25 5.98 5.12 5.84 4.46 4.45 7.14 14.41 6.56 6.39 v3 17.0 13.1 21.7 13.1 13.6 12.6 13.9 15.8 11.7 11.2 16.7 16.5 33/50 m2 19.5 19.3 19.2 20.0 19.5 19.0 19.2 19.2 19.3 19.4 19.7 19.3 VI 95 % [4.5,19.4] [4.0,19.2] [3.3,19.1] [6.0,19.9] [5.1,19.4] [5.8,18.9] [4.5,19.0] [4.4,19.1] [7.1,19.2] [14.4,19.3] [6.6,19.5] [6.4,19.2] 5.1.5. Kategorie ältere Stiere MA Basisdaten Periode 2005-01 2005-02 2005-03 2005-04 2005-05 2005-06 2005-07 2005-08 2005-09 2005-10 2005-11 2005-12 Anzahlen total 177 157 163 221 312 254 199 270 310 232 241 162 Γ-Verteilung Periode 2005-01 2005-02 2005-03 2005-04 2005-05 2005-06 2005-07 2005-08 2005-09 2005-10 2005-11 2005-12 5.1.6. Klassen 15 13 13 11 13 15 13 12 16 14 11 12 unterste Klasse 0 0 0 0 0 0 0 0 1 0 0 0 T 18.8 16.1 11.7 7.5 7.7 21.8 26.5 4.4 17.6 12.7 8.8 3.7 Chi2 21.0 18.3 18.3 15.5 18.3 21.0 18.3 16.9 22.4 19.7 15.5 16.9 oberste Klasse 60 69 69 109 121 109 87 98 103 76 91 51 P-Wert 0.093 0.097 0.307 0.482 0.659 0.040 0.003 0.883 0.173 0.316 0.363 0.932 m3 453.0 485.2 484.4 505.8 479.0 487.3 476.6 468.4 455.7 454.6 470.5 457.8 shape 12.9 11.1 17.1 16.4 18.3 13.4 13.1 17.8 12.6 18.0 18.3 18.4 Momente ohne Grenzklassen Mittelwert (m1) Varianz (v1) 389.5 3198.9 389.5 3198.9 410.4 2408.0 412.5 1889.0 411.1 2598.5 405.3 2650.7 392.4 2172.9 392.4 2172.9 403.1 2571.5 392.8 3066.3 398.7 2371.3 402.7 2239.5 rate 0.029 0.023 0.035 0.032 0.038 0.027 0.028 0.038 0.028 0.040 0.039 0.040 v3 15880 21171 13696 15593 12524 17774 17304 12322 16446 11482 12074 11381 m2 458.0 490.5 488.6 508.6 480.3 493.1 485.8 469.6 460.5 458.1 471.8 458.7 VI 95 % [439.3,476.7] [467.5,513.4] [470.5,506.7] [492.1,525.2] [467.8,492.7] [476.6,509.5] [467.4,504.2] [456.3,482.9] [446.2,474.9] [444.3,472.0] [457.9,485.8] [442.1,475.3] Kategorie Muni MT Basisdaten Periode 2005-01 2005-02 2005-03 2005-04 2005-05 2005-06 2005-07 2005-08 2005-09 2005-10 2005-11 2005-12 Anzahlen total 1421 1298 1247 1473 1601 1328 1521 1623 1760 1343 2046 1586 unterste Klasse 2 3 4 6 12 12 11 8 7 9 5 6 oberste Klasse 0 0 1 0 1 3 3 1 2 0 2 1 34/50 Momente ohne Grenzklassen Mittelwert (m1) Varianz (v1) 254.2 2169.3 252.8 1824.7 258.9 1701.9 260.1 1593.3 260.5 1851.7 262.0 1864.3 254.8 1628.9 249.1 1679.6 242.7 1708.4 244.5 1972.7 244.5 1976.1 243.6 1850.9 t-Verteilung Periode 2005-01 2005-02 2005-03 2005-04 2005-05 2005-06 2005-07 2005-08 2005-09 2005-10 2005-11 2005-12 5.1.7. T 120.1 138.8 135.6 133.3 381.8 192.3 73.5 89.9 99.1 107.5 100.2 184.6 Chi2 P-Wert m3 s 19.7 0.000 296.6 22.6 19.7 0.000 297.5 23.1 21.0 0.000 296.9 24.5 18.3 0.000 301.8 23.9 21.0 0.000 298.7 29.4 21.0 0.000 297.7 26.7 21.0 0.000 294.1 24.2 21.0 0.000 292.4 25.2 21.0 0.000 289.2 24.3 18.3 0.000 289.0 21.1 21.0 0.000 289.9 21.4 21.0 0.000 290.4 21.6 f 3.6 3.4 3.9 3.6 3.7 3.3 3.8 4.2 3.1 3.1 3.4 3.3 v3 1142 1316 1220 1280 1909 1775 1242 1208 1650 1271 1097 1191 m2 294.8 295.5 295.3 300.0 295.6 295.2 292.7 291.1 287.9 287.3 288.8 288.1 VI 95 % [294.0,295.7] [294.6,296.4] [294.5,296.2] [299.2,300.8] [294.6,296.6] [294.1,296.2] [291.7,293.6] [290.2,292.0] [286.9,289.0] [286.4,288.2] [288.0,289.6] [287.2,288.9] Kategorie Ochsen OB Basisdaten Periode 2005-01 2005-02 2005-03 2005-04 2005-05 2005-06 2005-07 2005-08 2005-09 2005-10 2005-11 2005-12 Anzahlen total 1421 1298 1247 1473 1601 1328 1521 1623 1760 1343 2046 1586 Γ-Verteilung Periode 2005-01 2005-02 2005-03 2005-04 2005-05 2005-06 2005-07 2005-08 2005-09 2005-10 2005-11 2005-12 Klassen 12 12 11 11 12 13 12 13 11 13 12 14 unterste Klasse 2 3 4 6 12 12 11 8 7 9 5 6 T 53.9 42.9 35.4 21.0 33.1 32.4 20.4 11.9 18.9 33.3 45.5 49.1 Chi2 16.9 16.9 15.5 15.5 16.9 18.3 16.9 18.3 15.5 18.3 16.9 19.7 oberste Klasse 0 0 1 0 1 3 3 1 2 0 2 1 P-Wert 0.000 0.000 0.000 0.007 0.000 0.000 0.015 0.289 0.015 0.000 0.000 0.000 m3 254.4 253.7 259.2 260.5 260.3 261.8 254.7 249.2 242.3 244.2 244.4 244.0 shape 28.9 34.1 37.2 41.4 34.9 33.9 38.5 36.9 34.6 30.2 29.8 30.6 35/50 Momente ohne Grenzklassen Mittelwert (m1) Varianz (v1) 254.2 2169.3 252.8 1824.7 258.9 1701.9 260.1 1593.3 260.5 1851.7 262.0 1864.3 254.8 1628.9 249.1 1679.6 242.7 1708.4 244.5 1972.7 244.5 1976.1 243.6 1850.9 rate 0.114 0.134 0.144 0.159 0.134 0.130 0.151 0.148 0.143 0.124 0.122 0.125 v3 2241 1888 1805 1638 1943 2019 1687 1682 1695 1971 2004 1946 m2 253.8 252.8 258.6 260.0 260.1 261.4 254.4 248.9 242.4 244.1 244.0 243.4 VI 95 % [251.4,256.3] [250.4,255.1] [256.2,260.9] [257.9,262.1] [257.9,262.2] [259.0,263.8] [252.4,256.5] [246.9,250.9] [240.5,244.3] [241.7,246.5] [242.1,246.0] [241.3,245.6] 5.1.8. Kategorie Rinder RG Basisdaten Periode 2005-01 2005-02 2005-03 2005-04 2005-05 2005-06 2005-07 2005-08 2005-09 2005-10 2005-11 2005-12 Anzahlen total 3579 3256 3254 3262 4011 3028 2826 3567 3832 3279 4400 3766 Γ-Verteilung Periode 2005-01 2005-02 2005-03 2005-04 2005-05 2005-06 2005-07 2005-08 2005-09 2005-10 2005-11 2005-12 5.1.9. Klassen 15 12 14 15 13 13 13 12 15 14 12 13 unterste Klasse 27 17 17 11 22 20 14 24 35 25 43 31 T 196.3 141.8 92.2 74.5 128.6 65.2 50.5 75.5 106.7 89.4 171.2 183.9 Chi2 21.0 16.9 19.7 21.0 18.3 18.3 18.3 16.9 21.0 19.7 16.9 18.3 oberste Klasse 0 0 0 0 0 0 0 0 0 0 0 0 P-Wert 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 m3 260.9 255.5 257.3 251.9 255.1 253.1 248.3 248.7 249.4 252.0 251.6 253.4 shape 26.0 25.5 26.2 27.1 24.9 24.5 27.9 26.4 23.4 25.4 24.0 23.9 Momente ohne Grenzklassen Mittelwert (m1) Varianz (v1) 261.2 2387.4 255.7 2426.3 257.7 2410.2 252.2 2295.9 255.5 2482.3 253.8 2527.8 248.9 2172.6 249.2 2258.3 250.1 2523.2 252.7 2393.2 252.1 2441.8 254.0 2531.8 rate 0.100 0.100 0.102 0.108 0.098 0.097 0.112 0.106 0.094 0.101 0.095 0.094 v3 2615 2563 2525 2341 2612 2616 2211 2343 2660 2495 2639 2691 m2 260.3 255.1 257.1 251.8 254.8 253.0 248.3 248.4 249.1 251.8 251.0 253.0 VI 95 % [258.6, 261.9] [253.4, 256.8] [255.3, 258.8] [250.1, 253.4] [253.2, 256.4] [251.2, 254.9] [246.6, 250.1] [246.8, 250.0] [247.4, 250.7] [250.1, 253.5] [249.5, 252.5] [251.4, 254.7] Kategorie Jungkühe RV Basisdaten Periode 2005-01 2005-02 2005-03 2005-04 2005-05 2005-06 2005-07 2005-08 2005-09 2005-10 2005-11 2005-12 Anzahlen total 827 718 724 566 694 526 424 591 674 781 814 670 unterste Klasse 0 0 0 0 1 0 0 0 0 0 0 0 oberste Klasse 0 0 0 1 0 0 0 0 1 0 0 0 36/50 Momente ohne Grenzklassen Mittelwert (m1) Varianz (v1) 285.8 1804.9 282.7 1688.9 283.6 1910.5 284.8 1765.6 284.6 2071.3 280.2 2593.4 276.9 2496.4 269.3 2243.2 277.0 2005.4 280.0 2111.4 282.2 2188.7 290.0 2241.7 t-Verteilung Periode 2005-01 2005-02 2005-03 2005-04 2005-05 2005-06 2005-07 2005-08 2005-09 2005-10 2005-11 2005-12 T 20.9 11.6 14.3 27.6 11.3 8.6 2.6 11.4 10.5 15.3 11.9 22.1 Chi2 16.9 14.1 14.1 19.7 18.3 14.1 15.5 12.6 19.7 16.9 18.3 16.9 P-Wert 0.013 0.114 0.047 0.004 0.336 0.285 0.959 0.076 0.486 0.083 0.290 0.009 m3 284.4 281.5 282.8 282.7 283.2 279.5 276.4 271.3 276.1 279.6 280.9 288.1 s 37.6 36.7 41.9 39.3 40.2 38.9 42.7 38.8 37.3 37.7 37.0 39.0 f 7.6 8.5 19.6 7.2 7.5 3.3 6.1 3.8 5.1 4.9 4.5 5.1 v3 1911 1756 1954 2142 2203 3902 2719 3204 2281 2395 2460 2499 m2 285.8 282.7 283.6 284.8 284.6 280.2 276.9 269.4 277.0 280.1 282.3 290.0 VI 95 % [282.9, 288.8] [279.6, 285.8] [280.3, 286.8] [281.0, 288.6] [281.1, 288.1] [274.9, 285.6] [271.9, 281.9] [264.8, 273.9] [273.4, 280.6] [276.6, 283.5] [278.8, 285.7] [286.2, 293.8] 5.1.10. Kategorie Schafe SM Basisdaten Periode 2005-01 2005-02 2005-03 2005-04 2005-05 2005-06 2005-07 2005-08 2005-09 2005-10 2005-11 2005-12 Anzahlen total 325 270 342 390 420 470 358 399 299 265 292 293 Γ-Verteilung Periode 2005-01 2005-02 2005-03 2005-04 2005-05 2005-06 2005-07 2005-08 2005-09 2005-10 2005-11 2005-12 Klassen 6 7 7 7 7 8 8 6 7 7 7 6 unterste Klasse 1 1 1 10 17 10 19 13 16 13 10 10 T 11.4 14.6 14.5 6.7 2.8 28.4 10.4 5.8 25.8 10.1 2.6 0.2 Chi2 7.8 9.5 9.5 9.5 9.5 11.1 11.1 7.8 9.5 9.5 9.5 7.8 oberste Klasse 0 0 0 0 0 1 1 0 0 0 0 0 P-Wert 0.010 0.006 0.006 0.153 0.595 0.000 0.065 0.121 0.000 0.039 0.628 0.973 m3 37.7 35.8 36.7 36.6 34.3 34.0 34.1 33.1 32.2 33.2 34.3 34.5 shape 15.1 13.4 13.6 11.8 12.7 12.1 10.2 15.0 11.0 13.3 13.6 14.1 37/50 Momente ohne Grenzklassen Mittelwert (m1) Varianz (v1) 37.8 99.4 35.7 92.3 36.8 104.1 36.5 111.3 34.1 89.3 33.5 78.7 33.8 104.4 33.0 72.1 31.3 72.7 32.7 69.9 34.1 82.2 34.4 81.5 rate 0.400 0.375 0.371 0.322 0.371 0.357 0.299 0.454 0.341 0.400 0.398 0.410 v3 94.4 95.3 99.0 113.6 92.3 95.3 114.1 72.8 94.3 82.9 86.2 84.0 m2 37.7 35.7 36.8 36.6 34.2 33.6 33.9 33.0 31.4 32.8 34.1 34.5 VI 95 % [36.5, 39.0] [34.3, 37.0] [35.6, 38.0] [35.3, 37.8] [33.1, 35.3] [32.6, 34.6] [32.6, 35.3] [32.0, 34.1] [30.1, 32.8] [31.4, 34.1] [32.9, 35.4] [33.1, 35.8] 5.1.11. Kategorie Kühe VK Basisdaten Periode 2005-01 2005-02 2005-03 2005-04 2005-05 2005-06 2005-07 2005-08 2005-09 2005-10 2005-11 2005-12 Anzahlen total 10868 8390 8431 7106 10500 7820 7456 10391 11588 11606 12004 8175 Γ-Verteilung Periode 2005-01 2005-02 2005-03 2005-04 2005-05 2005-06 2005-07 2005-08 2005-09 2005-10 2005-11 2005-12 Klassen 16 16 16 16 16 16 16 16 16 16 16 16 unterste Klasse 1 4 2 2 4 2 2 12 3 3 13 4 T 66.4 78.0 47.0 27.6 49.3 33.0 61.9 115.2 127.0 70.6 272.3 82.2 Chi2 22.4 22.4 22.4 22.4 22.4 22.4 22.4 22.4 22.4 22.4 22.4 22.4 oberste Klasse 7 8 8 6 8 4 4 5 5 2 4 4 P-Wert 0.000 0.000 0.000 0.010 0.000 0.002 0.000 0.000 0.000 0.000 0.000 0.000 m3 302.4 305.3 306.9 306.3 301.5 302.6 294.7 291.0 289.7 292.6 296.6 301.4 Momente ohne Grenzklassen Mittelwert (m1) Varianz (v1) 302.1 2’143 305.5 2’299 306.9 2’406 306.2 2’506 301.4 2’513 302.7 2’537 294.6 2’393 291.5 2’301 289.6 2’223 292.7 2’004 297.5 2’185 301.8 2’180 shape 42.1 38.9 38.8 37.1 36.0 36.5 36.6 35.6 38.0 43.1 37.5 40.2 rate 0.139 0.127 0.126 0.121 0.119 0.120 0.124 0.122 0.131 0.147 0.126 0.133 v3 2169 2396 2429 2528 2523 2512 2371 2376 2209 1987 2346 2261 m2 302.2 305.5 306.9 306.2 301.4 302.7 294.6 291.5 289.6 292.7 297.5 301.8 VI 95 % [301.3, 303.1] [304.5, 306.6] [305.8, 307.9] [305.1, 307.4] [300.5, 302.4] [301.6, 303.8] [293.5, 295.7] [290.6, 292.4] [288.7, 290.5] [291.9, 293.5] [296.7, 298.4] [300.8, 302.8] 5.1.12. Kategorie Schweine Basisdaten Periode 2005-01 2005-02 2005-03 2005-04 2005-05 2005-06 2005-07 2005-08 2005-09 2005-10 2005-11 2005-12 Anzahlen total 130249 118796 132464 128323 128567 134961 108000 121487 122797 113477 138421 123555 unterste Klasse 583 448 493 443 586 636 582 664 632 426 664 850 oberste Klasse 2640 2462 2520 2908 2322 1957 1112 963 1471 2220 2154 951 38/50 Momente ohne Grenzklassen Mittelwert (m1) Varianz (v1) 85.9 53.1 86.6 52.5 86.7 53.8 87.1 53.5 86.2 52.8 85.1 52.6 84.5 50.9 85.0 52.5 85.6 54.2 86.7 54.8 86.3 55.5 84.4 52.6 Γ-Verteilung Periode 2005-01 2005-02 2005-03 2005-04 2005-05 2005-06 2005-07 2005-08 2005-09 2005-10 2005-11 2005-12 5.2. Klassen 6 6 6 6 6 6 6 6 6 6 6 6 T 1049.8 1115.8 810.2 1164.9 690.4 937.7 484.3 238.7 477.4 1018.9 698.0 154.4 Chi2 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 P-Wert 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 m3 86.0 86.3 86.5 86.8 86.0 84.9 84.3 85.0 85.5 86.5 86.2 84.4 shape 6.3 6.3 6.5 6.6 6.2 6.1 5.9 6.3 6.5 6.7 6.8 6.2 rate 4.9 5.1 6.3 6.0 5.2 4.9 5.2 7.6 7.2 7.0 7.9 6.8 v3 66.2 64.8 62.5 65.0 63.1 61.9 56.1 53.3 58.2 63.6 61.4 54.6 m2 86.3 86.6 86.7 87.1 86.2 85.1 84.5 85.0 85.6 86.7 86.3 84.4 VI 95 % [86.2, 86.3] [86.5, 86.6] [86.7, 86.7] [87.1, 87.1] [86.2, 86.3] [85.1, 85.2] [84.4, 84.5] [85.0, 85.1] [85.5, 85.6] [86.6, 86.7] [86.3, 86.4] [84.4, 84.5] Glossar Shape-Parameter der Γ-Verteilung Scale-Parameter der Γ-Verteilung Mittelwert der Normal- oder t-Verteilung Rate-Parameter der Γ-Verteilung Standard-Abweichung der Normal- oder t-Verteilung Freiheitsgrad-Parameter der t-Verteilung Verteilung (Distribution) Freiheitsgrade Geschätzte Freiheitsgrade für die t-Verteilung Gewicht Gitzi I Index Anzahl Klassen Jungvieh der Rindergattung Schlachtkälber Mittelwert ohne die untere und die obere Grenzklassen Mittelwert aus allen Klassen. Alle Klassenmittelwerte mit der approximierten Verteilung geschätzt, aber mit den effektiven Anzahlen der Klassen gewichtet. m3: Theoretischer Mittelwert der angepassten Verteilung. MA: Ältere Muni MFA: Magerfleischanteil, Klassierungsmethode für die Schlachtschweine MT: Mastmuni N: Beobachtete Anzahl Ne: Erwartete, theoretische Anzahl OB: Ochsen p: Anzahl Parameter P-Wert: 1 - Wahrscheinlichkeit des T-Wertes aufgrund der Chiquadrat-Verteilung rate: Parameter der Γ-Verteilung s: Standardabweichung RG: Rinder RV: Jungkühe Schlachtgewicht: Gewicht des Schlachtkörpers, entspricht in etwa 50 % des Lebendgewichts shape: Parameter der Γ-Verteilung T-Wert: Berechneter Wert des Anpassungstestes v1-v3: Varianzen, analog berechnet zu m1 bis m3. VI95: Geschätztes 95%-Vertrauensintervall des Mittelwertes. VK: Kühe Klassenmittelpunkte (eigentlich Mediane) der i Gewichtsklassen zi: α: θ: µ: ρ: σ: φ: D: DF: f: G: GI: i: k: JB: KV: m1: m3: 39/50 5.3. Erfolglose Versuche und anderes Ein modifizierter Anpassungstest mit nach Tierzahlen gewichteten Abweichungen der beobachteten gegenüber den erwarteten Anzahlen konnte nicht überzeugen. Die effektiven Anzahlen in den Klassen werden ja für die Schätzung des Gesamtmittelwertes berücksichtigt. Deshalb wird der übliche Anpassungstest benutzt. Transformationen (Logarithmus, Wurzel) der Daten ergaben keine brauchbaren Resultate, da die Daten insgesamt einer t-Verteilung oder Γ-Verteilung doch am besten entsprechen und dies untransformiert. Andere Verteilungen (NV, Power normal distribution) führten in den meisten Fällen zu einer schlechteren Anpassung. Mit der Power normal distribution konnte für die Kategorie RG noch eine geringe Verbesserung der Anpassungsgüte erreicht werden. Die Unterschiede zu den approximierten Mittelwerten der Γ-Verteilung waren jedoch nicht relevant (≤ 0.1 kg). Eine Optimierung der angepassten t- oder Γ-Verteilung mit der Box-Cox-Methode verbesserte die Anpassung auf der Basis des Chiquadrat-Wertes nicht mehr relevant. Die Schätzwerte für den Mittelwert blieben unverändert. Bei den unterschiedlichen Methoden für optim war offensichtlich (gemäss Anpassungstest) die Standardmethode („Nelder & Mead“) am besten geeignet. Bei der Kategorie RV lagen im Jahr 2005 in den Monaten Juni bis Dezember offensichtlich fehlerhafte Daten vor mit mehr als der Hälfte der Tiere unterhalb von 150 kg Schlachtgewicht. Die Proviande konnte zu diesem offensichtlichen Fehler keine Informationen liefern. Da in dieser Kategorie kaum Tiere zu erwarten waren, wurde der Wert jeweils auf 0 gesetzt, d.h. die betreffende Klasse entfernt. Bei den Simulationen stiess ich zeitlich an Grenzen. Sie waren jedoch hilfreich, um die Probleme bei der Varianzschätzung etwas einzugrenzen und um die Zuverlässigkeit der Approximation einer Kombination von Verteilungen zu schätzen. Eine grundlegende Erkenntnis: Am besten ist es, wenn man nur ganz wenig Daten hat: Dann lässt sich fast jede Verteilung ohne signifikante Abweichung anpassen. Zudem hat man weniger Arbeit… 5.4. Literatur Bundesamt für Statistik (2007): Daten Primärsektor - Fleischproduktion. www.agr.bfs.admin.ch/ReportFolders/ReportFolders.aspx Bundesamt für Statistik (2006). Landwirtschaftliche Gesamtrechnung, Land- und Forstwirtschaft / wirtschaftliche Ergebnisse. www.bfs.admin.ch Engineering Statistics Handbook (2006): Gallery of Distributions. www.itl.nist.gov/div898/handbook/eda/section3/eda366.htm Proviande (2005, 2006): Realisierte Preise von Schlachtvieh. www.proviande.ch R Development Core Team (2006). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. ISBN 3-900051-07-0. www.R-project.org Schweizerische Eidgenossenschaft (2006). Verordnung über den Schlachtvieh- und Fleischmarkt (Schlachtviehverordnung, SV), Stand 27.6.2006. www.admin.ch/ch/d/sr/916_341/index.html Stahel, Werner A. (2002): Statistische Datenanalyse. Eine Einführung für Naturwissenschaftler. 4., verb. Auflage, Vieweg Friedrich + Sohn. Statistik SBV (2006): Landwirtschaftliche Monatszahlen, www.bauernverband.ch/de/markt_preise_statistik/lmz Vianco (2006): CH-TAX-Klassierungssystem für Schlachtvieh. www.vianco.ch 40/50 WolframMathWorld (2006): Gamma distribution. http://mathworld.wolfram.com/GammaDistribution.html Vianco (2007): Persönliche Mitteilung durch Hr. Hans Ziswiler. 5.5. R-Skripte 5.5.1. Anpassung der t-Verteilung # Skript zur Schätzung von Mittelwert und Varianz der Schlachtgewichtsdaten # gemäss den Klassierungsdaten der Proviande # Basis: t-Verteilung # Daten liegen als Monats- oder Jahresdatei ab MS Access als CSV-File auf dem Laufwerk M bereit # Vorgaben aus d.gew (nrow=Anzahl Klassen=k) # - Klasse: 1:k # - von / bis als Klassengrenzen # - mittel = Mitte der Klassengrenzen für Klassen 2:k-1 # - n_real = beobachtete Anzahl Tiere # ------------------------------------------------------------------------# 1. Initialisierung: Einstellungen und Dataframe für Resultate windows(width=7,height=7,pointsize=12,record=TRUE) # Mehrfach-Grafikfenster par(mfrow=c(2,2)) res.t<-data.frame(xgattung=„XX“,xjahr=1,xmonat=1, n.t=1, u=0,o=0,klasse=1, xm1=1, xm2=1, xv1=1,xv2=1,xv3=1, xt1=1, chi2=1,pval=1,pm.est=1,ps.est=1,pfg.est=1.1) # Dummy-Zeile # 2. Jahres- oder Monatsdaten einlesen # 2.a) Monatsdaten # --------------------------------------------------d.gew<-read.table(„M:\\gewichtM.csv“,header=T,sep=“;“) # d.gew<-d.gew[-1,] # für RV 2005-06 bis RV 2005-12 # 2.b) Jahresdatei # --------------------------------------------------# d.gew<-read.table(„M:\\gewichtJ.csv“,header=T,sep=“;“);d.gew[,“monat“]<-0 # 2.c) Fehlende Angaben berechnen n.row<-nrow(d.gew) # Anteile neu berechnen n.total<-sum(d.gew[,“n_real“]) options(digits=9) d.gew[,“p_real“]<-d.gew[,“n_real“]/n.total # Anteile neu berechnen # kumulierte Anteile d.gew[,“pk_real“]<-cumsum(d.gew[,“p_real“]) # 2.d) Momentenschätzer Typ 1 d.gew[,“m1“]<-d.gew[,“mittel“]*d.gew[,“p_real“]/sum(d.gew[d.gew$typ_id==1,]$p_real) m1.est<-sum(d.gew[,“m1“]) n2k_1<-sum(d.gew[d.gew$typ_id==1,]$n_real) d.gew$v1<-0 d.gew[d.gew$typ_i==1,]$v1<- (d.gew[d.gew$typ_i==1,]$mittel-m1.est)^2 v1.est<-sum(d.gew$v1*d.gew$n_real) /n2k_1 d.gew # Kontrolle # 2.e) Startwerte der Approximation breite.class=d.gew[2,“bis“] -d.gew[2,“von“] # Klassenbreite parm.start<-c(m1.est,sqrt(v1.est),10) f.chisqt <- function(parm.start) { t.bis<- (c(d.gew[-n.row,“bis“],Inf)- parm.start[1])/ parm.start [2] # skalieren t.fg <- max(3, parm.start[3]) t.pk_est <- pt(t.bis,t.fg) t.p_est <- c(t.pk_est[1],diff(t.pk_est)) # Anteil t.n_est <-sum(d.gew[,“n_real“])*t.p_est t.diff1 <-(d.gew[,“n_real“]-t.n_est)^2/t.n_est sum(t.diff1) } # 3. Anpassung # 3.a) Parameter schätzen # res.opt<- optim(parm.start,f.chisqt) # ,control=list(trace=1,reltot=10^ (-320))) res.opt<- optim(parm.start,f.chisqt,method=“L-BFGS-B“,lower=c(0,0,3)) # ,control=list(trace=1)) res.opt$par m3.est<-res.opt$par[1] pm.est<-m3.est s3.est<-res.opt$par[2] 41/50 ps.est<-s3.est fg3.est<- res.opt$par[3] pfg.est<-fg3.est # if (fg4.est<3) fg4.est<-3 # Freiheitsgrad muss >= 3 sein !!!! v3.est<-s3.est^2*(fg3.est/(fg3.est-2)) # Quantile geschätzt d.gew[,“pk_est“]<-pt((c(d.gew[-n.row,“bis“],Inf)-m3.est)/s3.est,fg3.est) # Resultate in Ausgangstabelle übertragen d.gew[,“p_est“]<-c(d.gew[1,“pk_est“], diff(d.gew[,“pk_est“])) d.gew[,“n_est“]<-sum(d.gew[,“n_real“])*d.gew[,“p_est“] # nur „ganze“ Tiere möglich, für Chi2 werden aber halbe benötigt d.gew[,“diff“]<-(d.gew[,“n_real“]-d.gew[,“n_est“])^2/d.gew[,“n_est“] # Qualitätskontrolle durch quadrierte Abweichung zwischen theoretischen und beobachteten Quantilen # durch die Freiheitsgrade: # v.Test<-na.omit(d.gew) t.Test<-sum(d.gew[,“diff“]) # ungewichtet # 3.b) Mittelwert und Varianz interpolieren m.struc<-matrix(data=1:1000,nrow=n.row,ncol=1000,byrow=TRUE) # Strukturmatrix t.space<-as.matrix(d.gew[,“bis“]-d.gew[,“von“])/1000 # Breite der n.row * 1000 Stufen m.von<- t.space[1:n.row,]*(m.struc[1:n.row,]-1) # unteres Subklasseninkrement m.bis<-t.space[1:n.row,]*m.struc[1:n.row,] # oberes Subklasseninkrement m.vong<-m.von+d.gew[,“von“] # unteres Gewicht m.bisg<-m.bis + d.gew[,“von“] # oberes Gewicht m.pkvon<-pt((m.vong-m3.est)/s3.est,fg3.est) # Wahrscheinlichkeit kum. unten m.pkbis<-pt((m.bisg-m3.est)/s3.est,fg3.est) # Wahrscheinlichkeit kum. oben m.mean<-(m.vong+m.bisg)/2 # mittleres Gewicht m.prob<-m.pkbis-m.pkvon # mittlere Wahrscheinlichkeit m.probrow<- as.matrix(apply(m.prob,1,sum)) # Wahrscheinlichkeit der Klasse=Zeile m.wmean<-m.mean[1:n.row,]*m.prob[1:n.row,] # gewichtete Mittel m.wmeanrow<-as.matrix(apply(m.wmean,1,sum)) # gewichtetes Klassenmittel row.mean <-as.matrix(m.wmeanrow[1:n.row,]/m.probrow[1:n.row,]) # Klassenmittel absolut d.gew[,“m2“]<-row.mean m2.est<- t(row.mean) %*% as.matrix(d.gew[,“n_real“]) / sum(d.gew[,“n_real“]) # Gesamtmittel als Klassenmittel # gewichtet mit den tatsächlichen Anzahlen in den Klassen m2.est m.var<-(m.mean-matrix(m3.est,ncol=1000,nrow=n.row))^2 # Varianz pro Subklasse m.varw<-m.var * m.prob m.varwrow<-as.matrix(apply(m.varw,1,sum)) m.varwabs<-as.matrix(m.varwrow / m.probrow) v2.est<- t(m.varwabs) %*% as.matrix(d.gew[,“n_real“]) / sum(d.gew[,“n_real“]) # Gesamtmittel als Klassenmittel m2.est<-sum(d.gew[,“m2“]*d.gew[,“p_real“]) # 4. Anzeige und Ausgabe # 4.a) Plots reale gegen theoretische Werte par(mfrow=c(2,1)) plot(d.gew[,“n_real“]~d.gew[,“klasse“], xlab=“Gewichtsklasse“,ylab=“Anzahl Tiere“,col=2,lwd=2,cex.lab=1.2,ylim=c(0,max(d.gew[,“n_real“])*1.1)) lines(d.gew[,“n_est“]~d.gew[,“klasse“],lwd=2,col=“green3“) title(main=paste(d.gew[1,1],“Beobachtete Anzahlen gegen Anzahlen der t-Verteilung“,sep=“: “)) legend(„topleft“,c(“beobachtet“,“erwartet“),text.col=c(„red“,“green3“),cex=0.8) plot(d.gew[,“pk_real“]~d.gew[,“klasse“], main=paste(d.gew[1,1],“Beobachtete gegen erwartete Quantile“,sep=“: „), xlab=“Gewichtsklasse“,ylab=“Quantil“,col=2,lwd=2,cex.lab=1.2) lines(d.gew[,“pk_est“]~d.gew[,“klasse“],col=“green3“,lwd=2) legend(„topleft“,c(“beobachtet“,“erwartet“),text.col=c(„red“,“green3“) ,cex=0.8) # 4.b) alle Daten anzeigen speichern und ausgeben ifelse(d.gew[1,]$klasse==1,u.t<- u.t<-d.gew[1,]$n_real,u.t<-0) ifelse(max(d.gew$klasse)==d.gew[1,"klassen"],o.t<-d.gew[d.gew$klasse==d.gew[1,"klassen"],]$n_real,o.t<-0) res.tnew<-data.frame(xgattung=d.gew[1,“id_gattung“],xjahr=d.gew[1,“jahr“],xmonat=d.gew[1,“monat“], n.t=n.total, u=u.t, o=o.t, klasse=n.row, xm1=m1.est, xm2=m2.est, xv1=v1.est, xv2=v2.est, xv3=v3.est, xt1=t.Test, chi2=qchisq(0.95,n.row4),pval= 1-pchisq(t.Test,n.row-4), pm.est=m3.est, ps.est=s3.est, pfg.est=fg3.est) res.t<-rbind(res.t,res.tnew) # Output in drei Dateien und Anzeige des gesamten Resultat-Dataframes sink(„M:\\res1.txt“);res.t[-1,1:7];sink();sink(„M:\\res2.txt“);res.t [-1,8:14]; sink() sink(„M:\\res3.txt“);res.t [-1,15:18];sink() # Kontrolle auf Bildschirm d.gew t(res.tnew) res.t[-1,] 42/50 5.5.2. Anpassung der Γ-Verteilung # Skript zur Schätzung von Mittelwert und Varianz der Gewichte # aus den Klassierungsdaten der Proviande # Variante 2: Γ-Verteilung # G ~ Γ(α,θ) # α = shape # θ = scale # rate = 1/θ # 1. Ausgabedatei und Parameter des ersten Aufrufs windows(width=7,height=7,pointsize=12,record=TRUE) # Mehrfach-Grafikfenster par(mfrow=c(2,2)) # Dataframe für Resultate res.g<-data.frame(xgattung=„XX“,xjahr=as.numeric(1.1),xmonat=1,n.t=1, u=0,o=0,klasse=1, xm1=1,xm2=1,xv1=1,xv2=1,xv3=1,xt1=1,chi2=1,pval=1,pm.est=1,pshape.est=1,prate.est=1) # 2. Jahres- oder Monatsdaten einlesen # 2.a) Monatsdaten d.gew<-read.table(„M:\\gewichtM.csv“,header=T,sep=“;“) # d.gew<-d.gew[-1,] # RV 2005-07 bis 2005-12 # str(d.gew) # data.frame': 12 obs. of 23 variables: # id_gattung: Factor w/ 1 level "OB": 1 1 1 1 1 1 1 1 1 1 ... # jahr : int 2005 2005 2005 2005 2005 2005 2005 2005 2005 2005 ... # monat : int 11 11 11 11 11 11 11 11 11 11 ... # klassen : int 14 14 14 14 14 14 14 14 14 14 ... # Anzahl Klassen # klasse : int 1 2 3 4 5 6 7 8 9 10 ... # typ_id : int 2 1 1 1 1 1 1 1 1 1 ... # von : int 100 150 175 200 225 250 275 300 325 350 ... # bis : int 150 175 200 225 250 275 300 325 350 375 ... # mittel : num 0 162 188 212 238 ... # Klassenmittelpunkt # gew_klasse: Factor w/ 12 levels "<150","150+",..: 1 2 3 4 5 6 7 8 9 10 ... # n_real : int 9 71 258 424 443 319 267 174 64 9 ... # Anzahl Tiere # p_real : num 0.0044 0.0347 0.1261 0.2072 0.2165 ... # pk_real : num 0.0044 0.0391 0.1652 0.3724 0.5890 ... # p_est : num 0.00817 0.03985 0.11144 0.19123 0.22291 ... # pk_est : num 0.00817 0.04802 0.15946 0.35069 0.57360 ... # n_est : num 16.7 81.5 228.0 391.3 456.1 ... # diff1 : num 3.567 1.360 3.946 2.741 0.375 ... # beobachtet - erwartet # v1 : num 0.0 6727.3 3251.3 1025.3 49.3 ... # m1 : num 0.00 5.66 23.75 44.23 51.65 ... # 2.b) Jahresdatei # d.gew<-read.table(„M:\\gewichtJ.csv“,header=T,sep=“;“);d.gew$monat<-13 # 2.c) Fehlende Angaben berechnen n.row<-nrow(d.gew) # Anzahl Zeilen im Dataframe n.total<-sum(d.gew$n_real) # Anteile neu berechnen options(digits=9) d.gew$p_real<-d.gew$n_real/n.total # Anteile neu berechnen d.gew[1,]$pk_real<- d.gew[1,]$p_real # 1. kumulierter Anteil = 1. Anteil for (i in 2:n.row) { # restliche kumulierte Anteile ab Zeile 2 aufsummieren d.gew[i,]$pk_real<-d.gew[i-1,]$pk_real+d.gew[i,]$p_real } # Schätzer Typ 1: gewichtetes Mittel der vorhandenen Klassen d.gew$m1<-d.gew$mittel*d.gew$p_real/sum(d.gew[d.gew$typ_id==1,]$p_real) m1.est<-sum(d.gew$m1) n2k_1<-sum(d.gew[d.gew$typ_id==1,]$n_real) d.gew$v1<-0 d.gew[d.gew$typ_i==1,]$v1<- (d.gew[d.gew$typ_i==1,]$mittel-m1.est)^2 v1.est<-sum(d.gew$v1*d.gew$n_real) /n2k_1 d.gew # 3. Startparameter der Verteilung breite.class=d.gew[2,]$bis -d.gew[2,]$von t.parm_g<-c(m1.est/10,.1) # 4. Anpassung # 4.a) Parameter schätzen t.bis<-1:n.row t.von<-1:n.row t.parmx<-c(30,.1) fw<-function(t.parmx) { # Klassenbreite # Shape und Rate: Shape/Rate = Mittelwert 43/50 t.bis<- d.gew$bis # / t.parmx[1] # skalieren t.von<- d.gew$von # / t.parmx[1] # skalieren t.von[1]<-0 t.bis[n.row]<- 999999 d.gew$pk_est<-pgamma(t.bis,t.parmx[1],t.parmx[2]) # theoretisches Quantil für Klasse i d.gew[2:n.row,]$p_est<-d.gew[2:n.row,]$pk_est-d.gew[1:(n.row-1),]$pk_est # Anteile in Klassen d.gew[1,]$p_est<-d.gew[1,]$pk_est d.gew$n_est<-sum(d.gew$n_real)*d.gew$p_est 2 d.gew$diff1<-(d.gew$n_real-d.gew$n_est)^2/d.gew$n_est # ungewichtete Abweichung Anteile return(sum(d.gew$diff1)) } res.opt<- optim(t.parm_g,fw) # ,control=list(trace=1)) shape.est<- res.opt$par[1] rate.est<- res.opt$par[2] m3.est<- shape.est/rate.est # Quantile geschätzt d.gew$pk_est<-pgamma(d.gew$bis,shape.est,rate.est) # Resultate in Ausgangstabelle übertragen d.gew[n.row,]$pk_est<-1 # Quantil k = 100 % # Wahrscheinlichkeiten geschätzt d.gew[1,]$p_est<-d.gew[1,]$pk_est for (i in 2:n.row) { d.gew[i,]$p_est<-d.gew[i,]$pk_est- d.gew[i-1,]$pk_est } d.gew$n_est<-sum(d.gew$n_real)*d.gew$p_est d.gew$diff1<-(d.gew$n_real-d.gew$n_est)^2/d.gew$n_est t.Test<-sum(d.gew$diff1) # 4.b) Mittelwert und Varianz aufgrund des untersten und obersten Quantils # korrigieren m.struc<-matrix(data=1:1000,nrow=n.row,ncol=1000,byrow=TRUE) # Strukturmatrix t.space<-as.matrix(d.gew$bis-d.gew$von)/1000 # Breite der n.row * 1000 Stufen m.von<- t.space[1:n.row,]*(m.struc[1:n.row,]-1) # unteres Subklasseninkrement m.bis<-t.space[1:n.row,]*m.struc[1:n.row,] # oberes Subklasseninkrement m.vong<-m.von+d.gew$von # unteres Gewicht m.bisg<-m.bis + d.gew$von # oberes Gewicht m.pkvon<-pgamma(m.vong,shape.est,rate.est) # Wahrscheinlichkeit kum. unten m.pkbis<-pgamma(m.bisg,shape.est,rate.est) # Wahrscheinlichkeit kum. oben m.mean<-(m.vong+m.bisg)/2 # mittleres Gewicht m.prob<-m.pkbis-m.pkvon m.probrow<- as.matrix(apply(m.prob,1,sum)) m.wmean<-m.mean[1:n.row,]*m.prob[1:n.row,] # mittlere Wahrscheinlichkeit # Wahrscheinlichkeit der Klasse=Zeile # gewichtete Mittel m.wmeanrow<-as.matrix(apply(m.wmean,1,sum)) # gewichtetes Klassenmittel row.mean <-as.matrix(m.wmeanrow[1:n.row,]/m.probrow[1:n.row,]) # Klassenmittel absolut d.gew$m2<-row.mean m2.est<- t(row.mean) %*% as.matrix(d.gew$n_real) / sum(d.gew$n_real) # Gesamtmittel als Klassenmittel # gewichtet mit den tatsächlichen Anzahlen in den Klassen m2.est m.var<-(m.mean-matrix(m2.est,ncol=1000,nrow=n.row))^2 # Varianz pro Subklasse m.varw<-m.var * m.prob m.varwrow<-as.matrix(apply(m.varw,1,sum)) m.varwabs<-as.matrix(m.varwrow / m.probrow) v2.est<- t(m.varwabs) %*% as.matrix(d.gew$n_real) / sum(d.gew$n_real) # Gesamtmittel als Klassenmittel # Schätzer 2 # reale gegen theoretische Werte par(mfrow=c(2,1)) plot(d.gew$n_real~d.gew$klasse, xlab=“Gewichtsklasse“,ylab=“Anzahl Tiere“,col=2,lwd=2,cex.lab=1.2,ylim=c(0,max(d.gew$n_real)*1.1)) lines(d.gew$n_est~d.gew$klasse,col=3,lwd=2) title(main=paste(d.gew[1,1],“Beobachtete Anzahlen gegen Anzahlen der Gamma-Verteilung“,sep=“: “)) legend("topleft",c("beobachtet","erwartet"),cex=0.8,text.col=c(2,3)) plot(d.gew$pk_real~d.gew$klasse, main=paste(d.gew[1,1],“Beobachtete gegen erwartete Quantile“,sep=“: „),xlab=“Gewichtsklasse“,ylab=“Quantil“, col=2,lwd=2,cex.lab=1.2) lines(d.gew$pk_est~d.gew$klasse,col=3,lwd=2) legend("topleft",c("beobachtet","erwartet"),cex=0.8,text.col=c(2,3)) v3.est<-shape.est*(1/rate.est)^2 xchi2<- qchisq(0.95,n.row-3) pm.est<-m3.est pshape.est<- shape.est prate.est<- rate.est xm.u<- d.gew[1,]$m2 xm.o<- d.gew[n.row,]$m2 # Varianz der approximierten Verteilung # Anzahl Klassen - 1 - [Anzahl geschätzte Parameter] 44/50 # nach res.g ifelse(d.gew[1,]$klasse==1,u.t<- u.t<-d.gew[1,]$n_real,u.t<-0) ifelse(max(d.gew$klasse)==d.gew[1,"klassen"],o.t<-d.gew[d.gew$klasse==d.gew[1,"klassen"],]$n_real,o.t<-0) res.gnew<- data.frame(xgattung=d.gew[1,“id_gattung“],xjahr=d.gew[1,“jahr“],xmonat=d.gew[1,“monat“], n.t=n.total, u=u.t, o=o.t, klasse=n.row, xm1=m1.est, xm2=m2.est, xv1=v1.est, xv2=v2.est, xv3=v3.est, xt1=t.Test, chi2=qchisq(0.95,n.row3),pval= 1-pchisq(t.Test,n.row-3), pm.est= m3.est,pshape.est,prate.est) res.g<-rbind(res.g,res.gnew) # Output in drei Dateien und Anzeige des gesamten Resultat-Dataframes sink(„M:\\res1.txt“);res.g[,1:6];sink();sink(„M:\\res2.txt“);res.g [,7:12];sink();sink(„M:\\res3.txt“);res.g [,13:18];sink() # Datei M:\out.txt wird anschliessend mit Excel übernommen # alle Daten d.gew t(res.gnew) res.g 5.5.3. Multinomial verteilte Pseudozufallszahlen # Skript zur Simulation mit multinomial erzeugten Pseudozufallszahlen # Basis: t-Verteilung # Daten liegen als Monatsdatei ab MS Access als CSV-File auf dem Laufwerk M bereit # ------------------------------------------------------------------------# Zuerst Skript für t-Verteilung durchführen # -------------------------# Initialisieren res.multi<-res.t[1,] res.multi<-res.multi[-1,] # set.seed(45) p.run<-99 m.nmulti<-matrix(data=0,nrow=n.row,ncol=p.run) m.nmulti<- rmultinom(p.run,n.total,prob=d.gew[,“p_real“]) # Zufallszahlen # Schlaufe for (i in 1:p.run) { d.multi<-d.gew d.multi[,“n_real“]<- m.nmulti[,i] d.multi[,“p_real“]<-d.multi[,“n_real“]/n.total # Anteile neu berechnen # kumulierte Anteile d.multi[,“pk_real“]<-cumsum(d.multi[,“p_real“]) # 2.d) Momentenschätzer Typ 1 d.multi[,“m1“]<-d.multi[,“mittel“]*d.multi[,“p_real“]/sum(d.multi[d.multi$typ_id==1,]$p_real) m1.est<-sum(d.multi[,“m1“]) n2k_1<-sum(d.multi[d.multi$typ_id==1,]$n_real) d.multi[,“v1“]<- (d.multi[,“mittel“]-m1.est)^2 d.multi[1,“v1“]<-0 d.multi[n.row,“v1“]<-0 v1.est<-sum(d.multi[,“v1“]*d.multi[,“p_real“])/sum(d.multi[-1,“p_real“])*n2k_1/(n2k_1 -1) d.multi # Kontrolle # 2.e) Startwerte der Approximation breite.class=d.multi[2,“bis“] -d.multi[2,“von“] # Klassenbreite parm.start<-c(m1.est,v1.est^.5,10) # 3. Anpassung # 3.a) Parameter schätzen t.bis<-1:n.row t.von<-1:n.row f.chisqt <- function(parm.start) { t.bis<- (c(d.gew[-n.row,“bis“],Inf)- parm.start[1])/ parm.start [2] # skalieren t.fg <- max(3, parm.start[3]) t.pk_est <- pt(t.bis,t.fg) t.p_est <- c(t.pk_est[1],diff(t.pk_est)) # Anteil t.n_est <-sum(d.gew[,“n_real“])*t.p_est t.diff1 <-(d.gew[,“n_real“]-t.n_est)^2/t.n_est sum(t.diff1) } # res.opt<- optim(parm.start,f.chisqt) # ,control=list(trace=1,reltot=10^ (-320))) res.opt<- optim(parm.start,f.chisqt,method=“L-BFGS-B“,lower=c(0,0,3)) # ,control=list(trace=1)) res.opt$par m4.est<-res.opt$par[1] s4.est<-res.opt$par[2] fg4.est<- max(3,res.opt$par[3]) # if (fg4.est<3) fg4.est<-3 # Freiheitsgrad muss >= 3 sein !!!! v4.est<-s4.est^2*(fg4.est/(fg4.est-2)) 45/50 # Quantile geschätzt d.multi[,“pk_est“]<-pt((c(d.multi[-n.row,“bis“],Inf)-m4.est)/s4.est,fg4.est) # Resultate in Ausgangstabelle übertragen d.multi[,“p_est“]<-c(d.multi[1,“pk_est“],diff(d.multi[,“pk_est“])) d.multi[,“n_est“]<-round(sum(d.multi[,“n_real“])*d.multi[,“p_est“],digits=0) # nur „ganze“ Tiere möglich d.multi[,“diff“]<-(d.multi[,“n_real“]-d.multi[,“n_est“])^2/d.multi[,“n_est“] # Qualitätskontrolle durch quadrierte Abweichung zwischen theoretischen und beobachteten Quantilen # durch die Freiheitsgrade: t.Test<-sum(d.multi[,“diff“]) # ungewichtet # 3.b) Mittelwert und Varianz interpolieren m.struc<-matrix(data=1:1000,nrow=n.row,ncol=1000,byrow=TRUE) # Strukturmatrix t.space<-as.matrix(d.multi[,“bis“]-d.multi[,“von“])/1000 # Breite der n.row * 1000 Stufen m.von<- t.space[1:n.row,]*(m.struc[1:n.row,]-1) # unteres Subklasseninkrement m.bis<-t.space[1:n.row,]*m.struc[1:n.row,] # oberes Subklasseninkrement m.vong<-m.von+d.multi[,“von“] # unteres Gewicht m.bisg<-m.bis + d.multi[,“von“] # oberes Gewicht m.pkvon<-pt((m.vong-m4.est)/s4.est,fg4.est) # Wahrscheinlichkeit kum. unten m.pkbis<-pt((m.bisg-m4.est)/s4.est,fg4.est) # Wahrscheinlichkeit kum. oben m.mean<-(m.vong+m.bisg)/2 # mittleres Gewicht m.prob<-m.pkbis-m.pkvon # mittlere Wahrscheinlichkeit m.probrow<- as.matrix(apply(m.prob,1,sum)) # Wahrscheinlichkeit der Klasse=Zeile m.wmean<-m.mean[1:n.row,]*m.prob[1:n.row,] # gewichtete Mittel m.wmeanrow<-as.matrix(apply(m.wmean,1,sum)) # gewichtetes Klassenmittel row.mean <-as.matrix(m.wmeanrow[1:n.row,]/m.probrow[1:n.row,]) # Klassenmittel absolut d.multi[,“m3“]<-row.mean m3.est<- t(row.mean) %*% as.matrix(d.multi[,“n_real“]) / sum(d.multi[,“n_real“]) # Gesamtmittel als Klassenmittel # gewichtet mit den tatsächlichen Anzahlen in den Klassen m3.est m.var<-(m.mean-matrix(m3.est,ncol=1000,nrow=n.row))^2 # Varianz pro Subklasse m.varw<-m.var * m.prob m.varwrow<-as.matrix(apply(m.varw,1,sum)) m.varwabs<-as.matrix(m.varwrow / m.probrow) v3.est<- t(m.varwabs) %*% as.matrix(d.multi[,“n_real“]) / sum(d.multi[,“n_real“]) # Gesamtmittel als Klassenmittel # 4. Anzeige und Ausgabe # 4.a) Plots reale gegen theoretische Werte # par(mfrow=c(2,1)) # plot(d.multi[,“n_real“]~d.multi[,“klasse“], xlab=“Gewichtsklasse“,ylab=“Anzahl Tiere“,col=2,lwd=2,cex.lab=1.2,ylim=c(0,max(d.multi[,“n_real“])*1.1)) # lines(d.multi[,“n_est“]~d.multi[,“klasse“],col=3,lwd=2) # title(main=paste(d.multi[1,1],“Beobachtete Anzahlen gegen Anzahlen der t-Verteilung“,sep=“: “)) # plot(d.multi[,“pk_real“]~d.multi[,“klasse“], main=paste(d.multi[1,1],“Beobachtete gegen erwartete Quantile“,sep=“: „),xlab=“Gewichtsklasse“,ylab=“Quantil“,col=2,lwd=2,cex.lab=1.2) # lines(d.multi[,“pk_est“]~d.multi[,“klasse“],col=3,lwd=2) # text(5,5,"rot=beobachtet",cex=1) legend(„topleft“,c(„schwarz = kombiniert“,“rot = NV“,„grün = Gamma“)) # 4.b) alle Daten anzeigen speichern und ausgeben res.tnew=data.frame(xgattung=d.multi[1,“id_gattung“],xjahr=d.multi[1,“jahr“],xmonat=d.multi[1,“monat“],n.t=n.total ,xm1=m1.est, xm3=m3.est,xv1=v1.est, xv3=v3.est,xv4=v4.est,xt1=t.Test,xchi2=qchisq(0.95, n.row4),pm.est=m4.est,ps.est=s4.est,pfg.est=fg4.est,xm.u=d.multi[1,“m3“],xm.o=d.multi[n.row,“m3“]) res.multi<-rbind(res.multi,res.tnew) } # Kontrolle par(mfrow=c(1,1)) hist(res.multi$xm3,nclass=20) sort(res.multi$xm3)[round((p.run+1)*0.025,digit=0)] sort(res.multi$xm3)[round((p.run+1)*0.975,digit=0)] sort(res.multi$pm.est)[round((p.run+1)*0.025,digit=0)] sort(res.multi$pm.est)[round((p.run+1)*0.975,digit=0)] # Output in drei Dateien und Anzeige des gesamten Resultat-Dataframes # ----------------------------------------------------------------------------------------------sink(„M:\\resm1.txt“);res.multi[,1:6];sink();sink(„M:\\ resm2.txt“);res.multi [,7:12];sink();sink(„M:\\ resm3.txt“);res.multi [,13:18];sink() # alle Daten d.multi t(res.tnew) # res.multi 46/50 5.5.4. Simulation Kälber KV # Simulation anhand von NV- und Gammaverteilung windows(width=7,height=7,pointsize=12,record=TRUE) # Mehrfach-Grafikfenster # Sample erstellen res.tot=data.frame(run=0,xgattung=“KV“,m.theo=0,v.theo=0, m.eff=0, v.eff=0,m3=0,v4=0,n=0,unten=0,oben=0,ausserhalb=0,T=0) number.gamma<-3000 number.nv<-17000 n.total<-number.gamma+number.nv part.gamma<-number.gamma/n.total part.nv<-number.nv/n.total t.samples<-200 d.number<-data.frame(klasse=1:8) parm.start<-c(120,20,10) f.chisqt <- function(parm.start) { t.bis<- (c(d.gew[-n.row,“bis“],Inf)- parm.start[1])/ parm.start [2] # skalieren t.fg <- max(3, parm.start[3]) t.pk_est <- pt(t.bis,t.fg) t.p_est <- c(t.pk_est[1],diff(t.pk_est)) # Anteil t.n_est <-sum(d.gew[,“n_real“])*t.p_est t.diff1 <-(d.gew[,“n_real“]-t.n_est)^2/t.n_est sum(t.diff1) } for (i in 1:t.samples) { m.nv <-105 + (i-1)*0.2 s.nv <-13 v.nv<-s.nv^2 ran.nv<-rnorm (number.nv,m.nv,s.nv) rate.gamma<- 0.3 shape.gamma<- (m.nv*rate.gamma) ran.gamma<-rgamma(number.gamma,shape=shape.gamma,rate=rate.gamma) m.gamma<-shape.gamma/rate.gamma v.gamma<-shape.gamma*(1/rate.gamma)^2 ran.sam<-c(ran.nv,ran.gamma) m.eff<-mean(ran.sam) s.eff<-sd(ran.sam) v.eff<-var(ran.sam) m.theo<-part.nv*m.nv+part.gamma*m.gamma v.theo<-part.nv*v.nv+part.gamma*v.gamma+part.gamma*(m.gamma-m.theo)^2+part.nv*(m.nv-m.theo)^2 s.theo<-v.theo^.5 t.c<-cut(ran.sam,breaks=c(0,70,80,90,100,110,120,130,Inf),labels=F) d.gew<-as.data.frame(tapply(ran.sam,t.c,length)) names(d.gew)<-„n_real“ if (dim(d.gew)[1]==7) d.gew<-rbind(data.frame(n_real=0),d.gew) # Anteil ausserhalb d.gew$n_real<-d.gew[,1] d.number<-cbind(d.number,d.gew[,“n_real“]) n.total<-sum(d.gew$n_real) n.row<-nrow(d.gew) a.u <- 100*d.gew[1,1]/n.total a.o <- 100*d.gew[8,1]/n.total a.total<-a.u+a.o # Kälberspezifisch - Grenzen t.vo<-c(0,70,80,90,100,110,120,130) t.bi<- c(70,80,90,100,110,120,130,399) d.gew$von<-t.vo d.gew$bis<-t.bi # Anteile neu berechnen options(digits=9) d.gew$p_real<-d.gew$n_real/n.total # Anteile neu berechnen # kumulierte Anteile d.gew[,“pk_real“]<- cumsum(d.gew[,“p_real“]) # 1. kumulierter Anteil = 1. Anteil d.gew$n_est <- rep(0,8) d.gew$p_est <- rep(0,8) d.gew$pk_est <- rep(0,8) # Startwerte der Approximation breite.class=d.gew[2,]$bis -d.gew[2,]$von # Klassenbreite parm.start<-c(m.theo,s.theo,10) 47/50 # 3. Anpassung # 3.a) Parameter schätzen t.bis<-1:n.row t.von<-1:n.row # res.opt<- optim(parm.start,fw) # ,control=list(trace=1,reltot=10^ (-320))) ## res.opt<- optim(parm.start,fw,method=“CG“ ) # ,control=list(trace=1,reltot=10^ (-320))) # geht nicht ??!! res.opt<- optim(parm.start,f.chisqt,method=“L-BFGS-B“,lower=c(0,0,3)) # ,control=list(trace=1)) # funktioniert res.opt$par m4.est<-res.opt$par[1] s4.est<-res.opt$par[2] fg4.est<- max(3,res.opt$par[3]) # if (fg4.est<3) fg4.est<-3 # Freiheitsgrad muss >= 3 sein !!!! v4.est<-s4.est^2*(fg4.est/(fg4.est-2)) # Quantile geschätzt d.gew[,“pk_est“]<-pt((c(d.gew[-n.row,“bis“],Inf)-m4.est)/s4.est,fg4.est) # Resultate in Ausgangstabelle übertragen d.gew[n.row,“pk_est“]<-1 # Quantil k = 100 % d.gew[,“p_est“]<-c(d.gew[1,“pk_est“],diff(d.gew[,“pk_est“])) d.gew[,“n_est“]<-round(sum(d.gew[,“n_real“])*d.gew[,“p_est“],digits=0) # nur „ganze“ Tiere möglich d.gew[,“diff“]<-(d.gew[,“n_real“]-d.gew[,“n_est“])^2/d.gew[,“n_est“] # Qualitätskontrolle durch quadrierte Abweichung zwischen theoretischen und beobachteten Quantilen # durch die Freiheitsgrade: t.Test<-sum(d.gew[,“diff“]) # ungewichtet # 3.b) Mittelwert und Varianz interpolieren m.struc<-matrix(data=1:1000,nrow=n.row,ncol=1000,byrow=TRUE) # Strukturmatrix t.space<-as.matrix(d.gew[,“bis“]-d.gew[,“von“])/1000 # Breite der n.row * 1000 Stufen m.von<- t.space[1:n.row,]*(m.struc[1:n.row,]-1) # unteres Subklasseninkrement m.bis<-t.space[1:n.row,]*m.struc[1:n.row,] # oberes Subklasseninkrement m.vong<-m.von+d.gew[,“von“] # unteres Gewicht m.bisg<-m.bis + d.gew[,“von“] # oberes Gewicht m.pkvon<-pt((m.vong-m4.est)/s4.est,fg4.est) # Wahrscheinlichkeit kum. unten m.pkbis<-pt((m.bisg-m4.est)/s4.est,fg4.est) # Wahrscheinlichkeit kum. oben m.mean<-(m.vong+m.bisg)/2 # mittleres Gewicht m.prob<-m.pkbis-m.pkvon # mittlere Wahrscheinlichkeit m.probrow<- as.matrix(apply(m.prob,1,sum)) # Wahrscheinlichkeit der Klasse=Zeile m.wmean<-m.mean[1:n.row,]*m.prob[1:n.row,] # gewichtete Mittel m.wmeanrow<-as.matrix(apply(m.wmean,1,sum)) # gewichtetes Klassenmittel row.mean <-as.matrix(m.wmeanrow[1:n.row,]/m.probrow[1:n.row,]) # Klassenmittel absolut d.gew[,“m3“]<-row.mean m3.est<- t(row.mean) %*% as.matrix(d.gew[,“n_real“]) / sum(d.gew[,“n_real“]) # Gesamtmittel als Klassenmittel # gewichtet mit den tatsächlichen Anzahlen in den Klassen m3.est m.var<-(m.mean-matrix(m3.est,ncol=1000,nrow=n.row))^2 # Varianz pro Subklasse m.varw<-m.var * m.prob m.varwrow<-as.matrix(apply(m.varw,1,sum)) m.varwabs<-as.matrix(m.varwrow / m.probrow) v3.est<- t(m.varwabs) %*% as.matrix(d.gew[,“n_real“]) / sum(d.gew[,“n_real“]) # Gesamtmittel als Klassenmittel res.sim=data.frame(run=i,xgattung=“KV“,m.theo=m.theo,v.theo=v.theo,m.eff=m.eff, v.eff=v.eff,m3=m3.est,v4=v4.est,n=n.total,unten=a.u,oben=a.o,ausserhalb=a.total,T=t.Test) res.tot<-rbind(res.tot,res.sim) res.tot } # Ausgabe r.v<-res.tot[-1,] r.v$run<-1:dim(r.v)[1] r.v$vi<-qt(0.975,n.total-1)*(r.v$v4/4*5/r.v$n)^.5 r.v$vipr<-r.v$vi*(1/(1-r.v$ausserhalb/100))^2 # Output in zwei Dateien und Anzeige des gesamten Resultat-Dataframes sink(„M:\\res1.txt“);r.v[,1:7];sink();sink(„M:\\res2.txt“);r.v [,8:14];sink() 48/50 5.5.5. Simulation ältere Stiere MA # Simulation anhand der Gammaverteilung # Kategorie ältere Stiere MA windows(width=7,height=7,pointsize=12,record=TRUE) # Mehrfach-Grafikfenster # d.gew<-read.table(„M:\\gewichts.csv“,header=T,sep=“;“);d.gew$monat<-13 # Sample erstellen res.tot=data.frame(run=0,xgattung=“MA“,m.theo=0,v.theo=0, m.eff=0, v.eff=0,m3=0,v4=0,n=0,unten=0,oben=0,ausserhalb=0,T=0) n.total<-2700 t.samples<-200 d.number<-data.frame(klasse=1:8) parm.start<-c(16,0.033) f.chisqg <- function(parm.start) { t.pk_est <- pgamma(c(d.gew[-n.row,“bis“],Inf),shape=parm.start[1],rate=parm.start[2]) t.p_est <- c(t.pk_est[1],diff(t.pk_est)) # Anteil t.n_est <-sum(d.gew[,“n_real“])*t.p_est t.diff1 <-(d.gew[,“n_real“]-t.n_est)^2/t.n_est sum(t.diff1) } for (i in 1:t.samples) { m.start<-400+(i-1)*1 rate.gamma<- m.start/15000 shape.gamma<- m.start*rate.gamma ran.sam<-rgamma(n.total,shape=shape.gamma,rate=rate.gamma) m.gamma<-shape.gamma/rate.gamma v.gamma<-shape.gamma*(1/rate.gamma)^2 m.eff<-mean(ran.sam) s.eff<-sd(ran.sam) v.eff<-var(ran.sam) s.theo<-v.gamma^.5 d.gew<-as.data.frame(rep(0,16)) names(d.gew)<-„n_real“ t.c<-cut(ran.sam,breaks=c(0,150,175,200,225,250,275,300,325,350,375,400,425,450,475,500,Inf),labels=F) d.gew<-data.frame(rep(0,16)) names(d.gew)<-„n_real“ d.data<-as.data.frame(tapply(ran.sam,t.c,length)) t.auswahl<-as.numeric(rownames(d.data)) d.gew[t.auswahl,1]<-d.data[,1] # Anteil ausserhalb n.total<-sum(d.gew$n_real) n.row<-nrow(d.gew) a.u <- 100*d.gew[1,1]/n.total a.o <- 100*d.gew[16,1]/n.total a.total<-a.u+a.o # MA - Grenzen t.vo<-c(0,150,175,200,225,250,275,300,325,350,375,400,425,450,475,500) t.bi<- c(150,175,200,225,250,275,300,325,350,375,400,425,450,475,500,999) d.gew$von<-t.vo d.gew$bis<-t.bi # Anteile neu berechnen options(digits=9) d.gew$p_real<-d.gew$n_real/n.total # Anteile neu berechnen # kumulierte Anteile d.gew[,“pk_real“]<- cumsum(d.gew[,“p_real“]) # 1. kumulierter Anteil = 1. Anteil d.gew$n_est <- rep(0,16) d.gew$p_est <- rep(0,16) d.gew$pk_est <- rep(0,16) # Startwerte der Approximation breite.class=d.gew[2,]$bis -d.gew[2,]$von # Klassenbreite parm.start<-c(shape.gamma,rate.gamma) # 3. Anpassung # 3.a) Parameter schätzen t.bis<-1:n.row t.von<-1:n.row res.opt<- optim(parm.start,f.chisqg) # ,control=list(trace=1,reltot=10^ (-320))) shape.est<-res.opt$par[1] rate.est<-res.opt$par[2] m4.est<-shape.est/ rate.est 49/50 v4.est<-shape.est*(1/ rate.est)^2 s4.est<-v4.est^.5 # Quantile geschätzt d.gew[,“pk_est“]<-pgamma(c(d.gew[-n.row,“bis“],Inf),shape=shape.est,rate=rate.est) # Resultate in Ausgangstabelle übertragen d.gew[n.row,“pk_est“]<-1 # Quantil k = 100 % d.gew[,“p_est“]<-c(d.gew[1,“pk_est“],diff(d.gew[,“pk_est“])) d.gew[,“n_est“]<- n.total*d.gew[,“p_est“] # nur „ganze“ Tiere möglich d.gew[,“diff“]<-(d.gew[,“n_real“]-d.gew[,“n_est“])^2/d.gew[,“n_est“] # Qualitätskontrolle durch quadrierte Abweichung zwischen theoretischen und beobachteten Quantilen t.Test<-sum(d.gew[,“diff“]) # ungewichtet # 3.b) Mittelwert und Varianz interpolieren m.struc<-matrix(data=1:1000,nrow=n.row,ncol=1000,byrow=TRUE) # Strukturmatrix t.space<-as.matrix(d.gew[,“bis“]-d.gew[,“von“])/1000 # Breite der n.row * 1000 Stufen m.von<- t.space[1:n.row,]*(m.struc[1:n.row,]-1) # unteres Subklasseninkrement m.bis<-t.space[1:n.row,]*m.struc[1:n.row,] # oberes Subklasseninkrement m.vong<-m.von+d.gew[,“von“] # unteres Gewicht m.bisg<-m.bis + d.gew[,“von“] # oberes Gewicht m.pkvon<-pgamma(m.vong,shape=shape.est,rate=rate.est) # Wahrscheinlichkeit kum. unten m.pkbis<-pgamma(m.bisg,shape=shape.est,rate=rate.est) # Wahrscheinlichkeit kum. oben m.mean<-(m.vong+m.bisg)/2 # mittleres Gewicht m.prob<-m.pkbis-m.pkvon # mittlere Wahrscheinlichkeit m.probrow<- as.matrix(apply(m.prob,1,sum)) # Wahrscheinlichkeit der Klasse=Zeile m.wmean<-m.mean[1:n.row,]*m.prob[1:n.row,] # gewichtete Mittel m.wmeanrow<-as.matrix(apply(m.wmean,1,sum)) # gewichtetes Klassenmittel row.mean <-as.matrix(m.wmeanrow[1:n.row,]/m.probrow[1:n.row,]) # Klassenmittel absolut d.gew[,“m3“]<-row.mean m3.est<- t(row.mean) %*% as.matrix(d.gew[,“n_real“]) / sum(d.gew[,“n_real“]) # Gesamtmittel als Klassenmittel # gewichtet mit den tatsächlichen Anzahlen in den Klassen m3.est m.var<-(m.mean-matrix(m3.est,ncol=1000,nrow=n.row))^2 # Varianz pro Subklasse m.varw<-m.var * m.prob m.varwrow<-as.matrix(apply(m.varw,1,sum)) m.varwabs<-as.matrix(m.varwrow / m.probrow) v3.est<- t(m.varwabs) %*% as.matrix(d.gew[,“n_real“]) / sum(d.gew[,“n_real“]) # Gesamtmittel als Klassenmittel res.sim=data.frame(run=i,xgattung=“KV“,m.theo=m.gamma,v.theo=v.gamma,m.eff=m.eff, v.eff=v.eff,m3=m3.est,v4=v4.est,n=n.total,unten=a.u,oben=a.o,ausserhalb=a.total,T=t.Test) res.tot<-rbind(res.tot,res.sim) res.tot } # Ausgabe r.v<-res.tot[-1,] r.v$run<-1:dim(r.v)[1] r.v$vi<-qt(0.975,n.total-1)*(r.v$v4/11*12/r.v$n)^.5 r.v$vipr<-r.v$vi*(1/(1-r.v$ausserhalb/100))^2 # Output in zwei Dateien und Anzeige des gesamten Resultat-Dataframes sink(„M:\\res1.txt“);r.v[,1:7];sink();sink(„M:\\res2.txt“);r.v [,8:14];sink() # alle Daten # d.gew # t(res.tnew) # res.t 50/50