【问题标题】:R For loop - estimates and values for forecastingR For循环 - 预测的估计值和值
【发布时间】:2021-12-31 19:40:59
【问题描述】:

我正在尝试根据我的估计和实际值进行一些回归预测。我有以下

估计=s1$系数[,1]
values = data.frame(cbind(sd_rgdpg,DISSIM,TRADE,SIZE,OPEN,TF,INFL,INT,NIIP))

估计值是我的系数,值是我的实际值。 'estimates' 是一个以截距为第一项的 10 向量。 'values' 是一个有 9 列和 21 行的数据框。列的变量对应于估计的行。我需要将变量估计值和值相乘以形成一个方程,例如 y = intercept + b1x1+b2x2+...+b9x9。

我不太确定如何在 forloop 中执行此操作,有人可以帮我吗?

这是“值”数据框:


sd_rgdpg
<dbl>
DISSIM
<dbl>
TRADE
<dbl>
SIZE
<dbl>
OPEN
<dbl>
TF
<dbl>
INFL
<dbl>
INT
<dbl>
NIIP
<dbl>
0.3905156169    0.39590508  0.00000000  0.0000000000    2.629159    0.5474359   -0.40   1.43    -13.68144000
1.4482896523    0.37227806  0.03102011  0.0007919784    2.493771    0.5837563   -0.07   0.16    1.19404188
0.1698460561    0.35884028  0.10907448  0.0386795080    2.342112    0.6075000   0.22    -0.76   0.93052249
0.0020363597    0.04812418  0.24478591  0.0856910910    2.085918    0.6554404   -0.40   -1.22   0.94020757
0.3148110593    0.02315404  0.28936211  0.1649356627    2.094957    0.6589744   -3.16   -1.88   0.85515135
0.0279017603    0.02906603  0.31283051  0.2369223964    2.033051    0.6938776   -1.29   -1.36   0.57801452
0.0192319055    0.05513982  0.35421769  0.3050570794    2.137967    0.8312958   -0.02   -0.85   0.34994832
0.0358535769    0.07426063  0.48108389  0.4014364697    2.326611    0.8333333   -1.50   -0.35   -0.11022762
1.4919556927    0.05297878  0.60639908  0.4873392510    2.608321    0.8096886   -5.94   -0.76   -0.49419490
1.6980146354    0.03063955  0.75594659  0.5018749374    2.795147    0.8380282   1.27    -0.25   -0.28853577

1-10 of 21 rows | 1-5 of 9 columns

这里是“估计”

 (Intercept)      sd_rgdpg         TRADE          OPEN 
-1.048798e-04 -7.023954e-06  5.159287e-06  2.467633e-04 
       DISSIM          SIZE            TF          INFL 
-5.867023e-04 -3.927840e-04 -3.241606e-04 -2.520122e-05 
          INT          NIIP 
 1.668813e-06  8.409097e-06 

【问题讨论】:

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: r for-loop


【解决方案1】:

回想一下,您的系数是一个向量,而您的值是一个矩阵。因此,您的结果 y 也是一个向量。你不需要 for 循环。举个例子:

intercept <- -1.05
coef <- c(-7.02, 5.16, 2.47,-5.87,-3.93,-3.23,-2.52, 1.67, 8.41)
values <- matrix(runif(27), ncol = 9) # values is a matrix with 9 columns and 3 rows of Unif[0,1] values as an example

那你就可以了

> intercept + rowSums(coef * values)
[1] -30.385560   3.734984   3.262591

但在训练回归模型后,例如使用lm.fit() 函数,您通常会使用predict() 函数来产生结果。

【讨论】:

    猜你喜欢
    • 2016-04-24
    • 1970-01-01
    • 2018-05-31
    • 2018-08-25
    • 2022-01-05
    • 1970-01-01
    • 2021-02-02
    • 2019-11-30
    • 1970-01-01
    相关资源
    最近更新 更多