library(ggplot2)

pov = read.table(file.path(pfadu, "poverty.df.txt"))
source(file.path(pfadu, "ggplotRegression.R"))
pov

# Inwiefern hängt in dem Datensatz pov "Brth15to17" von "PovPct" ab? 
# Bitte mit Abbildung und Statistik! Überprüfen Sie bitte auch die Voraussetzungen
# für eine lineare Regression!

plot(Brth15to17 ~ PovPct,
     data = pov)
# je höher PovPct, desto höher Brth15to17!
# aber auch signifikant?
# lineares Modell errechnen:
pov.lm = lm(Brth15to17 ~ PovPct,
            data = pov)
summary(pov.lm)
# Brth15to17 hängt signifikant von PovPct ab
# (R-squared = 0.53, F[1,49] = 56, p < 0.001)

# abbilden
# a.)entweder einfach der Abbildung oben eine abline hinzufügen:
abline(pov.lm)

# b.) oder ggplotRegression() benutzen:
ggplotRegression(pov.lm)

#ABER: dürfen wir überhaupt guten Gewissens die Daten linear modellieren?

#Drei Dinge mit den Residuen testen (die Residuen
# bezeichnen die Differenz zwischen den modellierten und den tatsächlichen y-Werten):
# 1. Normalverteilung der Residuen:
shapiro.test(resid(pov.lm))
# p-value = 0.3324, also okay, da normalverteilt

# 2. konstante Varianz:
plot(resid(pov.lm))
abline(h=0, lty=2)
# die Werte sind schön gleichmäßig um die Null-Linie herum verteilt,
# und zwar offenbar auf zufällige Weise, also --> okay

# 3. keine Autokorrelation?:
acf(resid(pov.lm))
# Die Werte bei lag 1 und 2 sind innerhalb des 
# durch die gestrichelten blauen Linien eingegrenzten 
# Vertrauensintervalls --> alles okay

# Da 1,2 und 3 okay sind, können wir das obengenante Ergebnis beibehalten

# Aufgemerkt: normalerweise testet man Voraussetzungen
# für einen statistischen Test natürlich BEVOR
# man den Test durchführt; dies ist hier aber nicht möglich,
# da man für alle drei Voraussetzungen die Residuen zwischen
# den tatsächlichen Daten und dem Modell braucht
# --> ausnahmsweise müssen also die Voraussetzungen
# erst in Nachhinein, also NACH der Modellierung, getestet werden.











