Skip to content
Snippets Groups Projects
Commit cddc72f4 authored by Jungehülsing's avatar Jungehülsing
Browse files

put takedraws and getalldraws functions into the poetest function such that...

put takedraws and getalldraws functions into the poetest function such that everything makes sense with roxygen and the documentation
parent 52081e76
No related branches found
No related tags found
1 merge request!2Add Poetest and its documentation
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
export("%>%") export("%>%")
export(createSets) export(createSets)
export(poetest)
export(quicktexregapollo) export(quicktexregapollo)
export(remGOF) export(remGOF)
export(subcoef) export(subcoef)
export(takedraws)
importFrom(magrittr,"%>%") importFrom(magrittr,"%>%")
...@@ -7,59 +7,64 @@ ...@@ -7,59 +7,64 @@
#' @param model1 Model from which to take the first WTP values #' @param model1 Model from which to take the first WTP values
#' @param model2 Model from which to take the second WTP values #' @param model2 Model from which to take the second WTP values
#' @param att Vector of attributes whose WTP values you want to compare #' @param att Vector of attributes whose WTP values you want to compare
#' @param price nmae of the price coefficient #' @param price name of the price coefficient
#' #'
#' #'
#' @return a p value associated with "WTP1>WTP2" #' @return a p value associated with "WTP1>WTP2"
#' @export #' @export
#' #'
#' @examples { #' @examples \dontrun{
#' poeresults<-poetest(n=5000, model1 = clmodels[[model_1]],model2 = clmodels[[model_2]], att=attr, price = "bcost") #' poeresults<-poetest(n=5000, model1 = clmodels[[model_1]],model2 = clmodels[[model_2]], att=attr, price = "bcost")
#' } #' }
## Extract relevant elements of models
takedraws <-function(n=10000, beta,vc) {
k=length(beta)
cholesky = chol(vc)
draw=matrix(nrow = n, ncol=k) poetest <- function(n, model1, model2, att, price){
colnames(draw) <-names(beta)
for (d in 1:n) {
draw[d,] <- beta +t(cholesky)%*%stats::rnorm(k) ## Extract relevant elements of models
takedraws <-function(n=10000, beta,vc) {
k=length(beta)
cholesky = chol(vc)
draw=matrix(nrow = n, ncol=k)
colnames(draw) <-names(beta)
for (d in 1:n) {
draw[d,] <- beta +t(cholesky)%*%stats::rnorm(k)
}
return(draw)
} }
getalldraws <- function(n, model1, model2, att, price) {
return(draw) allmodels <- list(model1,model2)
}
model_draws <- list()
getalldraws <- function(n, model1, model2, att, price) { for (m in 1:2) {
allmodels <- list(model1,model2) model_draws[[m]] <-takedraws(n,allmodels[[m]][["estimate"]],allmodels[[m]][["varcov"]])
model_draws <- list() model_draws[[m]] <-cbind(model_draws[[m]], wtp= model_draws[[m]][,att]/model_draws[[m]][,price])
}
for (m in 1:2) {
return(model_draws)
model_draws[[m]] <-takedraws(n,allmodels[[m]][["estimate"]],allmodels[[m]][["varcov"]])
model_draws[[m]] <-cbind(model_draws[[m]], wtp= model_draws[[m]][,att]/model_draws[[m]][,price])
}
return(model_draws)
} }
draws<-getalldraws(n, model1, model2, att, price)
poetest <- function(n, model1, model2, att, price){ wtpvec <- cbind(wtp1= draws[[1]][,"wtp"], wtp2= draws[[2]][,"wtp"])
draws<-getalldraws(n, model1, model2, att, price)
wtpvec <- cbind(wtp1= draws[[1]][,"wtp"], wtp2= draws[[2]][,"wtp"])
......
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/poetest.R
\name{takedraws}
\alias{takedraws}
\title{Perform the Poe (2005) test on different discrete choice models}
\usage{
takedraws(n = 10000, beta, vc)
}
\arguments{
\item{n}{number of draws}
\item{model1}{Model from which to take the first WTP values}
\item{model2}{Model from which to take the second WTP values}
\item{att}{Vector of attributes whose WTP values you want to compare}
\item{price}{nmae of the price coefficient}
}
\value{
a p value associated with "WTP1>WTP2"
}
\description{
Perform the Poe (2005) test on different discrete choice models
}
\examples{
{
poeresults<-poetest(n=5000, model1 = clmodels[[model_1]],model2 = clmodels[[model_2]], att=attr, price = "bcost")
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment