【问题标题】:Two R Error Messages When Attempting To Predict Via Single Index Model尝试通过单索引模型进行预测时出现两个 R 错误消息
【发布时间】:2016-02-10 20:22:36
【问题描述】:

我正在尝试使用单一指数模型来估计 3 只股票和 TSX 的 alpha beta 和 sigma2_ei。这是我当前的 R 代码

导入数据

setwd("~/Desktop/R Data Sets") Ass2Data1 <- read.csv("~/Desktop/R Data     Sets/Ass2DataSheet1.csv") View(Ass2Data1)

将数据转化为矩阵形式

b <- as.matrix(Ass2Data1)

生成初始向量和矩阵

x <- rep(0,60) 
xx <- matrix(x, ncol=4, nrow=3)
stock <- rep(0,3) 
alpha <- rep(0,3) 
beta <- rep(0,3) 
mse <- rep(0,3) 
Rbar <- rep(0,3) 
Ratio <- rep(0,3)

col1 <- rep(0,3) 
col2 <- rep(0,3) 
col3 <- rep(0,3) 
col4 <- rep(0,3) 
col5 <- rep(0,3)

对指数中的每只股票进行回归并记录结果

for(i in 1:3){
alpha[i] <- lm(data=Ass2Data1,formula=Ass2Data1[,1] ~ Ass2Data1[,4]$coefficients[1])
beta[i] <- lm(data=Ass2Data1,formula=Ass2Data1[,2] ~ Ass2Data1[,4]$coefficients[2])
Rbar[i] <- alpha[i]+beta[i]*mean(b[,4])
mse[i] <-sum(lm(data=Ass2Data1,formula=Ass2Data1[,i] ~ Ass2Data1[,4])$residuals2)/(nrow(b)-2)
Ratio[i] <- (Rbar[i]/beta[i])
stock[i] <- i }

创建表格

xx <- (cbind(stock,alpha,beta,Rbar,mse,Ratio))

但是我不断收到以下错误消息:

Ass2Data1[, 4]$coefficients 中的错误:$ 运算符对原子向量无效

beta[i] * mean(b[, 4]) 中的错误:二元运算符的非数字参数

如果有人能就我在这里做错的事情指出正确的方向,我将不胜感激。

【问题讨论】:

    标签: r error-handling syntax-error regression


    【解决方案1】:

    勾选?lm,更改关闭)

    alpha[i] <- lm(data=Ass2Data1,formula=Ass2Data1[,1] ~ Ass2Data1[,4])$coefficients[1]
    beta[i] <- lm(data=Ass2Data1,formula=Ass2Data1[,2] ~ Ass2Data1[,4])$coefficients[2]
    

    更好的方法是通过coef获取系数:

    alpha[i] <- coef(lm(data=Ass2Data1,formula=Ass2Data1[,1] ~ Ass2Data1[,4]))[1]
     beta[i] <- coef(lm(data=Ass2Data1,formula=Ass2Data1[,2] ~ Ass2Data1[,4]))[2]
    

    【讨论】:

    • 嘿伙计,非常感谢现在正在存储 coef!尽管如此,仍然得到二进制运算符错误的非数字参数,但尝试使用 *.但 R 无法识别它
    • 太棒了!如果解决了您的问题,请将其标记为已回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-09
    • 2016-02-29
    • 2019-08-14
    • 2010-12-21
    • 1970-01-01
    相关资源
    最近更新 更多