Introduction

This report was automaticly generated by madis. R version is r paste(base:::version$version.string).

library(shiny)
options(digits=4,knitr.table.format='markdown')
library(reshape2);library(plotly);library(knitr);library(zoo);library(xts);library(rpart);library(partykit);library(showtext);library(ggplot2);library(rms);library(Hmisc);library(mgcv);library(stringi);library(fBasics);library(vcdExtra);library(ROCR);library(survival);library(pander);library(ggfortify);library(madis);library(prophet);library(MASS)

opts_chunk$set(echo=F,message=F,warning=F,results='asis',comment=NA,fig.showtext=TRUE,fig.width=7,fig.height=5,knitr.table.format='markdown')
load('LstMadis.RData')
reportFormat<-read.csv('formatReport.csv',stringsAsFactors = F)
## 描述性结果部分

LstMadis$desc->descParams
if(!all(is.na(descParams$xvars))){
  cat('\n')
  cat('# Descriptive results of each variable selected')
  cat('\n')

  # cat('描述性分析结果对所选择的变量进行逐一分析,定量变量视其分布是否服从正态分布,以"均值±标准差"或"中位数[25%,75%]"进行呈现,且给出分布的直方图。定性变量则给出频数表,且以条图表达。图形均以R语言ggplot2包绘制。')
  cat('\n')

  cat('\n')
  # cat('## results')
  cat('\n')
  for(i in 1:nrow(descParams)){
    cat('\n')
    cat(paste0('### ',descParams$xvars[i],' '))
    cat('\n')
    #print(pander(resDesc[[i]]$resTabDesc))
    uniVar(data=LstMadis$Data[[descParams$dataName[i]]],xvars=descParams$xvars[i],Digits=descParams$Digits[i])->res
    cat(pander::pander(res$resDesc,split.table=Inf))
    cat('\n')
    # if(reportFormat$format=='HTML'){
    #   ggplotly(res$graphDesc)
    # } else {
    plot(res$graphDesc)
    # }

    cat('\n')
  }


}





## 单因素分析结果部分

LstMadis$hTest->hTestParams
if(!all(is.na(hTestParams$xvars))){
  cat('\n')
  cat('# hypothesis test result')
  cat('\n')
  cat('\n')
  # cat('单因素分析对选择的每一个因变量和所有自变量进行逐一分析,分析方法根据变量的类型和分布自动选择,统计方法有:t检验,秩和检验,方差分析,相关性检验,卡方检验等。同时给出图形结果,图形采用R语言ggplot2包进行绘制。')
  cat('\n')
  cat('\n')

  # cat('## results')
  cat('\n')
  for(i in 1:nrow(hTestParams)){
    cat('\n')
    cat(paste0('### ',hTestParams$xvars[i],' & ',hTestParams$yvars[i],' '))
    cat('\n')
    #print(pander(resDesc[[i]]$resTabDesc))
    hTest(data=LstMadis$Data[[hTestParams$dataName[i]]],xvars=hTestParams$xvars[i],yvars=hTestParams$yvars[i],alter=hTestParams$alter[i],paired=hTestParams$paired[i],confLevel=hTestParams$confLevel[i],nullHyp=hTestParams$nullHyp[i],normalSampleSize =hTestParams$normalSampleSize[i] )->res
    cat(pander::pander(res$hTestRes,split.table=Inf))
    cat('\n')
    plot(res$hTestGraph)
    cat('\n')
  }


}



## 线性模型结果部分

