I met with several people who are familiar with SPSS and would be reluctant to wade into R but might be encouraged to do so from the comfort of a GUI. Do any of the GUIs provide support for power calculations? I searched around for about 15 minutes and could not find anything to tell me that they could. Do you happen to know?
While it's targeting data mining tasks, you could have a look at Rattle (see the related R Journal paper). I'm not sure if it supports power calculations, but it is intended to be more of a user-friendly GUI.
Red-R wraps many packages in an easy to use GUI interface. If you're looking for a specific package that isn't included, email the devs and they'll be glad to add it, usually within a few days.
Red-R is a visual programming interface for R designed to bring the power of the R statistical environment to the general researcher or user. The goal of this project is to provide access to the massive library of packages in R without any programming expertise. The Red-R framework uses concepts of dataflow programming to make data the center of attention while hiding all the programming complexity. In visual programming, functional tools (called Widgets in Red-R) are linked together on a canvas to control the flow of data through the program. This framework allows novice users to quickly and easily build complex analysis pipelines.
There are a couple of videos demonstrating the applcation at Red-R Documentation
Some of the current functionality includes:
- Read/View Data
- Merge/Intersect/Filter
- Math/Apply
- Plotting
- Stats - Parametric
- Stats - Non-Parametric
Some advanced functionality:
- Bioconductor microarray analysis
- Survival analysis
- Spatial Stats
- SQLite
- ROCR – ROC Curves
- Neural Nets
- LME4
This is definitely a work in progress, but you can check out the application at Red-R.org.
We are looking for any feedback in improving the usability and expanding the functionality. We'd be happy to work with anyone for specific needs.
Anup
Not that I'm aware of, but it is fairly easy to add the functionality to a number of them. For example, below is a simple power analysis dialog for Deducer ( http://www.deducer.org/manual.html ) for the paired/one-sample/two-sample t-test. For more on making dialogs in Deducer, see http://www.deducer.org/pmwiki/pmwiki.php?n=Main.Development .
If they are coming from SPSS they should feel very comfortable working with Deducer.
dialog <- new(SimpleRDialog)
dialog$setSize(400L,600L)
dialog$setTitle("t-test power analysis")
#type of test
test<- new(ComboBoxWidget,"type of test",c("two.sample", "one.sample", "paired"))
test$setDefaultModel("two.sample")
addComponent(dialog, test,100,900,200, 100)
#Sample size
ss <- new(TextAreaWidget,"Sample size")
addComponent(dialog, ss,210,700,310, 300)
#sig
sig <- new(TextAreaWidget,"significance level")
sig$setDefaultModel("0.05")
addComponent(dialog, sig,320,700,420, 300)
#power
pow <- new(TextAreaWidget,"Power")
pow$setDefaultModel("0.80")
addComponent(dialog, pow,430,700,530, 300)
#effect size
eff <- new(TextAreaWidget,"Cohens D")
eff$setDefaultModel(".5")
addComponent(dialog, eff,540,700,640, 300)
#alternative
test<- new(ComboBoxWidget,"alternative",c("two.sided", "less","greater"))
test$setDefaultModel("two.sided")
addComponent(dialog, test,650,900,750, 100)
runDialog <- function(state){
#print(state)
cmd <- "require(pwr)\npwr.t.test("
if(state[['Sample size']] == "")
parameter <- "n=NULL"
else
parameter = paste("n=",state[['Sample size']],sep="")
cmd <- paste(cmd,parameter);
if(state[['significance level']] == "")
parameter <- ",sig.level=NULL"
else
parameter = paste(",sig.level=",state[['significance level']],sep="")
cmd <- paste(cmd,parameter);
if(state[['Power']] == "")
parameter <- ",power=NULL"
else
parameter = paste(",power=",state[['Power']],sep="")
cmd <- paste(cmd,parameter);
if(state[['Cohens D']] == "")
parameter <- ",d=NULL"
else
parameter = paste(",d=",state[['Cohens D']],sep="")
cmd <- paste(cmd,parameter);
parameter = paste(",alternative='",state[['alternative']],"'",sep="")
cmd <- paste(cmd,parameter);
parameter = paste(",type='",state[['type of test']],"')",sep="")
cmd <- paste(cmd,parameter);
execute(cmd)
}
dialog$setRunFunction(toJava(runDialog))
deducer.addMenu("Power")
deducer.addMenuItem("t-test power",,"dialog$run()","Power")
if(.windowsGUI){
winMenuAdd("Power")
winMenuAddItem("Power", "t-test", "deducer('t-test power')")
}else if(.jgr){
jgr.addMenu("Power")
jgr.addMenuItem("Power", "t-test", "deducer('t-test power')")
}