detailing {bayesm} | R Documentation |
Monthly data on detailing (sales calls) on 1000 physicians. 23 mos of data for each Physician. Includes physician covariates. Dependent Variable is the number of new prescriptions ordered by the physician for the drug detailed.
data(detailing)
This R object is a list of two data frames, list(counts,demo).
List of 2:
$ counts:`data.frame': 23000 obs. of 4 variables:
...$ id : int [1:23000] 1 1 1 1 1 1 1 1 1 1
...$ scripts : int [1:23000] 3 12 3 6 5 2 5 1 5 3
...$ detailing : int [1:23000] 1 1 1 2 1 0 2 2 1 1
...$ lagged_scripts: int [1:23000] 4 3 12 3 6 5 2 5 1 5
$ demo :`data.frame': 1000 obs. of 4 variables:
...$ id : int [1:1000] 1 2 3 4 5 6 7 8 9 10
...$ generalphys : int [1:1000] 1 0 1 1 0 1 1 1 1 1
...$ specialist: int [1:1000] 0 1 0 0 1 0 0 0 0 0
...$ mean_samples: num [1:1000] 0.722 0.491 0.339 3.196 0.348
generalphy is dummy for if doc is a "general practitioner," specialist is dummy for if the physician is a specialist in the theraputic class for which the drug is intended, mean_samples is the mean number of free drug samples given the doctor over the sample.
Manchanda, P., P. K. Chintagunta and P. E. Rossi (2004), "Response Modeling with Non-Random Marketing Mix Variables," Journal of Marketing Research 41, 467-478.
data(detailing) cat(" table of Counts Dep Var", fill=TRUE) print(table(detailing$counts[,2])) cat(" means of Demographic Variables",fill=TRUE) mat=apply(as.matrix(detailing$demo[,2:4]),2,mean) print(mat) ## ## example of processing for use with rhierNegbinRw ## if(nchar(Sys.getenv("LONG_TEST")) != 0) { data(detailing) counts = detailing$counts Z = detailing$demo # Construct the Z matrix Z[,1] = 1 Z[,2]=Z[,2]-mean(Z[,2]) Z[,3]=Z[,3]-mean(Z[,3]) Z[,4]=Z[,4]-mean(Z[,4]) Z=as.matrix(Z) id=levels(factor(counts$id)) nreg=length(id) nobs = nrow(counts$id) regdata=NULL for (i in 1:nreg) { X = counts[counts[,1] == id[i],c(3:4)] X = cbind(rep(1,nrow(X)),X) y = counts[counts[,1] == id[i],2] X = as.matrix(X) regdata[[i]]=list(X=X, y=y) } nvar=ncol(X) # Number of X variables nz=ncol(Z) # Number of Z variables rm(detailing,counts) cat("Finished Reading data",fill=TRUE) fsh() Data = list(regdata=regdata, Z=Z) deltabar = matrix(rep(0,nvar*nz),nrow=nz) Vdelta = 0.01 * diag(nz) nu = nvar+3 V = 0.01*diag(nvar) a = 0.5 b = 0.1 Prior = list(deltabar=deltabar, Vdelta=Vdelta, nu=nu, V=V, a=a, b=b) R = 10000 keep =1 s_beta=2.93/sqrt(nvar) s_alpha=2.93 c=2 Mcmc = list(R=R, keep = keep, s_beta=s_beta, s_alpha=s_alpha, c=c) out = rhierNegbinRw(Data, Prior, Mcmc) # Unit level mean beta parameters Mbeta = matrix(rep(0,nreg*nvar),nrow=nreg) ndraws = length(out$alphadraw) for (i in 1:nreg) { Mbeta[i,] = rowSums(out$Betadraw[i, , ])/ndraws } cat(" Deltadraws ",fill=TRUE) mat=apply(out$Deltadraw,2,quantile,probs=c(.01,.05,.5,.95,.99)) print(mat) cat(" Vbetadraws ",fill=TRUE) mat=apply(out$Vbetadraw,2,quantile,probs=c(.01,.05,.5,.95,.99)) print(mat) cat(" alphadraws ",fill=TRUE) mat=apply(matrix(out$alphadraw),2,quantile,probs=c(.01,.05,.5,.95,.99)) print(mat) }