Ich habe einen Datensatz, der mehrere Umfragen mit verschiedenen Ländern über Jahre hinweg kombiniert. Meine abhängige Variable (lrparty) ist die ideologische Position einer Partei (von 0 bis 10) nach Umfrageteilnehmern. Ich habe mehrere unabhängige Variablen wie Alter, Geschlecht, Bildung, Parteinahme und Einkommen der Befragten.Bayesian Ordered Logit - Versuch, vorhergesagte y im Zeitverlauf basierend auf einem modalen Individuum zu berechnen
Dann würde ich für jede Partei und jede Umfrage die vorhergesagten Werte von lrparty gemäß dem modalen Individuum planen (zB Befragter mit Alter = 31, weiblich = 1, Bildung = 2, Einkommen = 2, und Partisan = 1) im Laufe der Zeit. Der Graph würde also wie folgt aussehen: x-Achse = Jahre; y-Achse = vorhergesagte Werte von lrparty gemäß dem modalen Individuum.
In Summe sind dies die Stufen von dem, was ich zu tun versuchen: 1. Schätzung des Modells: bestellt logit der Platzierung der Partei (lrparty), des Geschlechts regredieren, Alter, Bildung, Einkommen und Parteilichkeit von Befragten.
Hintere Züge nehmen.
Predict Platzierung der Partei für die modale Befragten (zB 500 Unentschieden)
Dann erwarte ich einen Datensatz zu haben, die wie folgt aussehen sollte: Jahr, Umfrage, Land, Party (cmp Code),% fehlende Platzierungen, x1: x500 (aus den Zeichnungen)
Aus diesem Datensatz würde ich meine Plots generieren. Zum Beispiel für UK, nach Umfrage CSES.
Um es herauszufinden, den Code aus, begann ich nur eine Umfrage (CSE), ein Land (uk), und eine Partei (Konservative) mit, wie Sie unten in meinem Code zu sehen. Aber ich weiß nicht, wie ich von der Stelle, an der ich bin, in den Code zu der Handlung komme, die ich will (oben beschrieben).
library(rstan)
library(tidyverse)
library(brms)
library(ggplot2)
library(ggthemes)
library(ggmcmc)
## Data:
load("pbrands.RData")
## Keeping only country = uk; survey = cses; party = conservatives
uk_cses_con = pbrands %>%
select(lrparty, female, age, education, income, partisan, year, survey,
country, cmp, party_name_short, party_name_english, lrs) %>%
filter(survey == "cses") %>%
filter(country == "uk") %>%
filter(cmp == 51620)
## Conducting a Bayesian ordered logit model
fit <- brm(lrparty ~ age + income + education + female + partisan,
data = uk_cses_con, family = "cumulative", chains = 4, iter = 1000)
## Trace and Density Plots for MCMC Samples
plot(fit)
## Posterior Predictive Checks
pp_check(fit)
## Getting variables' modes:
getmode <- function(v) {
uniqv <- unique(v)
uniqv[which.max(tabulate(match(v, uniqv)))]
}
getmode(uk_cses_con$age)
getmode(uk_cses_con$female)
getmode(uk_cses_con$education)
getmode(uk_cses_con$income)
getmode(uk_cses_con$partisan)
## Creating the data frame for the modal individual
newavg <- data.frame(age = 31, female = 1, education = 2, income = 2,
partisan = 0, years = uk_cses_con$year)
## predict response for new data
pred <- predict(fit, newdata = newavg)
# extract posterior samples of population-level effects
samples1 <- posterior_samples(fit)
## Display marginal effects of predictors
marginal <- marginal_effects(fit)
## Plot predicted lrparty (my dependent variable) over time (with error:
confidence interval) based on the modal respondent (age = 31, female = 1,
education = 0, income = 0, partisan = 0)
##?
Vielen Dank im Voraus!