Commit 460d9871 authored by Thomas Friedrichsmeier's avatar Thomas Friedrichsmeier
Browse files

Extend and activate automated test for power plugin.

(This may be somewhat excessive, but in fact, playing with many settings while creating this test revealed one syntax bug (fixed in previous commit)).
parent 1bdd4926
......@@ -145,10 +145,16 @@ suite <- new ("RKTestSuite", id="analysis_plugins",
}),
new ("RKTest", id="linear_regression", call=function () {
rk.call.plugin ("rkward::linear_regression", intercept.state="1", x.available="warpbreaks[[\"tension\"]]\nwarpbreaks[[\"wool\"]]", y.available="warpbreaks[[\"breaks\"]]", submit.mode="submit")
})#,
# new ("RKTest", id="power_analysis", call=function () {
# rk.call.plugin ("rkward::power_analysis", drp_pwr_hypothesis.string="two.sided", drp_pwr_stat.string="pwr.t.test", drp_pwr_type.string="two.sample", pwr_spin_sample0.real="30.00", rad_pwr_param.string="Power", spn_Effectsz.real="0.30", spn_Sgnfcncl.real="0.05", svb_Svrsltst.active="0", svb_Svrsltst.objectname="pwr.result", svb_Svrsltst.parent=".GlobalEnv", submit.mode="submit")
# })
}),
new ("RKTest", id="power_analysis", call=function () {
rk.call.plugin ("rkward::power_analysis", drp_pwr_hypothesis.string="two.sided", drp_pwr_stat.string="pwr.t.test", drp_pwr_type.string="two.sample", pwr_spin_sample0.real="30.00", rad_pwr_param.string="Power", spn_Effectsz.real="0.30", spn_Sgnfcncl.real="0.05", svb_Svrsltst.active="0", svb_Svrsltst.objectname="pwr.result", svb_Svrsltst.parent=".GlobalEnv", submit.mode="submit")
rk.call.plugin ("rkward::power_analysis", drp_pwr_hypothesis.string="two.sided", drp_pwr_stat.string="pwr.t.test", drp_pwr_type.string="two.sample.diff", pwr_spin_sample1.real="27.00", pwr_spin_sample2.real="33.00", rad_pwr_param.string="Power", spn_Effectsz.real="0.30", spn_Sgnfcncl.real="0.05", svb_Svrsltst.active="0", svb_Svrsltst.objectname="pwr.result", svb_Svrsltst.parent=".GlobalEnv", submit.mode="submit")
rk.call.plugin ("rkward::power_analysis", drp_pwr_hypothesis.string="two.sided", drp_pwr_stat.string="pwr.r.test", rad_pwr_param.string="Sample size", spn_Effectsz.real="0.30", spn_Power.real="0.81", spn_Sgnfcncl.real="0.05", svb_Svrsltst.active="0", svb_Svrsltst.objectname="pwr.result", svb_Svrsltst.parent=".GlobalEnv", submit.mode="submit")
rk.call.plugin ("rkward::power_analysis", drp_pwr_stat.string="pwr.chisq.test", pwr_spin_df.real="32.00", pwr_spin_sample0.real="30.00", rad_pwr_param.string="Significance level", spn_Effectsz.real="0.30", spn_Power.real="0.81", svb_Svrsltst.active="0", svb_Svrsltst.objectname="pwr.result", svb_Svrsltst.parent=".GlobalEnv", submit.mode="submit")
rk.call.plugin ("rkward::power_analysis", drp_pwr_hypothesis.string="greater", drp_pwr_proptype.string="two.sample.same", drp_pwr_stat.string="pwr.p.test", pwr_spin_sample0.real="30.00", rad_pwr_param.string="Significance level", spn_Effectsz.real="0.30", spn_Power.real="0.81", svb_Svrsltst.active="0", svb_Svrsltst.objectname="pwr.result", svb_Svrsltst.parent=".GlobalEnv", submit.mode="submit")
rk.call.plugin ("rkward::power_analysis", drp_pwr_hypothesis.string="two.sided", drp_pwr_stat.string="pwr.norm.test", pwr_spin_sample0.real="30.00", rad_pwr_param.string="Significance level", spn_Effectsz.real="0.30", spn_Power.real="0.80", svb_Svrsltst.active="0", svb_Svrsltst.objectname="pwr.result", svb_Svrsltst.parent=".GlobalEnv", submit.mode="submit")
rk.call.plugin ("rkward::power_analysis", drp_pwr_stat.string="pwr.f2.test", pwr_spin_dfv.real="30.00", pwr_spin_sample0.real="30.00", rad_pwr_param.string="Parameter count", spn_Effectsz.real="0.30", spn_Power.real="0.80", spn_Sgnfcncl.real="0.10", svb_Svrsltst.active="0", svb_Svrsltst.objectname="pwr.result", svb_Svrsltst.parent=".GlobalEnv", submit.mode="submit")
})
), postCalls = list ( # like initCalls: run after all tests to clean up.
function () {
suppressWarnings (rm (list=c ("women", "warpbreaks", "rock", "co2", "test50x", "test50y", "test50z", "test10x", "test10y", "test10z", "test_table", "hptrend", "hpcycle"), envir=globalenv()))
......
local({
## Vorbereiten
## Prepare
require(pwr)
## Berechne
## Compute
pwr.result <- try(
pwr.t.test(
n=30,
......@@ -9,10 +9,10 @@ require(pwr)
)
)
## Drucke Ergebnisse
## Print result
# Catch errors due to unsuitable data
if(class(pwr.result) == "try-error"){
rk.print("Power anaylsis not possible with the data you provided")
rk.print("Power analysis not possible with the data you provided")
return()
}
......@@ -36,3 +36,242 @@ require(pwr)
rk.print("Interpretation of effect size <strong>d</strong> (according to Cohen):")
rk.results(data.frame(small=0.2, medium=0.5, large=0.8))
})
local({
## Prepare
require(pwr)
## Compute
pwr.result <- try(
pwr.t2n.test(
n1=27,
n2=33,
d=0.30
)
)
## Print result
# Catch errors due to unsuitable data
if(class(pwr.result) == "try-error"){
rk.print("Power analysis not possible with the data you provided")
return()
}
# Prepare printout
note <- pwr.result[["note"]]
parameters <- list("Target measure"="Power")
if(!is.null(pwr.result[["alternative"]])){
parameters[["alternative"]] <- pwr.result[["alternative"]]
}
rk.header(pwr.result[["method"]], parameters=parameters)
pwr.result[c("method", "note", "alternative")] <- NULL
pwr.result <- as.data.frame(unlist(pwr.result))
colnames(pwr.result) <- "Parameters"
rk.results(pwr.result)
if(!is.null(note)){
rk.print(paste("<strong>Note:</strong> ", note))
}
rk.print("Interpretation of effect size <strong>d</strong> (according to Cohen):")
rk.results(data.frame(small=0.2, medium=0.5, large=0.8))
})
local({
## Prepare
require(pwr)
## Compute
pwr.result <- try(
pwr.r.test(
r=0.30,
power=0.81
)
)
## Print result
# Catch errors due to unsuitable data
if(class(pwr.result) == "try-error"){
rk.print("Power analysis not possible with the data you provided")
return()
}
# Prepare printout
note <- pwr.result[["note"]]
parameters <- list("Target measure"="Sample size")
if(!is.null(pwr.result[["alternative"]])){
parameters[["alternative"]] <- pwr.result[["alternative"]]
}
rk.header(pwr.result[["method"]], parameters=parameters)
pwr.result[c("method", "note", "alternative")] <- NULL
pwr.result <- as.data.frame(unlist(pwr.result))
colnames(pwr.result) <- "Parameters"
rk.results(pwr.result)
if(!is.null(note)){
rk.print(paste("<strong>Note:</strong> ", note))
}
rk.print("Interpretation of effect size <strong>r</strong> (according to Cohen):")
rk.results(data.frame(small=0.1, medium=0.3, large=0.5))
})
local({
## Prepare
require(pwr)
## Compute
pwr.result <- try(
pwr.chisq.test(
w=0.30,
N=30,
df=32,
sig.level=NULL,
power=0.81
)
)
## Print result
# Catch errors due to unsuitable data
if(class(pwr.result) == "try-error"){
rk.print("Power analysis not possible with the data you provided")
return()
}
# Prepare printout
note <- pwr.result[["note"]]
parameters <- list("Target measure"="Significance level")
if(!is.null(pwr.result[["alternative"]])){
parameters[["alternative"]] <- pwr.result[["alternative"]]
}
rk.header(pwr.result[["method"]], parameters=parameters)
pwr.result[c("method", "note", "alternative")] <- NULL
pwr.result <- as.data.frame(unlist(pwr.result))
colnames(pwr.result) <- "Parameters"
rk.results(pwr.result)
if(!is.null(note)){
rk.print(paste("<strong>Note:</strong> ", note))
}
rk.print("Interpretation of effect size <strong>w</strong> (according to Cohen):")
rk.results(data.frame(small=0.1, medium=0.3, large=0.5))
})
local({
## Prepare
require(pwr)
## Compute
pwr.result <- try(
pwr.2p.test(
h=0.30,
n=30,
sig.level=NULL,
power=0.81,
alternative="greater"
)
)
## Print result
# Catch errors due to unsuitable data
if(class(pwr.result) == "try-error"){
rk.print("Power analysis not possible with the data you provided")
return()
}
# Prepare printout
note <- pwr.result[["note"]]
parameters <- list("Target measure"="Significance level")
if(!is.null(pwr.result[["alternative"]])){
parameters[["alternative"]] <- pwr.result[["alternative"]]
}
rk.header(pwr.result[["method"]], parameters=parameters)
pwr.result[c("method", "note", "alternative")] <- NULL
pwr.result <- as.data.frame(unlist(pwr.result))
colnames(pwr.result) <- "Parameters"
rk.results(pwr.result)
if(!is.null(note)){
rk.print(paste("<strong>Note:</strong> ", note))
}
rk.print("Interpretation of effect size <strong>h</strong> (according to Cohen):")
rk.results(data.frame(small=0.2, medium=0.5, large=0.8))
})
local({
## Prepare
require(pwr)
## Compute
pwr.result <- try(
pwr.norm.test(
d=0.30,
n=30,
sig.level=NULL,
power=0.80
)
)
## Print result
# Catch errors due to unsuitable data
if(class(pwr.result) == "try-error"){
rk.print("Power analysis not possible with the data you provided")
return()
}
# Prepare printout
note <- pwr.result[["note"]]
parameters <- list("Target measure"="Significance level")
if(!is.null(pwr.result[["alternative"]])){
parameters[["alternative"]] <- pwr.result[["alternative"]]
}
rk.header(pwr.result[["method"]], parameters=parameters)
pwr.result[c("method", "note", "alternative")] <- NULL
pwr.result <- as.data.frame(unlist(pwr.result))
colnames(pwr.result) <- "Parameters"
rk.results(pwr.result)
if(!is.null(note)){
rk.print(paste("<strong>Note:</strong> ", note))
}
rk.print("Interpretation of effect size <strong>d</strong> (according to Cohen):")
rk.results(data.frame(small=0.2, medium=0.5, large=0.8))
})
local({
## Prepare
require(pwr)
## Compute
pwr.result <- try(
pwr.f2.test(
v=30,
f2=0.30,
sig.level=0.10,
power=0.80
)
)
## Print result
# Catch errors due to unsuitable data
if(class(pwr.result) == "try-error"){
rk.print("Power analysis not possible with the data you provided")
return()
}
# Prepare printout
note <- pwr.result[["note"]]
parameters <- list("Target measure"="Parameter count")
if(!is.null(pwr.result[["alternative"]])){
parameters[["alternative"]] <- pwr.result[["alternative"]]
}
rk.header(pwr.result[["method"]], parameters=parameters)
pwr.result[c("method", "note", "alternative")] <- NULL
pwr.result <- as.data.frame(unlist(pwr.result))
colnames(pwr.result) <- "Parameters"
rk.results(pwr.result)
if(!is.null(note)){
rk.print(paste("<strong>Note:</strong> ", note))
}
rk.print("Interpretation of effect size <strong>f<sup>2</sup></strong> (according to Cohen):")
rk.results(data.frame(small=0.02, medium=0.15, large=0.35))
})
......@@ -19,3 +19,122 @@ DATE<br />
<tr><td>small</td><td>medium</td><td>large</td></tr>
<tr><td>0.2</td><td>0.5</td><td>0.8</td></tr>
</table>
<h1>t test power calculation</h1>
<h2>Parameters</h2>
<ul><li>Target measure: Power</li>
<li>alternative: two.sided</li>
</ul>
DATE<br />
<table border="1">
<tr><td></td><td>Parameters</td></tr>
<tr><td>n1</td><td>27</td></tr>
<tr><td>n2</td><td>33</td></tr>
<tr><td>d</td><td>0.3</td></tr>
<tr><td>sig.level</td><td>0.05</td></tr>
<tr><td>power</td><td>0.20624</td></tr>
</table>
<p class='character'>Interpretation of effect size <strong>d</strong> (according to Cohen):</p>
<table border="1">
<tr><td>small</td><td>medium</td><td>large</td></tr>
<tr><td>0.2</td><td>0.5</td><td>0.8</td></tr>
</table>
<h1>approximate correlation power calculation (arctangh transformation)</h1>
<h2>Parameters</h2>
<ul><li>Target measure: Sample size</li>
<li>alternative: two.sided</li>
</ul>
DATE<br />
<table border="1">
<tr><td></td><td>Parameters</td></tr>
<tr><td>n</td><td>86.875</td></tr>
<tr><td>r</td><td>0.3</td></tr>
<tr><td>sig.level</td><td>0.05</td></tr>
<tr><td>power</td><td>0.81</td></tr>
</table>
<p class='character'>Interpretation of effect size <strong>r</strong> (according to Cohen):</p>
<table border="1">
<tr><td>small</td><td>medium</td><td>large</td></tr>
<tr><td>0.1</td><td>0.3</td><td>0.5</td></tr>
</table>
<h1>Chi squared power calculation</h1>
<h2>Parameters</h2>
<ul><li>Target measure: Significance level</li>
</ul>
DATE<br />
<table border="1">
<tr><td></td><td>Parameters</td></tr>
<tr><td>w</td><td>0.3</td></tr>
<tr><td>N</td><td>30</td></tr>
<tr><td>df</td><td>32</td></tr>
<tr><td>sig.level</td><td>0.71662</td></tr>
<tr><td>power</td><td>0.81</td></tr>
</table>
<p class='character'><strong>Note:</strong> N is the number of observations</p>
<p class='character'>Interpretation of effect size <strong>w</strong> (according to Cohen):</p>
<table border="1">
<tr><td>small</td><td>medium</td><td>large</td></tr>
<tr><td>0.1</td><td>0.3</td><td>0.5</td></tr>
</table>
<h1>Difference of proportion power calculation for binomial distribution (arcsine transformation)</h1>
<h2>Parameters</h2>
<ul><li>Target measure: Significance level</li>
<li>alternative: greater</li>
</ul>
DATE<br />
<table border="1">
<tr><td></td><td>Parameters</td></tr>
<tr><td>h</td><td>0.3</td></tr>
<tr><td>n</td><td>30</td></tr>
<tr><td>sig.level</td><td>0.38821</td></tr>
<tr><td>power</td><td>0.81</td></tr>
</table>
<p class='character'><strong>Note:</strong> same sample sizes</p>
<p class='character'>Interpretation of effect size <strong>h</strong> (according to Cohen):</p>
<table border="1">
<tr><td>small</td><td>medium</td><td>large</td></tr>
<tr><td>0.2</td><td>0.5</td><td>0.8</td></tr>
</table>
<h1>Mean power calculation for normal distribution with known variance</h1>
<h2>Parameters</h2>
<ul><li>Target measure: Significance level</li>
<li>alternative: two.sided</li>
</ul>
DATE<br />
<table border="1">
<tr><td></td><td>Parameters</td></tr>
<tr><td>d</td><td>0.3</td></tr>
<tr><td>n</td><td>30</td></tr>
<tr><td>sig.level</td><td>0.40906</td></tr>
<tr><td>power</td><td>0.8</td></tr>
</table>
<p class='character'>Interpretation of effect size <strong>d</strong> (according to Cohen):</p>
<table border="1">
<tr><td>small</td><td>medium</td><td>large</td></tr>
<tr><td>0.2</td><td>0.5</td><td>0.8</td></tr>
</table>
<h1>Multiple regression power calculation</h1>
<h2>Parameters</h2>
<ul><li>Target measure: Parameter count</li>
</ul>
DATE<br />
<table border="1">
<tr><td></td><td>Parameters</td></tr>
<tr><td>u</td><td>3.4454</td></tr>
<tr><td>v</td><td>30</td></tr>
<tr><td>f2</td><td>0.3</td></tr>
<tr><td>sig.level</td><td>0.1</td></tr>
<tr><td>power</td><td>0.8</td></tr>
</table>
<p class='character'>Interpretation of effect size <strong>f<sup>2</sup></strong> (according to Cohen):</p>
<table border="1">
<tr><td>small</td><td>medium</td><td>large</td></tr>
<tr><td>0.02</td><td>0.15</td><td>0.35</td></tr>
</table>
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment