|
146 | 146 | end |
147 | 147 | else |
148 | 148 | STAT = abs (effsz); |
| 149 | + if (STAT >= 1) |
| 150 | + error ('sampszcalc: |r| must be < 1') |
| 151 | + end |
149 | 152 | end |
150 | 153 | STAT = atanh (STAT); |
151 | 154 | testtype = 'z'; |
|
182 | 185 | % Create function to optimize sample size based on Student-t |
183 | 186 | % distribution and n * k - k degrees of freedom |
184 | 187 | if ((exist ('betaincinv', 'builtin')) || (exist ('betaincinv', 'file'))) |
185 | | - studinv = @(P, DF) sign (P - 0.5) * ... |
186 | | - sqrt ( DF ./ betaincinv (2 * min (P, 1 - P), DF / 2, 0.5) - DF); |
| 188 | + studinv = @(P, DF) sign (P - 0.5) * sqrt ( DF ./ betaincinv ( ... |
| 189 | + 2 * min (P, 1 - P), DF / 2, 0.5) - DF); |
187 | 190 | else |
188 | | - studinv = @(P, DF) sign (P - 0.5) * ... |
189 | | - sqrt ( DF ./ betainv (2 * min (P, 1 - P), DF / 2, 0.5) - DF); |
| 191 | + studinv = @(P, DF) sign (P - 0.5) * sqrt ( DF ./ betainv ( ... |
| 192 | + 2 * min (P, 1 - P), DF / 2, 0.5) - DF); |
190 | 193 | end |
191 | | - func = @(n) n - k * ... |
192 | | - (((studinv (power, n * k - k) + ... |
193 | | - studinv (1 - alpha / tails, n * k - k)) / STAT)^2 + c); |
| 194 | + func = @(n) n - k * (((studinv (power, max (1, n * k - k)) + ... |
| 195 | + studinv (1 - alpha / tails, max (1, n * k - k))) / STAT)^2 + c); |
194 | 196 | n = ceil (fzero (func, n0) * deff); % Find the root using fzero |
195 | 197 | end |
196 | 198 |
|
|
0 commit comments