LstMadis$myGlm->myGlmParms
if(!all(is.na(myGlmParms$data))){
  cat('\n')
  cat('# GLM results')
  cat('\n')
  cat('\n')
  # cat('广义线性模型的结果采用R中glm函数进行分析,结果提供全模型以及利用AIC进行变量筛选的逐步回归结果,同时提供模型的诊断图形结果。')
  cat('\n')
  cat('\n')

  # cat('## results')
  cat('\n')
  for(i in 1:nrow(myGlmParms)){
    cat('\n')
    cat(paste0('### model ',i,' results '))
    cat('\n')

    glmS(Formula=myGlmParms$Formula[i],
         data=LstMadis$Data[[myGlmParms$data[i]]],
         weightsVar=myGlmParms$weightsVar[i],
         subset=myGlmParms$subset[i],
         Family=myGlmParms$Family[i],
         lower=myGlmParms$lower[i])->res

    cat('\n')
    cat(paste0('#### Full model ',i,' results '))
    if(myGlmParms$Family[i]=='binomial'){
      cat('\n')
      cat('\n')
      summary(res$glmResFull)->fitSum
      fitSum$coefficients<-cbind(fitSum$coefficients,OR=exp(fitSum$coefficients[,1]),exp(confint(res$glmResFull)))
      # cat(pander(exp(confint(res$glmResFull))))
      cat(pander::pander(fitSum,split.table=Inf))
      cat('\n')
    } else {

      cat('\n')
      cat(pander::pander(summary(res$glmResFull),split.table=Inf))
      cat('\n')

    }
    cat('\n')

    cat(paste0('#### Full model ',i,' diagnostic results '))
    cat('\n')
    print(autoplot(res$glmResFull))
    cat('\n')

    cat('\n')
    if(myGlmParms$Family[i]=='binomial'){
      res$glmResFull->fit.tmp
      predict(fit.tmp,type='link')->pred.fit
      t.scores<-prediction(pred.fit,fit.tmp[['y']])
      cost.perf = performance(t.scores, "cost")
      t.scores@cutoffs[[1]][which.min(cost.perf@y.values[[1]])]->cutoffVal
      perf1<-performance(t.scores,'tpr','fpr')
      perf2<-performance(t.scores,'auc')
      plot(perf1,main='ROC Curve for Regression Full Model')
      abline(c(0,0),c(1,1))
      text(0.8,0.2,paste('auc=',round(unlist(perf2@y.values),3),sep=''))
      text(0.8,0.1,paste('cutoff=',round(cutoffVal,3),sep=''))

      cat('\n')
      #plot(res$nomogramFull)
      cat('\n')
    }
    cat('\n')
    cat(paste0('#### Step model ',i,' results '))
    # cat('\n')
    # cat(pander(summary(res$glmResStep)))
    # cat('\n')

    cat('\n')

    if(myGlmParms$Family[i]=='binomial'){
      cat('\n')
      # cat(paste0('#### 第',i,'个模型的置信区间结果:'))
      cat('\n')
      summary(res$glmResStep)->fitSum
      fitSum$coefficients<-cbind(fitSum$coefficients,OR=exp(fitSum$coefficients[,1]),exp(confint(res$glmResStep)))
      # cat(pander(exp(confint(res$glmResFull))))
      cat(pander::pander(fitSum,split.table=Inf))
      cat('\n')
    } else {

      cat('\n')
      cat(pander::pander(summary(res$glmResStep),split.table=Inf))
      cat('\n')

    }

    cat('\n')

    cat('\n')
    cat(paste0('#### Step model ',i,' diagnostic result '))
    cat('\n')
    print(autoplot(res$glmResStep))
    cat('\n')
    cat('\n')
    if(myGlmParms$Family[i]=='binomial'){
      res$glmResStep->fit.tmp
      predict(fit.tmp,type='link')->pred.fit
      t.scores<-prediction(pred.fit,fit.tmp[['y']])
      cost.perf = performance(t.scores, "cost")
      t.scores@cutoffs[[1]][which.min(cost.perf@y.values[[1]])]->cutoffVal
      perf1<-performance(t.scores,'tpr','fpr')
      perf2<-performance(t.scores,'auc')
      plot(perf1,main='ROC Curve for Regression Stepwise Model')
      abline(c(0,0),c(1,1))
      text(0.8,0.2,paste('auc=',round(unlist(perf2@y.values),3),sep=''))
      text(0.8,0.1,paste('cutoff=',round(cutoffVal,3),sep=''))
      cat('\n')
      #plot(res$nomogramStep)
      cat('\n')
    }
    cat('\n')
    cat('\n')
  }


}




## 决策树模型结果部分

