Прогнозирование опроса с использованием R - PullRequest
0 голосов
/ 27 октября 2019

Тема основана на прогнозе президентского опроса. Вопрос, на который необходимо ответить, дан ниже: Вопросы, на которые необходимо ответить, следующие. Меня больше всего интересует второй вопрос:

** Вопрос 1 **

Мы начнем с использования рыночных цен за день до выборов, чтобы предсказать исход выборов 2008 года. Для этого подгруппируйте данные таким образом, чтобы они содержали рыночную информацию для каждого штата и кандидата только за день до выборов. Обратите внимание, что в 2008 году день выборов был 4 ноября. Мы сравниваем цены закрытия для двух кандидатов в данном штате и классифицируем кандидата, чей контракт имеет более высокую цену, как предполагаемого победителя этого штата. Какие штаты были классифицированы неправильно?

** Код решения вопроса 1 **

intrade08 = read.csv("intrade08.csv")
pres08 = read.csv("pres08.csv")
intresults08 = merge(intrade08, pres08, by = "state")
intresults08$margin = intresults08$Obama - intresults08$McCain
intresults08$day = as.Date(intresults08$day)
intresults08$DaysToElection = as.Date("2008-11-04") - intresults08$day
intresults08$price_margin = intresults08$PriceD - intresults08$PriceR
poll_pred = rep(NA,51)
st.names = unique(intresults08$statename)
names(poll_pred) = as.character(st.names)

for(i in 1:51){
  state_data = subset(intresults08, subset = (statename == st.names[i]))
  last_day = subset(state_data, DaysToElection == (DaysToElection == 1))
  poll_pred[i] = mean(last_day$price_margin)
}

misclass = pres08$state.name[sign(poll_pred) != sign(pres08$margin)]
misclass

** Вопрос 2 **

Как прогнозы основываются на ставкахрынки меняются со временем? Используйте процедуру классификации, как указано выше, в каждый из последних 90 дней кампании 2008 года, а не только за день до выборов. (Подсказка: используйте цикл.) Составьте прогнозируемое число голосов избирателей на выборах кандидата от Демократической партии за этот 90-дневный период. Результирующий график должен также указывать день выборов и фактический результат выборов.

** Код решения вопроса 2 попробуйте **

ob = mc = rep(0,90)
for (i in 1:90){
  polls_day = subset(intresults08, DaysToElection == (DaysToElection <= 90-i+1)) 
  for (j in 1:51){
    state_data = subset(polls_day, statename == st.names[j])
    obama_st = mean(state_data$PriceD, na.rm = T)
    Mc_st = mean(state_data$PriceR, na.rm = T)
    if(obama_st > Mc_st){
      ob[i] = ob[i] + EV[statename[j]]

    }
    else if(obama_st < Mc_st){
      mc[i] = mc[i] + EV[statename[j]]
    }
    else{
      ob[i] = ob[i] + ev[statename[j]] / 2
      mc[i] = mc[i] + ev[statename[j]] / 2
    }
  }
}

plot(90:1, ob, type = 'l', col = 'blue',
     xlab = 'Days to the election', ylab = 'Electoral votes')

Не похоже, что это правильно, так какпрогноз не меняется со временем. Пожалуйста помоги. Наборы данных можно найти по следующим ссылкам:

https://github.com/kosukeimai/qss/tree/master/PREDICTION

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...