Analyse von Prozentzahlen

Methoden der Zeitreihenanalyse

Moderator: schubbiaschwilli

Fledermaus
Beiträge: 25
Registriert: Di Aug 04, 2020 3:00 pm

Analyse von Prozentzahlen

Beitrag von Fledermaus »

Hallo zusammen,

ich würde gerne eine Diskriminanzanalyse durchführen und muss dafür im Vorhinein einen Beweis liefern, dass die nachfolgenden Daten sich im Zeitablauf nicht verändern.

2010 2011 2012 2013 2014 2015 2016

83,2310838445808 81,9978821037769 81,1850946854001 80,1006289308176 83,3221401387956 81,5210812991729 81,105722599418
16,7689161554192 18,0021178962231 18,8149053145999 19,8993710691824 16,6778598612044 18,4789187008271 18,894277400582

2017 2018 2019

80,2167074449493 81,4006888633754 80,0769634423649
19,7832925550507 18,5993111366246 19,9230365576351

Wie zu erkennen ist handelt es sich um Prozentzahlen, was die Sache deutlich erschwert. Folglich ist ein Chi-Quadrat-Unabhängigkeitstest nicht mehr möglich. Darüber hinaus weiß ich nicht ob der prop.test dafür geeignet ist. Meiner Meinung nach ist der nur für die Vierfeldermatrix geeignet.

Weiß jemand aus der Community was ich hier machen könnte?

Ich suche mittlerweile seit 3 Tagen nach einem geeigneten Verfahren und komme einfach nicht weiter.
Möglicherweise könnte eine Diskriminanzanalyse mit Dummys auch helfen, allerdings weiß ich nicht wie ich aus den vorliegenden Daten eine solche erstellen kann.

Ich bin dankbar für jeden Tipp.

Vielen Dank für eure Hilfe!
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Analyse von Prozentzahlen

Beitrag von bigben »

Vielleicht eine lineare Regression über die Zeit?
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Fledermaus
Beiträge: 25
Registriert: Di Aug 04, 2020 3:00 pm

Re: Analyse von Prozentzahlen

Beitrag von Fledermaus »

Ok was wäre deiner Meinung nach die abhängige Variable?
Wie würde dann der Datensatz aussehen?

Vielen Dank schon einmal :)
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Analyse von Prozentzahlen

Beitrag von bigben »

Deine Werte um 80% und Deine Werte um 20% scheinen sich je zu 100% aufzuaddieren. Beide enthalten damit gleich viel Information und es reicht, eine von beiden Reihen zu untersuchen. Im einfachsten Fall sähe das dann etwa so aus:

fleder <- structure(list(Jahr = c(2010, 2011, 2012, 2013, 2014, 2015, 2016
), Werte = c(83.2310838445808, 81.9978821037769, 81.1850946854001,
80.1006289308176, 83.3221401387956, 81.5210812991729, 81.105722599418
), KomplementaereWerte = c(16.7689161554192, 18.0021178962231,
18.8149053145999, 19.8993710691824, 16.6778598612044, 18.4789187008271,
18.894277400582)), class = "data.frame", row.names = c("V1",
"V2", "V3", "V4", "V5", "V6", "V7"))

fit <- lm(Werte ~ Jahr, data = fleder)
summary(fit)

library(ggplot2)
ggplot(fleder, aes(x=Jahr, y=Werte))+geom_point()+stat_smooth(method="lm")
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Fledermaus
Beiträge: 25
Registriert: Di Aug 04, 2020 3:00 pm

Re: Analyse von Prozentzahlen

Beitrag von Fledermaus »

Hallo Big Ben,

vielen Dank für deine Hilfe, du hast mir sehr weitergeholfen.
Du scheinst wirklich ein sehr fundiertes Wissen zu haben.

Nach Eingabe aller Daten habe ich den folgenden Output erhalten

Call:
lm(formula = Werte ~ Jahr, data = fleder)

Residuals:
Min 1Q Median 3Q Max
-1.64422 -0.57593 -0.08336 0.61824 1.79666

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 523.3257 227.5221 2.300 0.0505 .
Jahr -0.2194 0.1129 -1.942 0.0880 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.026 on 8 degrees of freedom
Multiple R-squared: 0.3204, Adjusted R-squared: 0.2355
F-statistic: 3.772 on 1 and 8 DF, p-value: 0.08804[/i][/i]


Da der p-Wert für die Variable Jahr nicht signifikant ist leite ich daraus ab, dass es keinen Einfluss der Variable auf die Werte gibt.
Ich habe in diesem Fall bewusst auf konsistente Werte zurückgegriffen. Leider ist das in anderen Zeitreihen nicht immer der Fall z.B. schwanken die Werte der nachfolgenden Zeitreihe stärker.

2010 2011 2012 2013 2014 2015 2016 2017 2018 2019
93.24 89.00 92.37 88.13 86.77 88.75 82.89 86.60 84.06 84.98
6.76 11.00 7.63 11.87 13.23 11.25 17.11 13.40 15.94 15.02