LstMadis$myTree->myTreeParms
if(!all(is.na(myTreeParms$data))){
  cat('\n')
  cat('# tree model results ')
  cat('\n')
  cat('\n')
  # cat('决策树模型的结果采用R中rpart函数或ctree函数进行分析')
  cat('\n')

  cat('\n')
  # cat('## results ')
  cat('\n')
  for(i in 1:nrow(myTreeParms)){
    cat('\n')
    cat(paste0('### Tree model ',i,' results '))
    cat('\n')

    treeS(Formula=myTreeParms$Formula[i],
          data=LstMadis$Data[[myTreeParms$data[i]]],
          subset=myTreeParms$subset[i],
          treeMethod=myTreeParms$treeMethod[i],
          Minsplit=myTreeParms$Minsplit[i],
          Minbucket = myTreeParms$Minbucket[i],
          Maxdepth=myTreeParms$Maxdepth[i],
          CP=myTreeParms$CP[i],
          Mincrit = myTreeParms$Mincrit[i])->res

    cat('\n')
    plot(res)
    cat('\n')
    cat('\n')
  }

}






## COX模型结果部分

LstMadis$myCox->myCoxParms
if(!all(is.na(myCoxParms$data))){
  cat('\n')
  cat('# COXPH results ')
  cat('\n')

  # cat('cox模型的结果采用R中coxph函数进行分析,结果提供全模型以及利用AIC进行变量筛选的逐步回归结果。')
  cat('\n')

  cat('\n')
  # cat('## results')
  cat('\n')
  for(i in 1:nrow(myCoxParms)){
    cat('\n')
    cat(paste0('### model ',i,' results '))
    cat('\n')

    coxS(Formula=myCoxParms$Formula[i],
         data=LstMadis$Data[[myCoxParms$data[i]]],
         weightsVar=myCoxParms$weightsVar[i],
         subset=myCoxParms$subset[i],
         strataVar=myCoxParms$strataVar[i],
         lower=myCoxParms$lower[i])->res

    cat('\n')
    cat(paste0('#### Full model ',i,' results '))
    cat('\n')
    cat(pander::pander(summary(res$coxResFull),split.table=Inf))
    cat('\n')
    cat(paste0('#### Full model ',i,'  forest graph '))
    cat('\n')
    cat('\n')
    cat(pander::pander(cox.zph(res$coxResFull)$table,split.table=Inf))
    cat('\n')
    print(ggcoxzph(cox.zph(res$coxResFull)))
    cat('\n')
    print(ggforest(res$coxResFull,LstMadis$Data[[myCoxParms$data[i]]]))
    cat('\n')
    cat(paste0('#### Step model ',i,' results'))
    cat('\n')
    cat(pander::pander(summary(res$coxResStep),split.table=Inf))
    cat('\n')
    cat(paste0('#### Step model ',i,' forest graph '))
    cat('\n')
    cat('\n')
    cat(pander::pander(cox.zph(res$coxResStep)$table,split.table=Inf))
    cat('\n')
    print(ggcoxzph(cox.zph(res$coxResStep)))
    cat('\n')

    # print(autoplot(survfit(res$coxResStep)))
    print(ggforest(res$coxResStep,LstMadis$Data[[myCoxParms$data[i]]]))
    cat('\n')
    cat('\n')
    cat(paste0('#### model ',i,' survival curves '))
    cat('\n')
    print(autoplot(res$fitStrata))
    cat('\n')
  }

}







## 混合效应模型结果部分

LstMadis$myLme->myLmeParms
if(!all(is.na(myLmeParms$data))){
  cat('\n')
  cat('# lme model results')
  cat('\n')
  cat('\n')
  # cat('混合效应模型的结果采用R中nlme包进行分析,结果提供全模型以及利用AIC进行变量筛选的逐步回归结果。')
  cat('\n')


  # cat('## results')
  cat('\n')
  for(i in 1:nrow(myLmeParms)){
    cat('\n')
    cat(paste0('### model ',i,' results'))
    cat('\n')

    lmeS(formulaFixed=myLmeParms$formulaFixed[i],
         formulaRandom=myLmeParms$formulaRandom[i],
         data=LstMadis$Data[[myLmeParms$data[i]]],
         Method=myLmeParms$Method[i],
         subset=myLmeParms$subset[i])->res

    cat('\n')
    cat(paste0('#### Full model ',i,' results'))
    cat('\n')
    cat(pander::pander(res$lmeResFull,split.table=Inf))
    cat('\n')
    cat('\n')
    cat(paste0('#### Step model ',i,' results'))
    cat('\n')
    cat(pander::pander(res$lmeResStep,split.table=Inf))
    cat('\n')
    cat('\n')
    cat('\n')
  }

}




