Kovarianzanalyse R-Studio

Alles zum Thema der beschreibenden Statistik

Moderator: jogo

Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Kovarianzanalyse R-Studio

Beitrag von EDi »

anbei:
:idea: Und jetzt solöen wir da eine OCR über den Screenshot laufen lassen um den Code zu extrahieren. :?:

Oder sollen wir das abtippen?

Ich verstehe ehrlich gesagt auch nicht das Problem / die Frage. Wo hängt es bei dir?

Regression und Varianzanalyse sind ja vom Model her das gleiche...
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.
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Kovarianzanalyse R-Studio

Beitrag von bigben »

@EDi Wenn Du das abgetippt oder ge-OCRt hast, kannst Du mit dann ein .norm File davon schicken?

Für alle, die das .norm-Format noch nicht kennen, hier sind die Specs.
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Kovarianzanalyse R-Studio

Beitrag von bigben »

Jasmin hat geschrieben: Do Feb 25, 2021 11:24 pmSorry ich verzweifel momentan an der Varianzanalyse - lineare Regression hat ohne
Wie hast Du das Problem der Gruppenzusammenfassung denn bei der Regression gelöst?
EDi hat geschrieben:Regression und Varianzanalyse sind ja vom Model her das gleiche...
Nicht nur vom Modell, auch von der Syntax in R extrem ähnlich.
Ist es möglich, dass ich die Varianzanalyse mit den beiden Datensätzen berechne?
Wie würde das denn einher gehen mit
Mein Betreuer sagte mir noch, dass ich die Variablen Ernährung N 1,2,3 umkodieren solle?
Zusatztipp: Gruppenvariable erstellen, siehe z. B. hier: viewtopic.php?p=11051#p11051
Leider werde ich hieraus nicht schlau
Das ist ein Thread in dem eine Handvoll Möglichkeiten vorgestellt werden, wie man die angeforderte Umcodierung, d. h. das Zusammenfassen der Kategorien 1 und 2 zu einer gemeinsamen fleischlos-Kategorie, anstellen kann. Wenn das zuviel auf einmal ist, dann les Dir wenigsten den Beitrag durch, der mit "Die Funktion ifelse scheint immer dann, wenn eine binäre Entscheidung gefragt ist" anfängt durch. Bei Dir ist ja eine binäre Entscheidung fleischlos/fleischhaltig gefragt.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Jasmin
Beiträge: 8
Registriert: Mo Feb 22, 2021 4:03 pm

Re: Kovarianzanalyse R-Studio

Beitrag von Jasmin »

Guten morgen,
Wie hast Du das Problem der Gruppenzusammenfassung denn bei der Regression gelöst?
In der Regression habe ich die Variable Ernährung nicht miteinbezogen, sondern dort habe ich zwei andere Variablen berechnet, die auf das Tierwohl "wirken". Da musste ich quasi nichts "umkodieren".
Mein Problem ist bei der Varianzanalyse, dass ich mich schwer tue, die Variable Ernährung in vegetarisch (N1) und vegan(N2) zusammenzufassen und das dann mit Ernährung ohne Einschränkung (N3) zu vergleichen.
Deshalb habe ich 2 Datensätze erstellt (einer mit N1 + N2 auf das Tierwohl und einer mit N3 und Tierwohl und ich dachte, dass ich die beiden in der Varianzanalyse kombinieren könnte?
Wie würde das denn einher gehen mit "Mein Betreuer sagte mir noch, dass ich die Variablen Ernährung N 1,2,3 umkodieren solle?"
Das "umkodieren" ist ja scheibar nur ein zusammenfassen der Variablen N1+N3?
Das ist ein Thread in dem eine Handvoll Möglichkeiten vorgestellt werden, wie man die angeforderte Umcodierung, d. h. das Zusammenfassen der Kategorien 1 und 2 zu einer gemeinsamen fleischlos-Kategorie, anstellen kann. Wenn das zuviel auf einmal ist, dann les Dir wenigsten den Beitrag durch, der mit "Die Funktion ifelse scheint immer dann, wenn eine binäre Entscheidung gefragt ist" anfängt durch. Bei Dir ist ja eine binäre Entscheidung fleischlos/fleischhaltig gefragt.
Danke, ich hatte mir den Beitrag angeschaut, aber ich wusste nicht, welches Vorgehen für mich relevant ist, dann werde ich die "ifelse" Funktion mal probieren


Hier hoffentlich der brauchbare Datensatz:

str(DatensatzVarianz)
'data.frame': 150 obs. of 2 variables:
$ Tierwohl : int 10 4 7 10 5 10 10 3 7 10 ...
$ Ernaehrung: int 3 3 3 3 3 3 3 3 3 1 ...


dput(DatensatzVarianz)
structure(list(Tierwohl = c(10L, 4L, 7L, 10L, 5L, 10L, 10L, 3L,
7L, 10L, 9L, 7L, 8L, 10L, 9L, 3L, 9L, 10L, 10L, 8L, 10L, 6L,
10L, 5L, 9L, 10L, 10L, 10L, 10L, 5L, 8L, 8L, 8L, 10L, 10L, 10L,
7L, 7L, 0L, 6L, 10L, 7L, 9L, 10L, 6L, 8L, 10L, 0L, 10L, 10L,
8L, 10L, 10L, 8L, 8L, 8L, 4L, 8L, 10L, 8L, 10L, 10L, 6L, 10L,
5L, 8L, 8L, 4L, 10L, 8L, 10L, 3L, 10L, 10L, 7L, 10L, 10L, 10L,
8L, 7L, 10L, 10L, 8L, 8L, 10L, 3L, 10L, 6L, 3L, 10L, 8L, 0L,
8L, 8L, 10L, 7L, 0L, 9L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 8L,
3L, 5L, 10L, 8L, 6L, 10L, 7L, 8L, 10L, 5L, 7L, 10L, 5L, 10L,
10L, 10L, 8L, 10L, 5L, 7L, 8L, 10L, 10L, 10L, 10L, 10L, 10L,
10L, 7L, 8L, 10L, 10L, 10L, 9L, 10L, 8L, 8L, 9L, 10L, 10L, 5L,
10L, 10L, 5L), Ernaehrung = c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 3L, 2L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 1L, 3L, 3L, 1L, 3L, 3L, 1L, 1L, 3L, 3L, 2L,
3L, 3L, 1L, 3L, 3L, 3L, 3L, 3L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 1L, 3L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 1L, 3L, 3L, 1L, 3L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L,
2L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 2L, 3L, 1L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L)), row.names = c(NA,
-150L), class = "data.frame")