Kennst du eine Möglichkeit, wie man gezielt Jahre identifizieren kann die besonders stark abweichen um diese im Anschluss aus dem Datensatz zu eliminieren?

Vielen Dank noch einmal für deine Hilfe!
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Analyse von Prozentzahlen

Beitrag von bigben »

Hallo Fledermaus,
Fledermaus hat geschrieben: Di Aug 04, 2020 11:13 pm Da der p-Wert für die Variable Jahr nicht signifikant ist leite ich daraus ab, dass es keinen Einfluss der Variable auf die Werte gibt.
Ich habe in diesem Fall bewusst auf konsistente Werte zurückgegriffen. Leider ist das in anderen Zeitreihen nicht immer der Fall z.B. schwanken die Werte der nachfolgenden Zeitreihe stärker.

2010 2011 2012 2013 2014 2015 2016 2017 2018 2019
93.24 89.00 92.37 88.13 86.77 88.75 82.89 86.60 84.06 84.98
6.76 11.00 7.63 11.87 13.23 11.25 17.11 13.40 15.94 15.02
Diese Zeitreihe hat jetzt aber einen wirklich klaren Trend, der auch ohne Regression zu sehen ist und der mit p = .003 auch rechnerisch nicht wegzudiskutieren ist. 68% der Varianz lassen sich durch die Jahreszahl aufklären. Da jetzt einzelne Werte zu eliminieren um diese Gerade flach zu biegen wäre IMHO nicht seriös.
Kennst du eine Möglichkeit, wie man gezielt Jahre identifizieren kann die besonders stark abweichen um diese im Anschluss aus dem Datensatz zu eliminieren?
Wie gesagt, eliminieren von Daten muss immer sehr gut gerechtfertigt sein. Aber nehmen wir an, Deine wahre Zeitreihe wäre konstant und durch Messfehler etc gibt es Abweichungen davon. Eine Möglichkeit wäre es, den Durchschnitt aller Messwerte als Schätzer für den wahren Wert zu nehmen und für alle Messwerte den Abstand von diesem Wert zu bestimmen. Dann könntest Du den Wert mit der größten absoluten Abweichung eliminieren und das Verfahren von vorne starten, bis Du mit der Elimination zufrieden bist.

Übrigens ist Code hier im Forum viel besser zu lesen, wenn man Code-Tags verwendet. Sieht dann etwa so aus:

Code: Alles auswählen

ausgedacht <- data.frame(Jahr = 2010:2020,
                         Wert = c(9, 8.3, 9.1, 5, 8.7, -20, 9, 
                                  8, 8.5, 7.5, 10))

# So sehen die Werte aus
par(mfrow=c(2,1), mar = c(5,4.1,.5,.5))
plot(ausgedacht$Jahr, ausgedacht$Wert, ylab = "Wert")

# Das ist der Mittelwert
fit <- lm(Wert ~ 1, data = ausgedacht)
abline(fit, lty=2)

# Jetzt plotten wir die absolute Abweichung vom Mittelwert pro Jahr
print(abs(fit$residuals))
plot(ausgedacht$Jahr, abs(fit$residuals), type="h", ylab = "Abweichung")

# Absolute Abweichungen absteigend sortiert:
sort(abs(fit$residuals), decreasing = TRUE)
# demnach wäre Beobachtung Nr. 6 als erste zu eliminieren,
# dann nochmal alles von vorn
LG,
Bernahrd
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Fledermaus
Beiträge: 25
Registriert: Di Aug 04, 2020 3:00 pm

Re: Analyse von Prozentzahlen

Beitrag von Fledermaus »

Hallo Bernhard,

ja da hast du vollkommen recht, bei dieser Zeitreihe gibt es einen eindeutigen Trend, der nicht wegzudiskutieren ist.
Mal schauen wie ich das bei meinen übrigen Kategorien mache.

Ich bin mittlerweile einen Schritt weiter mit meiner Auswertung und führe die angesprochene Diskriminanzanalyse durch.

Eine Voraussetzung für diese ist die multivariante Normalverteilung.
Bislang kann ich diese nur durch den nachfolgenden Befehl und damit durch beschreibende Statistik belegen.

Code: Alles auswählen

library(ggplot2); library(GGally)
ggally_mysmooth <- function(data, mapping, ...){
ggplot(data = data, mapping=mapping) +
geom_density(mapping = aes_string(colour=variablen[1]), fill=NA)}
ggpairs(data2, columns=match(variablen[-1],names(data2)), diag = list(continuous = ggally_mysmooth), ggplot2::aes_string(colour=variablen[1]))
Weißt du wie man bei dem nachfolgenden Datensatz die multivariante Normalverteilung nachweisen kann?

