Я пытаюсь запускать модели по определенным уровням факторов или группам этих уровней с помощью виджета выбора ввода в Shiny.
Когда я делаю ставку на один факторный уровень, я получаю правильные результаты модели.Но когда я пытаюсь запустить модель, которая включает все уровни факторов или группы уровней, я не получаю правильные оценки модели.
Например, правильные оценки модели, когда включены все уровни факторов (т. Е. Модель выполняется по всему фрейму данных):
Но когдаЯ запускаю свое приложение и выбираю все уровни моей факторной переменной, которая представляет разные географические регионы, я получаю разные результаты:
У меня вопрос, как я могу указать свой реактивный саб-установка функции для учета всех уровней факторов или групп уровней?
Код для отдельных моделей, который включает все уровни и модели по факторному уровню для справки:
library(mlogit)
data("Heating", package = "mlogit")
mlogit(depvar ~ ic + oc | 0, data= Heating, shape = "wide", choice = "depvar", varying = c(3:12))
mlogit(depvar ~ ic + oc | 0, data= Heating[Heating$region=="ncostl" , ], shape = "wide", choice = "depvar", varying = c(3:12))
mlogit(depvar ~ ic + oc | 0, data= Heating[Heating$region=="scostl" , ], shape = "wide", choice = "depvar", varying = c(3:12))
mlogit(depvar ~ ic + oc | 0, data= Heating[Heating$region=="mountn" , ], shape = "wide", choice = "depvar", varying = c(3:12))
mlogit(depvar ~ ic + oc | 0, data= Heating[Heating$region=="valley" , ], shape = "wide", choice = "depvar", varying = c(3:12))
Блестящий код:
### PART 1 - Load Libraries and Data
library(shiny) # For running the app
library(mlogit)
#### data
data("Heating", package = "mlogit")
#### PART 2 - Define User Interface for application
ui <- fluidPage(
## Application title
titlePanel("Housing Preference"),
## Sidebar with user input elements
sidebarLayout(
sidebarPanel(
p("Select the inputs"), # Header
# Speciality
selectInput('regiontype', 'Region', choices = c("northern coastal region"= "ncostl",
"southern coastal region" = "scostl",
"mountain region" = "mountn",
"central valley region"= "valley"), multiple=TRUE, selectize=TRUE)
),
## Show a plot
mainPanel(
verbatimTextOutput("summary")
)
)
)
#### PART 3 - Define server logic required to run calculations and draw plots
server <- function(input, output) {
output$summary <- renderPrint({
df <- Heating
### Subset data
df.subset <- reactive({ a <- subset(df, region == input$regiontype)
return(a)})
### Model
estimates <- mlogit(depvar ~ ic + oc | 0, data= df.subset(), shape = "wide", choice = "depvar", varying = c(3:12))
summary(estimates)
})
}
### PART 4 - Run the application
shinyApp(ui = ui, server = server)