## 聚类分析结果部分

LstMadis$Kmeans->myKmeansParms
if(!all(is.na(myKmeansParms$data))){
  cat('\n')
  cat('# Kmeans results')
  cat('\n')
  cat('\n')
  # cat('聚类分析采用R中kmeans函数进行分析,同时,提供基于vegan包判断最佳的聚类数目。')
  cat('\n')


  # cat('## results')
  cat('\n')
  for(i in 1:nrow(myKmeansParms)){
    cat('\n')
    cat(paste0('### Kmeans analyzing ',i,' results '))
    cat('\n')

    Kmeans(
      data=LstMadis$Data[[myKmeansParms$data[i]]],
      vars=myKmeansParms$vars[i],
      infgr=myKmeansParms$infgr[i],
      supgr=myKmeansParms$supgr[i],
      Centers=myKmeansParms$Centers[i],
      Criterion=myKmeansParms$Criterion[i],
      Iter=myKmeansParms$Iter[i],
      iterMax=myKmeansParms$iterMax[i],
      Algorithm=myKmeansParms$Algorithm[i],
      subset=myKmeansParms$subset[i],
      clusterName=myKmeansParms$clusterName[i],
      seed=myKmeansParms$seed[i])->res

    cat('\n')
    cat(paste0('#### Kmeans analyzing ',i,' graph results'))
    cat('\n')
    plot(res$graphCrit)
    cat('\n')
    cat('\n')
    #cat(paste0('#### 第',i,'聚类分析结果:'))
    cat('\n')
    #cat(pander(res$resKmeans))
    cat('\n')
    cat('\n')
    cat('\n')
  }

}





## 主成分分析结果部分

LstMadis$pca->mypcaParms
if(!all(is.na(mypcaParms$data))){
  cat('\n')
  cat('# PCA results')
  cat('\n')
  cat('\n')
  # cat('主成分分析采用R psych包的principal函数进行分析。')
  cat('\n')


  # cat('## results')
  cat('\n')
  for(i in 1:nrow(mypcaParms)){
    cat('\n')
    cat(paste0('### PCA ',i,' results '))
    cat('\n')

    pcaS(
      data=LstMadis$Data[[mypcaParms$data[i]]],
      vars=mypcaParms$vars[i],
      nfcts=mypcaParms$nfcts[i],
      Rotate=mypcaParms$Rotate[i],
      Scores=mypcaParms$Scores[i],
      subset=mypcaParms$subset[i],
      pcaVarName=mypcaParms$pcaVarName[i])->res

    cat('\n')
    cat(paste0('#### PCA ',i,' graph results'))
    cat('\n')
    plot(scree(res$dataScree))
    cat('\n')
    cat('\n')
    cat(paste0('#### PCA ',i,' loadings results'))
    cat('\n')
    cat(pander::pander(res$resPCA$loadings[],split.table=Inf))
    cat('\n')
    cat('\n')
    cat(pander::pander(res$cumVar,split.table=Inf))
    cat('\n')
  }

}



## 因子分析结果部分

LstMadis$fa->myfaParms
if(!all(is.na(myfaParms$data))){
  cat('\n')
  cat('# FA results')
  cat('\n')
  cat('\n')
  # cat('因子分析采用R psych包的fa函数进行分析。')
  cat('\n')


  # cat('## results')
  cat('\n')
  for(i in 1:nrow(myfaParms)){
    cat('\n')
    cat(paste0('### FA ',i,' results'))
    cat('\n')

    faS(
      data=LstMadis$Data[[myfaParms$data[i]]],
      vars=myfaParms$vars[i],
      nfcts=myfaParms$nfcts[i],
      Rotate=myfaParms$Rotate[i],
      Scores=myfaParms$Scores[i],
      FM=myfaParms$FM[i],
      subset=myfaParms$subset[i],
      faVarName=myfaParms$faVarName[i])->res

    cat('\n')
    cat(paste0('#### FA ',i,' graph results '))
    cat('\n')
    plot(scree(res$dataScree))
    cat('\n')
    cat('\n')
    cat(paste0('#### FA ',i,' loadings results '))
    cat('\n')
    cat(pander::pander(res$resFA$loadings[],split.table=Inf))
    cat('\n')
    cat('\n')
    cat(pander::pander(res$cumVar,split.table=Inf))
    cat('\n')
  }

}



