【发布时间】:2020-12-12 22:08:46
【问题描述】:
我正在使用的数据包含标准普尔 500 指数 10 股的收盘价。
数据:
> dput(head(StocksData))
structure(list(ACE = c(56.86, 56.82, 56.63, 56.39, 55.97, 55.23
), AMD = c(8.47, 8.77, 8.91, 8.69, 8.83, 9.19), AFL = c(51.83,
50.88, 50.78, 50.5, 50.3, 49.65), APD = c(81.59, 80.38, 80.03,
79.61, 79.76, 79.77), AA = c(15.12, 15.81, 15.85, 15.66, 15.71,
15.78), ATI = c(53.54, 52.37, 52.53, 51.91, 51.32, 51.45), AGN = c(69.77,
69.53, 69.69, 69.98, 68.99, 68.75), ALL = c(29.32, 29.03, 28.99,
28.66, 28.47, 28.2), MO = c(20.09, 20, 20.07, 20.16, 20, 19.88
), AMZN = c(184.22, 185.01, 187.42, 185.86, 185.49, 184.68)), row.names = c(NA,
6L), class = "data.frame")
在以下部分,我正在计算 10 股的每日百分比变化:
perc_change <- (StocksData[-1, ] - StocksData[-nrow(StocksData), ])/StocksData[-nrow(StocksData), ] * 100
perc_change
输出:
# ACE AMD AFL APD AA ATI AGN ALL MO AMZN
#2 -0.07 3.5 -1.83 -1.483 4.56 -2.19 -0.34 -0.99 -0.45 0.43
#3 -0.33 1.6 -0.20 -0.435 0.25 0.31 0.23 -0.14 0.35 1.30
#4 -0.42 -2.5 -0.55 -0.525 -1.20 -1.18 0.42 -1.14 0.45 -0.83
#5 -0.74 1.6 -0.40 0.188 0.32 -1.14 -1.41 -0.66 -0.79 -0.20
#6 -1.32 4.1 -1.29 0.013 0.45 0.25 -0.35 -0.95 -0.60 -0.44
通过上面的代码,我找到了最新的 N 个变化率(N 应该在 [1,10] 中)。 我想制作Logistic回归模型来预测第二天(N + 1)的变化,即“增加”或“减少”。
首先,我将数据分成两块:训练集和测试集:
(注意:作为testset,我必须参加测试集的最后 40 个会话,而作为trainset,我必须参加测试集的前 85 个会话!)
trainset <- head(StocksData, 870)
testset <- tail(StocksData, 40)
继续模型的拟合:
model <- glm(Here???,family=binomial(link='logit'),data=trainset)
我面临的问题是我不明白,我不知道在glm 函数中包含什么。 我研究了许多逻辑回归模型,我认为我我的数据中没有我需要放置在那里的对象。
对我的代码中的这个误解部分有什么帮助吗?
【问题讨论】:
标签: r logistic-regression non-linear-regression