sessionInfo()
R version 4.0.3 (2020-10-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19042)

Matrix products: default

locale:
[1] LC_COLLATE=German_Germany.1252 LC_CTYPE=German_Germany.1252 LC_MONETARY=German_Germany.1252 LC_NUMERIC=C
[5] LC_TIME=German_Germany.1252

attached base packages:
[1] stats graphics grDevices utils datasets methods base

other attached packages:
[1] psych_2.0.12 reshape2_1.4.4 car_3.0-10 lmtest_0.9-38 zoo_1.8-8 effects_4.2-0 carData_3.0-4 gplots_3.1.1
[9] mosaic_1.8.3 ggridges_0.5.3 mosaicData_0.20.2 ggformula_0.10.1 ggstance_0.3.5 dplyr_1.0.4 Matrix_1.2-18 ggplot2_3.3.3
[17] lattice_0.20-41

loaded via a namespace (and not attached):
[1] nlme_3.1-149 bitops_1.0-6 insight_0.13.0 tools_4.0.3 backports_1.2.1 R6_2.5.0 KernSmooth_2.23-17
[8] DBI_1.1.1 colorspace_2.0-0 nnet_7.3-14 withr_2.4.1 mnormt_2.0.2 tidyselect_1.1.0 gridExtra_2.3
[15] leaflet_2.0.4.1 curl_4.3 compiler_4.0.3 ggdendro_0.1.22 mosaicCore_0.9.0 caTools_1.18.1 scales_1.1.1
[22] readr_1.4.0 stringr_1.4.0 digest_0.6.27 foreign_0.8-80 minqa_1.2.4 rio_0.5.16 pkgconfig_2.0.3
[29] htmltools_0.5.1.1 lme4_1.1-26 labelled_2.7.0 htmlwidgets_1.5.3 rlang_0.4.10 readxl_1.3.1 farver_2.0.3
[36] generics_0.1.0 crosstalk_1.1.1 gtools_3.8.2 zip_2.1.1 magrittr_2.0.1 Rcpp_1.0.6 munsell_0.5.0
[43] abind_1.4-5 lifecycle_1.0.0 stringi_1.5.3 yaml_2.2.1 MASS_7.3-53 plyr_1.8.6 grid_4.0.3
[50] parallel_4.0.3 ggrepel_0.9.1 forcats_0.5.1 crayon_1.4.1 haven_2.3.1 splines_4.0.3 hms_1.0.0
[57] tmvnsim_1.0-2 pillar_1.4.7 boot_1.3-25 glue_1.4.2 mitools_2.4 data.table_1.13.6 vctrs_0.3.6
[64] nloptr_1.2.2.2 tweenr_1.0.1 cellranger_1.1.0 gtable_0.3.0 purrr_0.3.4 polyclip_1.10-0 tidyr_1.1.2
[71] assertthat_0.2.1 xfun_0.21 ggforce_0.3.2 openxlsx_4.2.3 broom_0.7.5 survey_4.0 survival_3.2-7
[78] tibble_3.0.6 tinytex_0.29 statmod_1.4.35 ellipsis_0.3.1