Kategorie_1 Kategorie_2 Kategorie_3 Kategorie_4 Kategorie_5
6,61420273561926 7,17631628255574 6,98894510024358 3,16657298107551 2,88551620760727
7,10882408995617 6,82294644558796 7,94739851343625 7,03259005145798 2,66819134743663
7,37593473827328 7,73283480625425 9,22841604350782 5,7443915703603 3,11012916383413
8,61814967589865 8,01414260459635 9,79670005892752 5,27401296405421 3,34413671184443
10,0799796876984 7,97257839278913 8,65811857306081 5,43354068807922 2,81833185222801
11,0995610995611 8,11965811965812 7,57680757680758 5,7981057981058 2,72580272580273
12,9813514168079 7,82271736497941 7,18091547590216 6,18793896827319 2,34923710341487
14,0708915145005 9,40446353980189 6,77885189163385 7,05334765485141 2,30337749134742
13,0896226415094 9,02777777777778 6,22379454926625 7,84853249475891 2,30607966457023
13,845563794426 9,12810023012018 6,1493224239325 7,55561237535157 2,18614165175147

Ich habe es mal mit den Code Tags versucht, hoffentlich hat es geklappt :).

Vielen Dank schon einmal.

Liebe Grüße
Tobi
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Analyse von Prozentzahlen

Beitrag von bigben »

Fledermaus hat geschrieben: Do Aug 06, 2020 1:21 pmIch habe es mal mit den Code Tags versucht, hoffentlich hat es geklappt :).
Für den Code hat es gut geklappt - für die Tabelle mit Zahlen kannst Du die auch gut nutzen,

Weißt du wie man bei dem nachfolgenden Datensatz die multivariante Normalverteilung nachweisen kann?
Damit kenne ich mich nicht aus, aber das hier sieht vielversprechend aus:
https://cran.r-project.org/web/packages ... es/MVN.pdf
ausführlicher, dafür auch zitierfähig: https://journal.r-project.org/archive/2 ... rarsiz.pdf

alternativ:
https://cran.r-project.org/web/packages/mvnormtest/

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Analyse von Prozentzahlen

Beitrag von EDi »

Weißt du wie man bei dem nachfolgenden Datensatz die multivariante Normalverteilung nachweisen kann?
Ich würde sagen, die gibt es in der Realität nicht...
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Fledermaus
Beiträge: 25
Registriert: Di Aug 04, 2020 3:00 pm

Re: Analyse von Prozentzahlen

Beitrag von Fledermaus »

Hallo zusammen,

vielen Dank für eure Beiträge.
Ich würde gerne eine weitere Analyse durchführen und habe hierfür auch schon einen entsprechenden Datensatz konzipiert.

Ich untersuche die Preise von zwei Tante-Emma-Läden (in der Tabelle Anbieter genannt) in einer Stadt und wie sich diese im Zeitablauf veränderten.
Hierfür habe ich die Preise 6 verschiedener Kategorien erfasst.

Code: Alles auswählen

           Kategorie Anbieter X2000 X2001 X2002 X2003 X2004 X2005 X2006 X2007 X2008 X2009
1          Kaugummis        1  2.27  2.36  2.40  2.58  2.66  2.49  2.79  2.70  2.83  2.83
2          Kaugummis        2  1.99  2.04  1.90  2.02  2.04  2.04  1.95  2.17  2.04  2.25
3           Duschgel        1  2.16  2.63  2.43  3.07  2.79  3.27  3.37  3.58  3.05  3.24
4           Duschgel        2  1.86  1.83  1.72  1.80  1.76  1.71  2.03  1.98  2.06  1.67
5  Vitamin-Tabletten        1  2.19  2.21  2.30  2.30  2.44  2.49  2.72  2.51  2.70  2.85
6  Vitamin-Tabletten        2  1.75  1.79  1.79  1.87  1.79  1.93  1.99  1.92  2.07  2.00
7               Brot        1  1.73  1.73  1.75  1.88  1.91  2.28  2.01  2.01  1.93  2.02
8               Brot        2  1.48  1.40  1.47  1.45  1.45  1.48  1.63  1.59  1.54  1.50
9             Schere        1  2.40  2.02  2.12  2.21  2.25  2.20  2.88  2.23  2.59  2.68
10            Schere        2  1.51  1.71  1.64  1.76  1.78  1.74  1.79  1.77  1.92  1.82
11         Haarspray        1  2.19  2.36  2.32  2.37  2.22  2.55  2.57  2.53  2.58  2.72
12         Haarspray        2  2.01  1.94  1.86  2.07  2.01  2.00  2.29  2.12  2.09  2.09
Ich würde gerne untersuchen ob die Preise der Kategorien unterschiedlich stark steigen beim Vergleich von Tante-Emma-Laden 1 und Tante-Emma-Laden 2.

Natürlich wäre hier eine lineare Regression möglich, aber auch eine Diskriminanzanalyse erscheint mir möglich.
Was habt ihr für Ideen?

Liebe Grüße
Tobi
Antworten