当前位置: 首页 > 知识库问答 >
问题:

R-在单独的表格中显示线性、多项式和三次回归摘要

申屠黎昕
2023-03-14

我是新来的R和R闪亮。我目前正在尝试创建一个R闪亮的应用程序,以显示线性(y~x),二次(y~x^2 x)和三次(y~x^3x^2 x)回归结果的摘要,为选定的位置在选定的时期内的年度海平面值。周期由用户从范围滑块中选择开始年和结束年来确定,而位置由用户从下拉框中选择。然后我想从用户选择的数据中生成一个线性、二次和三次回归模型,并在单独的表格中显示每个回归摘要结果。

到目前为止,我已经设法从用户上面选择的参数中生成了一个过滤的数据表,其中包含回归模型的线性、二次和三次项。但是,当我尝试使用LinearModel生成回归结果时

用于线性、二次和三次回归的数据表在我的代码中分别显示。这是供参考的,也是要用相关回归结果替换的占位符。

最后,我想将数据显示为整数,但当我尝试使用将数据帧中的数据转换为整数时my_data[,-1]

非常赞赏

布莱恩。

library(shiny)

Year <- c(2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009)
Year2 <- Year^2
Year3 <- Year^3
Auckland <- c(1760, 1549, 1388, 1967, 1326, 1765, 1814, 1693, 1502, 1751)
Wellington <- c(2176, 3154, 1138, 1196, 2132, 3176, 4181, 5169, 3150, 4175)
Lyttelton <- c(2176, 3154, 1138, 1196, 2132, 3176, 4181, 5169, 3150, 4175)
my_data <- as.data.frame(cbind(Year,Year2,Year3, Auckland,Wellington, Lyttelton))
my_data[,-1] <-round(my_data[,-1],0) #Convert my_data to integers - doesn't work? 

ui <- fluidPage(
  titlePanel("New Zealand Annual Mean Sea Level (MSL) Regression Summary"),

  sidebarLayout(
    sidebarPanel(
      helpText("Annual Mean Sea Level Summary for various locations around NZ."),

      selectInput("var", 
                  label = "Choose a Location",
                  choices = c("Auckland",
                              "Lyttelton",
                              "Wellington"),
                  selected = "Auckland"),

      sliderInput("range", 
                  label = "Choose a start and end year:",
                  min = min(my_data$Year), max = max(my_data$Year), value = c(2003, 2008),sep = "",)
    ),
    mainPanel(
      tableOutput("LinearRegression"),
      tableOutput("QuadraticRegression"),
      tableOutput("CubicRegression")
    )
  )
)
server <- function(input, output) {

  output$LinearRegression <- renderTable({
    dt <- my_data[my_data$Year >= input$range[1] & my_data$Year <= input$range[2],]
    dt[,c(input$var,"Year")]
  },include.rownames=FALSE)
  #Below line doesn't work?
  #LinearModel <- lm(input$var ~ ., data = dt)

  output$QuadraticRegression <- renderTable({
    dt <- my_data[my_data$Year >= input$range[1] & my_data$Year <= input$range[2],]
    dt[,c(input$var,"Year","Year2")]
  },include.rownames=FALSE)
  #Below line doesn't work?
  #QuadraticModel <- lm(input$var ~ ., data = dt)

  output$CubicRegression <- renderTable({
    dt <- my_data[my_data$Year >= input$range[1] & my_data$Year <= input$range[2],]
    dt[,c(input$var,"Year","Year2","Year3")]
  },include.rownames=FALSE)
  #Below line doesn't work?
  #CubicModel <- lm(input$var ~ ., data = dt) 
}
shinyApp(ui, server)

共有1个答案

党祖鹤
2023-03-14

您可以从各种renderXXXX调用中获取每个模型的数据,并使其成为反应式。可以将is用作表渲染器和回归摘要输出的输入。另外,lm的输出不是一个表,因此您不能使用renderable来渲染它。最后,在lm调用中插入input$var的值时出现问题。

因此,我将您的表格输出(“LinearRegression”)更改为逐字输出(“LinearRegression”)。然后,在服务器中。。。

  filteredData <- reactive({
    dt <- my_data[my_data$Year >= input$range[1] & my_data$Year <= input$range[2],]
    dt[,c(input$var,"Year")]
    dt
  })

  output$LinearRegression <- renderPrint({
    lm(formula(paste(input$var, "~ .")), data = filteredData())
  })

您可以以类似的方式修改其他输出。

顺便说一句,您的数据不整洁。我强烈建议你这样做。现在的一点努力将在将来为你省去很多痛苦。

 类似资料:
  • 本文向大家介绍scikit-learn线性回归,多元回归,多项式回归的实现,包括了scikit-learn线性回归,多元回归,多项式回归的实现的使用技巧和注意事项,需要的朋友参考一下 匹萨的直径与价格的数据 训练模型 预测一张12英寸匹萨价格:$13.68 一元线性回归假设解释变量和响应变量之间存在线性关系;这个线性模型所构成的空间是一个超平面(hyperplane)。 超平面是n维欧氏空间中余维

  • 主要内容:建立回归的步骤回归分析是一个广泛使用的统计工具,用于建立两个变量之间的关系模型。 这些变量之一称为预测变量,其值通过实验收集。 另一个变量称为响应变量,其值来自预测变量。 在线性回归中,这两个变量通过一个等式相关联,其中这两个变量的指数(幂)是。数学上,当绘制为图形时,线性关系表示直线。任何变量的指数不等于的非线性关系产生曲线。 线性回归的一般数学方程为 - 以下是使用的参数的描述 - y - 是响应变量。 x

  • 我想写一个程序,给定三维空间中的点列表,用浮点表示为x,y,z坐标的数组,在这个空间中输出一条最佳拟合线。直线可以/应该是单位向量和直线上的点的形式。 问题是我不知道这是怎么做的。我发现的最接近的东西是这种联系,尽管老实说,我不明白他是如何从一个方程到另一个方程的,当我们到达矩阵时,我已经迷失了。 有没有一个简单的二维线性回归的泛化,我可以使用/有人可以(数学上)解释上面的链接到方法是否/如何工作

  • 本文向大家介绍PyTorch线性回归和逻辑回归实战示例,包括了PyTorch线性回归和逻辑回归实战示例的使用技巧和注意事项,需要的朋友参考一下 线性回归实战 使用PyTorch定义线性回归模型一般分以下几步: 1.设计网络架构 2.构建损失函数(loss)和优化器(optimizer) 3.训练(包括前馈(forward)、反向传播(backward)、更新模型参数(update)) 迭代十次打印

  • 本文向大家介绍PyTorch搭建多项式回归模型(三),包括了PyTorch搭建多项式回归模型(三)的使用技巧和注意事项,需要的朋友参考一下 PyTorch基础入门三:PyTorch搭建多项式回归模型  1)理论简介 对于一般的线性回归模型,由于该函数拟合出来的是一条直线,所以精度欠佳,我们可以考虑多项式回归来拟合更多的模型。所谓多项式回归,其本质也是线性回归。也就是说,我们采取的方法是,提高每个属

  • 问题内容: 我想显示一个从数据库到表单元格的段落。 结果是一个大的1行,而忽略了它在数据库中的组织方式。例如忽略“输入”(换行) 我想完全按照它在数据库中的编写方式来显示它。 例如,如果段落保存如下: 我希望它完全像这样显示,而不是: 问题答案: 您想使用应用于适当的CSS 。为此,请对所有表单元格执行此操作,例如: 另外,如果您可以更改标记,则可以在内容周围使用标签。默认情况下,Web浏览器使用