## 主成分分析结果部分

# LstMadis$pca->mypcaParms
# if(!all(is.na(mypcaParms$data))){
#   cat('\n')
#   cat('# 主成分分析结果')
#   cat('\n')
#   cat('\n')
#   # cat('主成分分析采用R psych包的principal函数进行分析。')
#   cat('\n')
#   
#   
#   cat('## 结果部分')
#   cat('\n')
#   for(i in 1:nrow(mypcaParms)){
#     cat('\n')
#     cat(paste0('### 第',i,'个模型的结果:'))
#     cat('\n')
#     
#     pcaS(
#       data=LstMadis$Data[[mypcaParms$data[i]]],
#       vars=mypcaParms$vars[i],
#       nfcts=mypcaParms$nfcts[i],
#       Rotate=mypcaParms$Rotate[i],
#       Scores=mypcaParms$Scores[i],
#       subset=mypcaParms$subset[i],
#       pcaVarName=mypcaParms$pcaVarName[i])->res
#     
#     cat('\n')
#     cat(paste0('#### 第',i,'主成分分析图形结果:'))
#     cat('\n')
#     plot(scree(res$dataScree))
#     cat('\n')
#     cat('\n')
#     cat(paste0('#### 第',i,'主成分分析因子载荷结果:'))
#     cat('\n')
#     cat(pander::pander(res$resPCA$loadings[],split.table=Inf))
#     cat('\n')
#     cat('\n')
#     cat(pander::pander(res$cumVar,split.table=Inf))
#     cat('\n')
#   }
#   
# }



## 时间序列分析结果部分

LstMadis$myProphet->myProphetParms
if(!all(is.na(myProphetParms$data))){
  cat('\n')
  cat('# prophet results')
  cat('\n')
  cat('\n')
  # cat('时间序列模型采用prophet包进行分析,结果提供历史数据的按时间段分析结果以及模型预测图形。')
  cat('\n')


  # cat('## results')
  cat('\n')
  for(i in 1:nrow(myProphetParms)){
    cat('\n')
    cat(paste0('### prohpet model ',i,' results'))
    cat('\n')

    prophetS(data=LstMadis$Data[[myProphetParms$data[i]]],
             tsVar=myProphetParms$tsVar[i],
             tsFormat = myProphetParms$tsFormat[i],
             measureVars=myProphetParms$measureVars[i],
             groupVars = myProphetParms$groupVars[i],
             Period = myProphetParms$Period[i],
             FN=myProphetParms$FN[i],
             Cap=myProphetParms$Cap[i],
             Floor=myProphetParms$Floor[i],
             Growth=myProphetParms$Growth[i],
             H=myProphetParms$H[i],
             yearlyS = myProphetParms$yearlyS[i],
             dailyS = myProphetParms$dailyS[i],
             weeklyS = myProphetParms$weeklyS[i])->res

    cat('\n')
    cat(paste0('#### historical data results ',i,' '))
    cat('\n')
    cat(pander::pander(res$tabRes,split.table=Inf))
    cat('\n')
    cat(paste0('#### graph of historical data ',i,' '))
    cat('\n')
    cat('\n')
    print(res$graphRes)
    cat('\n')

    cat(paste0('#### predicted results',i,' '))
    cat('\n')
    cat('\n')
    print(res$tabPred)
    cat('\n')
    cat('\n')
    cat(paste0('#### graph of predicted results ',i,' '))
    cat('\n')
    cat('\n')
    print(res$graphPredict)
    cat('\n')
    cat('\n')
  }

}




## 分类统计表

LstMadis$myTable->myTableParms
if(!all(is.na(myTableParms$data))){
  cat('\n')
  cat('# table one')
  cat('\n')
  cat('\n')


  # cat('## results')
  cat('\n')
  for(i in 1:nrow(myTableParms)){
    cat('\n')
    cat(paste0('### the ',i,'th table one'))
    cat('\n')
    cat(pander::pander(table1(data=LstMadis$Data[[myTableParms$data[i]]],grpVars=myTableParms$grpVars[i],testVars=myTableParms$testVars[i],normSamSize=myTableParms$normSamSize[i],Digits=myTableParms$Digits[i]),split.table=Inf))
    cat('\n')
    cat('\n')

  }

}



## 统计报表

LstMadis$dataMnp->dataMnpParms
if(!all(is.na(dataMnpParms$data))){
  cat('\n')
  cat('# data.table results')
  cat('\n')
  cat('\n')


  # cat('## results')
  cat('\n')
  for(i in 1:nrow(dataMnpParms)){
    cat('\n')
    cat(paste0('### the ',i,' data.table results '))
    cat('\n')
    cat(pander::pander(dataMnp(data=LstMadis$Data[[dataMnpParms$data[i]]],
                               subset=dataMnpParms$subset[i],
                               newVars=dataMnpParms$newVars[i],
                               newVarsFormulas=dataMnpParms$newVarsFormulas[i],
                               newVarsBy=dataMnpParms$newVarsBy[i],
                               indexNames=dataMnpParms$indexNames[i],
                               Formulas=dataMnpParms$Formulas[i],
                               dimVars=dataMnpParms$dimVars[i],
                               dimNames=dataMnpParms$dimNames[i],
                               dateVar=dataMnpParms$dateVar[i],
                               dtOrders=dataMnpParms$dtOrders[i],
                               margin=dataMnpParms$margin[i],  
                               revisedMargin=dataMnpParms$revisedMargin[i],  
                               revisedNames=dataMnpParms$revisedNames[i],  
                               revisedFormulas=dataMnpParms$revisedFormulas[i],  
                               orderVars=dataMnpParms$orderVars[i],   
                               orders=dataMnpParms$orders[i],   
                               Digits=dataMnpParms$Digits[i],      
                               tbVars=dataMnpParms$tbVars[i],         
                               hbVars=dataMnpParms$hbVars[i],          
                               colOrder=dataMnpParms$colOrder[i])$tabRes,split.table=Inf))
    cat('\n')
    cat('\n')



  }

}




## 统计图形

LstMadis$myGplt->myGpltParms
if(!all(is.na(myGpltParms$data))){
  cat('\n')
  cat('# ggplot results')
  cat('\n')
  cat('\n')


  # cat('## results')
  cat('\n')
  for(i in 1:nrow(myGpltParms)){
    cat('\n')
    cat(paste0('### the ',i,' th graph'))
    cat('\n')
    print(ggplt2S(
      data=LstMadis$Data[[myGpltParms$data[i]]],
      x=myGpltParms$x[i],
      y=myGpltParms$y[i],
      size=myGpltParms$size[i],
      fill=myGpltParms$fill[i],
      color=myGpltParms$color[i],
      shape=myGpltParms$shape[i],
      alpha=myGpltParms$alpha[i],
      facetVar=myGpltParms$facetVar[i],
      geom=myGpltParms$geom[i],
      smoothMethod=myGpltParms$smoothMethod[i],
      barPos=myGpltParms$barPos[i],
      labx=myGpltParms$labx[i],
      laby=myGpltParms$laby[i],
      title=myGpltParms$title[i],
      Bins=myGpltParms$Bins[i],
      theme=myGpltParms$theme[i],
      Width=myGpltParms$Width[i],
      Colour=myGpltParms$Colour[i],
      Fill=myGpltParms$Fill[i],
      Size=myGpltParms$Size[i],
      Alpha=myGpltParms$Alpha[i],
      Shape=myGpltParms$Shape[i]
    )$resGGplot)
    cat('\n')
    cat('\n')



  }

}


sontron/madis documentation built on March 23, 2021, 10:17 p.m.