Тема основана на прогнозе президентского опроса. Вопрос, на который необходимо ответить, дан ниже: Вопросы, на которые необходимо ответить, следующие. Меня больше всего интересует второй вопрос:
** Вопрос 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