LG
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Kovarianzanalyse R-Studio

Beitrag von bigben »

Jasmin hat geschrieben: Fr Feb 26, 2021 9:54 amHier hoffentlich der brauchbare Datensatz:
Ja, der dput-Teil ist sehr brauchbar. Damit geht dann das hier:

Code: Alles auswählen

d <- structure(list(Tierwohl = c(10L, 4L, 7L, 10L, 5L, 10L, 10L, 3L,
                            7L, 10L, 9L, 7L, 8L, 10L, 9L, 3L, 9L, 10L, 10L, 8L, 10L, 6L,
                            10L, 5L, 9L, 10L, 10L, 10L, 10L, 5L, 8L, 8L, 8L, 10L, 10L, 10L,
                            7L, 7L, 0L, 6L, 10L, 7L, 9L, 10L, 6L, 8L, 10L, 0L, 10L, 10L,
                            8L, 10L, 10L, 8L, 8L, 8L, 4L, 8L, 10L, 8L, 10L, 10L, 6L, 10L,
                            5L, 8L, 8L, 4L, 10L, 8L, 10L, 3L, 10L, 10L, 7L, 10L, 10L, 10L,
                            8L, 7L, 10L, 10L, 8L, 8L, 10L, 3L, 10L, 6L, 3L, 10L, 8L, 0L,
                            8L, 8L, 10L, 7L, 0L, 9L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 8L,
                            3L, 5L, 10L, 8L, 6L, 10L, 7L, 8L, 10L, 5L, 7L, 10L, 5L, 10L,
                            10L, 10L, 8L, 10L, 5L, 7L, 8L, 10L, 10L, 10L, 10L, 10L, 10L,
                            10L, 7L, 8L, 10L, 10L, 10L, 9L, 10L, 8L, 8L, 9L, 10L, 10L, 5L,
                            10L, 10L, 5L), Ernaehrung = c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
                                                          3L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 3L, 2L, 3L, 3L, 3L,
                                                          3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
                                                          3L, 3L, 3L, 3L, 3L, 1L, 3L, 3L, 1L, 3L, 3L, 1L, 1L, 3L, 3L, 2L,
                                                          3L, 3L, 1L, 3L, 3L, 3L, 3L, 3L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
                                                          3L, 3L, 3L, 3L, 3L, 3L, 1L, 3L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L,
                                                          3L, 1L, 3L, 3L, 1L, 3L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
                                                          3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L,
                                                          2L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 2L, 3L, 1L, 3L, 3L, 3L, 3L, 3L,
                                                          3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L)), row.names = c(NA,
                                                                                                                                  -150L), class = "data.frame")

d$gruppe <- ifelse(d$Ernaehrung == 3, yes = "alles", no = "kein Fleisch")

boxplot(d$Tierwohl ~ d$gruppe, xlab = "isst", ylab = "Tierwohl")
abline(h = 0:10, col = "grey", lty = 3)
points(d$Tierwohl ~ jitter(as.integer(as.factor(d$gruppe))), pch = 16)


varianzanalyse <- aov(d$Tierwohl ~ d$gruppe)
summary(varianzanalyse)

t.test(d$Tierwohl ~ d$gruppe)
Bei ungleichen Varianzen plus ungleichen Gruppengrößen würde ich ja eher den Welch-t-test (t-Test mit Welch-Korrektur für Varianzungleichheit) nehmen als die Varianzanalyse, aber das hat wahrscheinlich curriculare Gründe.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Jasmin
Beiträge: 8
Registriert: Mo Feb 22, 2021 4:03 pm

Re: Kovarianzanalyse R-Studio

Beitrag von Jasmin »

Hallo Bernhard,

dankeschön für deine Hilfe :)
Ich habe es nun hinbekommen und konnte meine Forschungshypothese (wie vermutet) verwerfen.

LG
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Kovarianzanalyse R-Studio

Beitrag von bigben »

Jasmin hat geschrieben: So Feb 28, 2021 3:57 pm... und konnte meine Forschungshypothese (wie vermutet) verwerfen.
Eigentlich kann man mit frequentistischer Statistik immer nur Nullhypothesen verwerfen. Insofern klingt das etwas merkwürdig. Aber gut, Du fragst einfach, wenn Du ein Problem hast.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten