我有一个名为reg的回归函数。我现在需要运行1000次,在直方图中捕获Rsquare值和t-stat。
我尝试按如下方式运行复制(取n = 5,查看结果):
SELECT salary from
(SELECT rownum ID, EmpSalary salary from
(SELECT DISTINCT EmpSalary from salary_table order by EmpSalary DESC)
where ID = nth)
报告数据类型,而不是值。
replicate(5,{
seriese=matrix( rnorm(100*1,mean=0,sd=1), 100, 1)
e <- matrix(ncol = 1, nrow = 100)
for(i in 1:100){
e[i] <- sum(seriese[1:i,1])
}
dataY <- cbind(seriese, e)
seriesa=matrix( rnorm(100*1,mean=0,sd=1), 100, 1)
x <- matrix(ncol = 1, nrow = 100)
for(i in 1:100){
x[i] <- sum(seriesa[1:i,1])
}
dataX <- cbind(seriesa, x)
#convert to ts
dataYTS=ts(dataY[,2])
dataXTS=ts(dataX[,2])
#run regression
#check summary regression
reg=lm(dataYTS~dataXTS)
},simplify=FALSE)
答案 0 :(得分:0)
R平方值不是lm
返回的列表的一部分。为此,您需要从summary.lm
列表中提取相关的叶子:
Rsq.vec <- replicate(5,{
seriese=matrix( rnorm(100*1,mean=0,sd=1), 100, 1)
e <- matrix(ncol = 1, nrow = 100)
for(i in 1:100){
e[i] <- sum(seriese[1:i,1])
}
dataY <- cbind(seriese, e)
seriesa=matrix( rnorm(100*1,mean=0,sd=1), 100, 1)
x <- matrix(ncol = 1, nrow = 100)
for(i in 1:100){
x[i] <- sum(seriesa[1:i,1])
}
dataX <- cbind(seriesa, x)
dataYTS=ts(dataY[,2])
dataXTS=ts(dataX[,2])
summary(lm(dataYTS~dataXTS) )$r.squared
}, simplify=TRUE)
然后,您可以对该对象执行hist
。你说你想要't-stat',但是这个要求还不清楚,因为即使在那个简单的模型中也有多个t统计量。也许你想要第二个系数的t统计量?,预测变量的t统计量。也可以使用summary
找到。该列表的$coefficients
叶是一个矩阵。阅读summary.lm
的帮助页面,它应该是对上述代码的简单修改。