Trying to create an AICc table but receiving aictab error message - r
I'm trying to create an AICc table for a number of multinomial logistic regression models. However, when I try to run the line:
aictab(cand.set = Cand.mod, modnames = Modnames)
I get the error message:
Error in print(aictab(cand.set = Cand.models, modnames = Modnames)) :
could not find function "aictab"
The script I am using is:
install.packages("AICcmodavg")
dd$reaction2 <- relevel(dd$reaction, ref="nr")
Cand.mod<-list()
Cand.mod[[1]]<-multinom(reaction2~ camera + light, data = dd)
Cand.mod[[2]]<-multinom(reaction2~ camera + gender, data = dd)
Modnames <-c("fm1", "fm2", "fm3")
aictab(cand.set = Cand.mod, modnames = Modnames)
evidence(aictab(cand.set = Cand.mod, modnames = Modnames))
confset(cand.set = Cand.mod, modnames = Modnames, method= "raw")
I'm just wondering if anyone has any ideas where I am going wrong?
Thanks so much!!
Related
ME function and margin Function from twopm package rstudio
I ran my twopart model and I have tried following the but the margins and the AME commands to get the marginal effects on all the variables, but I am running into a really weird issue with the data frame for some reason. > margin(tpmodel1) Error in `[.data.frame`(newdata, , term) : undefined columns selected But when looking at the guide for the twopm package, it says that all I need to do is just AME(tpmodel1) or margin(tpmodel1) to get all the marginal effects and it is still giving that error. so then i did > margin(tpmodel1, newdata = NULL, term = NULL, se=TRUE) Error in `[.data.frame`(newdata, , term) : undefined columns selected And > margin(tpmodel1, newdata = dfasthma, term = NULL, se=TRUE) Error in margin(tpmodel1, newdata = dfasthma, term = NULL, se = TRUE) : some of independent variables of the two-part model are not available in the newdata set of which doesnt make sense cause The data set i created for the variables I am using is dfasthma. the code from the package: margin(object, newdata = NULL, term = NULL, value = NULL, se = TRUE, se.method = c("delta","bootstrap"), CI = TRUE, CI.boots = FALSE, level = 0.95,eps = 1e-7,na.action = na.pass, iter = 50) The image attached is a guide to the margin command from the package
R -> Error in `row.names<-.data.frame`
Following this other question (Get p-value about contrast hypothesis for rectangular matrix) I am trying to run the following code in R, but the line: colnames(posmat) <- "pos_c1" causes an error when calling the function summary(). Error in `row.names<-.data.frame`(`*tmp*`, value = value) : duplicate 'row.names' are not allowed In addition: Warning message: non-unique value when setting 'row.names': ‘Pos’ Does anybody knows why this error comes up? Here the MWE: library(lme4) library(lmerTest) library(corpcor) database <- data.frame( Clos=factor(c(4,4,1,4,4,3,2,1,2,1,2,2,4,3,1,2,1,4,1,3,2,2,4,4,4,4,2,1,4,2,2,1,4,2,4,2,1,4,4,3)), Pos=factor(c(2,4,1,2,5,6,7,2,2,2,5,6,3,3,3,8,5,3,4,2,1,4,3,3,2,6,1,8,3,7,5,7,8,3,6,6,1,6,3,7)), RF=c(8,6,2,9,7,1,7,6,3,4,6,4,5,2,5,5,3,4,1,3,1,2,3,1,2,2,3,1,8,5,2,2,7,1,9,4,5,6,4,2), Score=c(4,3,3,5,4,3,2,4,5,2,2,3,3,4,4,4,3,2,3,3,5,4,3,4,4,2,3,4,3,4,1,2,2,2,3,4,5,3,1,2) ) clos_c1 = c(0,0,-1,1) clos_c2 = c(0,-1,0,1) clos_c3 = c(-1,0,0,1) closmat.temp = rbind(constant = 1/4,clos_c1,clos_c2,clos_c3) closmat = solve(closmat.temp) closmat = closmat[, -1] closmat pos_c1 = c(1/2,1/2,-1/6,-1/6,-1/6,-1/6,-1/6,-1/6) posmat.temp = rbind(pos_c1) posmat = pseudoinverse(posmat.temp) colnames(posmat) <- "pos_c1" contrasts(database$Clos) = closmat contrasts(database$Pos) = posmat model = lmer(Score~Clos+Pos+(1|RF), data = database, REML = TRUE) summary(model)
The problem is that when you run the model, you have the contrasts(database$Pos) without colnames but just one. You can see that by running your model variable and you will see 6 variables with the name "Pos". This causes trouble in reading the summary() command. Just by adding the line colnames(contrasts(database$Pos))<-c("pos1","pos2","pos3","pos4","pos5","pos6","pos7") after the creation of your contrasts(database$Pos) <- posmat your code will work. Feel free to put the colnames you require. The whole code is as follows then: library(lme4) library(lmerTest) library(corpcor) database <- data.frame( Clos=factor(c(4,4,1,4,4,3,2,1,2,1,2,2,4,3,1,2,1,4,1,3,2,2,4,4,4,4,2,1,4,2,2,1,4,2,4,2,1,4,4,3)), Pos=factor(c(2,4,1,2,5,6,7,2,2,2,5,6,3,3,3,8,5,3,4,2,1,4,3,3,2,6,1,8,3,7,5,7,8,3,6,6,1,6,3,7)), RF=c(8,6,2,9,7,1,7,6,3,4,6,4,5,2,5,5,3,4,1,3,1,2,3,1,2,2,3,1,8,5,2,2,7,1,9,4,5,6,4,2), Score=c(4,3,3,5,4,3,2,4,5,2,2,3,3,4,4,4,3,2,3,3,5,4,3,4,4,2,3,4,3,4,1,2,2,2,3,4,5,3,1,2) ) clos_c1 = c(0,0,-1,1) clos_c2 = c(0,-1,0,1) clos_c3 = c(-1,0,0,1) closmat.temp = rbind(constant = 1/4,clos_c1,clos_c2,clos_c3) closmat = solve(closmat.temp) closmat = closmat[, -1] closmat pos_c1 = c(1/2,1/2,-1/6,-1/6,-1/6,-1/6,-1/6,-1/6) posmat.temp = rbind(pos_c1) posmat <- pseudoinverse(posmat.temp) colnames(posmat) <- "pos_c1" contrasts(database$Clos) <- closmat contrasts(database$Pos) <- posmat ##NEW LINE colnames(contrasts(database$Pos))<-c("pos1","pos2","pos3","pos4","pos5","pos6","pos7") model <- lmer(Score~Clos+Pos+(1|RF), data = database, REML = TRUE) summary(model) I hope it helps. Cheers!
Trying to do a reset test in Rstudio
I'm trying to do a reset test in Rstudio. Im new to this. This is my code: model1 <- lm(inntekt ~ arbeidstid + kvinne + alder + leder + utd_hoy, data = d) summary(model1) install.packages("lmtest") library("lmtest") resettest(lm, power = 2:3, type = "regressor", data = d) When i am trying to run the test i get this: resettest(lm, power = 2:3, type = "regressor", data = d) Error: object of type 'closure' is not subsettable Can somebody pleas help me? I am happy for all answers :)
May be because you should write name of lm object, not just lm : resettest(model1, #replace lm by model1 power = 2:3, type = "regressor", data = d)
for loop in ctree [R]
I want to run a decision tree for each variable in my dataframe, so I'm using this: results_cont = list() for (i in 2:(ncol(DATA)-1)) { current_var = colnames(DATA[i]) current_result = ctree(TARGET ~ current_var, DATA, control = ctrl) results_cont[[i]] = current_result } Where DATA is a dataframe where the first column is the ID and the last column (TARGET) is my binary Target. I keep getting this error: Error in trafo(data = data, numeric_trafo = numeric_trafo, factor_trafo = factor_trafo, : data class “character” is not supported But I don't have any character in mi dataframe. Is there anything wrong with my loop or something else ? Thank you guys.
Since you do not provide data, I have not tested this, but I believe your problem is the line current_result = ctree(TARGET ~ current_var, DATA, control = ctrl) This is not working because current_var is just a character string. You need to build the formula as a string and then convert it to a formula - like this: current_var = colnames(DATA[i]) FORM = as.formula(paste("TARGET ~ ", current_var)) current_result = ctree(FORM, DATA, control = ctrl)
R "Error in terms.formula" using GA/genalg library
I'm attempting to create a genetic algorithm (not picky about library, ga and genalg produce same errors) to identify potential columns for use in a linear regression model, by minimizing -adj. r^2. Using mtcars as a play-set, trying to regress on mpg. I have the following fitness function: mtcarsnompg <- mtcars[,2:ncol(mtcars)] evalFunc <- function(string) { costfunc <- summary(lm(mtcars$mpg ~ ., data = mtcarsnompg[, which(string == 1)]))$adj.r.squared return(-costfunc) } ga("binary",fitness = evalFunc, nBits = ncol(mtcarsnompg), popSize = 100, maxiter = 100, seed = 1, monitor = FALSE) this causes: Error in terms.formula(formula, data = data) : '.' in formula and no 'data' argument Researching this error, I decided I could work around it this way: evalFunc = function(string) { child <- mtcarsnompg[, which(string == 1)] costfunc <- summary(lm(as.formula(paste("mtcars$mpg ~", paste(child, collapse = "+"))), data = mtcars))$adj.r.squared return(-costfunc) } ga("binary",fitness = evalFunc, nBits = ncol(mtcarsnompg), popSize = 100, maxiter = 100, seed = 1, monitor = FALSE) but this results in: Error in terms.formula(formula, data = data) : invalid model formula in ExtractVars I know it should work, because I can evaluate the function by hand written either way, while not using ga: solution <- c("1","1","1","0","1","0","1","1","1","0") evalFunc(solution) [1] -0.8172511 I also found in "A quick tour of GA" (https://cran.r-project.org/web/packages/GA/vignettes/GA.html) that using "string" in which(string == 1) is something the GA ought to be able to handle, so I have no idea what GA's issue with my function is. Any thoughts on a way to write this to get ga or genalg to accept the function?
Turns out I didn't consider that a solution string of 0s (or indeed, a string of 0s with one 1) would cause the internal paste to read "mpg ~ " which is not a possible linear regression.