1
\$\begingroup\$

I have a procedure for conducting ANOVA, the details of which can be viewed in this white paper.

I would like to be able to make the routine scalable to handle any number of groups. Below is the R code for a 2 group example. Any insights or comments are appreciated.

Partial Moments:

LPM<- function(degree,target,variable){
 sum((target - (variable[variable < target]))^degree)/length(variable)
}
UPM<- function(degree,target,variable){
 sum(((variable[variable > target]) - target)^degree)/length(variable)
}

ANOVA:

VN_ANOVA<- function(group1,group2){
 mean_of_means <- mean(c(mean(group1),mean(group2)))
#Continuous CDF for each group from Mean of Means
 LPM_ratio_1 <- LPM(1,mean_of_means,group1)/
 (LPM(1,mean_of_means,group1)+UPM(1,mean_of_means,group1))
 LPM_ratio_2 <- LPM(1,mean_of_means,group2)/
 (LPM(1,mean_of_means,group2)+UPM(1,mean_of_means,group2))
#Continuous CDF Deviation from 0.5
 MAD_CDF<- mean(c(abs(LPM_ratio_1 - 0.5),abs(LPM_ratio_2 - 0.5)))
#Certainty associated with samples
 VN_ANOVA_rho <- (0.5 - MAD_CDF)/0.5
#Graphs 
 boxplot(list(group1,group2), las=2, names=c("Group 1","Group 2"), 
 xlab= "Means", horizontal = TRUE,
 col=c("grey","white"), main="ANOVA")
#For ANOVA Visualization 
 abline(v=mean_of_means,col="red",lwd=4)
 text(mean_of_means,pos=4, 2.5, "Mean of means", col = "red")
 return(c("Certainty of Same Population"=VN_ANOVA_rho))
}
asked Aug 6, 2015 at 13:37
\$\endgroup\$

1 Answer 1

1
\$\begingroup\$

Per the answer to this question, storing the variables into a matrix works.

VN_ANOVA<- function(A){
 mean_of_means <- mean(colMeans(A))
 n<- ncol(A)
 LPM_ratio = numeric(0L)
 MAD_CDF = numeric(0L)
#Continuous CDF for each variable from Mean of Means 
 for (i in 1:n){
 LPM_ratio[i] <- LPM(1,mean_of_means,A[,i])/
 (LPM(1,mean_of_means,A[,i])+UPM(1,mean_of_means,A[,i]))
#Continuous CDF Deviation from 0.5
 MAD_CDF[i]<- abs(LPM_ratio[i] - 0.5)
 }
 Mean_MAD_CDF <- mean(MAD_CDF)
#Certainty associated with samples
 VN_ANOVA_rho <- (0.5 - Mean_MAD_CDF)/0.5
#Graphs 
 boxplot(A, las=2, xlab= "Means", horizontal = TRUE,
 main="ANOVA", col=rainbow(n))
#For ANOVA Visualization 
 abline(v=mean_of_means,col="red",lwd=4)
 text(mean_of_means,pos=4, .25,"Mean of means", col = "red")
 return(c("Certainty of Same Population"=VN_ANOVA_rho))
}
answered Aug 18, 2015 at 13:53
\$\endgroup\$

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.