将多个回归模型的输出和测试结果合并到一个csv文件中

时间:2019-01-06 22:00:27

标签: r

我已经对回归器的各种组合进行了循环多元回归(这些合计有25个模型)。这些模型中每个模型的摘要输出已保存在列表列表中。列表的每个组成部分都是一次回归的摘要输出-本身就是一个列表。

对于每个回归模型,我都执行了Durbin Watson检验,Breusch Godfrey检验,Breusch Pagan检验和Shapiro Wilk检验。这些测试的拟合度和输出摘要已保存在各自的csv文件中,其中每个csv文件都包含一个接一个的25个模型的全部测试结果。

实际上,我更喜欢将每个模型的汇总输出和所有测试的结果存储在一个文件中,就像这样:-

模型摘要输出–模型1

Durbin-Watson检验–适用于模型1

Shapiro-Wilk正态性检验–模型1

模型摘要输出–模型2

Durbin-Watson检验–模型2

Shapiro-Wilk正态性检验–模型2

这些命令会生成相关文件,其中包含所有25个模型的相关测试结果

filename1 <- "mytestfileFinal.csv"
for (i in 1:length(modelfits1)) {
    testoutput <- summary(modelfits1[[(i)]])
    capture.output(testoutput, file = filename1, append = TRUE)
}

输出如下:-

  

使用“动物园”数据进行时间序列回归:开始= 2016-10-03,结束=   2017-03-31

     

致电:dynlm(formula = as.formula(modelformula1))

     

残差:       最小值1Q中位数3Q最大值   -5308.9 -1110.4 -29.1 1130.9 6036.2

     

系数:                                         估计标准误差t值Pr(> | t |)(拦截)-4.51086 141.70680   -0.032 0.9746 as.zoo(dtempxts_1610_1703)-168.43261 41.65874 -4.043 7.89e-05 * L(as.zoo(dusagexts_1610_1703),1:1)-0.12407 0.07438 -1.668 0.0971。 L(as.zoo(dtempxts_1610_1703),1:1)26.23201 44.00455 0.596 0.5519 as.zoo(cointresL1)
  -0.21260 0.05154 -4.125 5.73e-05
  --- Signif。代码:0‘ ’0.001‘’0.01‘*’0.05。’0.1‘’1

     

残余标准误差:175个自由度上的1901倍数   R平方:0.1812,调整后R平方:0.1625 F统计量:9.68   4和175 DF,p值:4.275e-07

     

使用“ zoo”数据进行时间序列回归:开始= 2016-10-04,结束=   2017-03-31

     

致电:dynlm(formula = as.formula(modelformula1))

     

残差:       最小值1Q中位数3Q最大值   -5358.0 -1130.5 -48.5 1138.8 6016.9

     

系数:                                         估计标准误差t值Pr(> | t |)(拦截)-2.05255 142.86944   -0.014 0.988554 as.zoo(dtempxts_1610_1703)-163.37609 44.66815 -3.658 0.000338 * L(as.zoo(dusagexts_1610_1703),1:1)-0.12522 0.07515 -1.666 0.097504。 L(as.zoo(dtempxts_1610_1703),1:2)1 30.06316 46.02972 0.653 0.514543
  L(as.zoo(dtempxts_1610_1703),1:2)2 12.47362 45.30022 0.275   0.783373 as.zoo(cointresL1)-0.21473 0.05245 -4.094 6.5e-05
  --- Signif。代码:0‘ ’0.001‘’0.01‘*’0.05。’0.1‘’1

     

残差标准误差:173自由度上的1911倍数   R平方:0.1818,调整后R平方:0.1581 F统计量:7.687开   5和173 DF,p值:1.501e-06

filename1 <- "mytestfile_st.csv"
for (i in 1:length(modelfits1)) {
    stoutput <- shapiro.test(modelfits_res[[i]]$residuals)
    capture.output(stoutput, file = filename1, append = TRUE)
}
  

输出如下:-Shapiro-Wilk正态性检验

     

数据:modelfits_res [[i]] $残差W = 0.99192,p值= 0.4316

     

Shapiro-Wilk正态性检验

     

数据:modelfits_res [[i]] $残差W = 0.98642,p值= 0.07991

filename1 <- "mytestfile_dwt.csv"
for (i in 1:length(modelfits1)) {
    dwtoutput <- dwtest(modelfits1[[i]])
    capture.output(dwtoutput, file = filename1, append = TRUE)
}
  

输出如下:-杜宾·沃森测试

     

数据:modelfits1 [[i]] DW = 2.094,p值= 0.7247替代   假设:真正的自相关大于0

     

Durbin-Watson检验

     

数据:modelfits1 [[i]] DW = 2.0239,p值= 0.5517替代   假设:真正的自相关大于0

我尝试了下面的代码(仅用于测试1个模型)来实现我试图做的事情,但这没用。

filename1 <- "mytestfile_alltest.csv"
for (i in 1: 1)) {
    stoutput <- shapiro.test(modelfits_res[[i]]$residuals)
    dwtoutput <- dwtest(modelfits1[[i]])
    fulloutput <- cat(stoutput, dwtoutput, sep = "\n")
    capture.output(fulloutput, file = filename1, append = TRUE)
}

我的代码的实际输出无效:-

  

以上代码的输出如下:-

     

[1]“ c(W = 0.986424495866567)\ nc(DW = 2.09395526077259)”
  “ 0.0799081371360976 \ nDurbin-Watson检验”
  [3]“ Shapiro-Wilk正态性检验\ ntrue自相关大于   0“” modelfits_res [[i]] $ residuals \ n0.724719582360738“
  [5]“ c(W = 0.986424495866567)\ nmodelfits1 [[i]]”

0 个答案:

没有答案