我对 R 中的代数方程不熟悉,正在尝试在 R 中实现以下方程(如下)。
然而,正如我试图做到的那样精确,我希望答案是
0.050865
,但我却得到了11.43653
。
我想知道我错过了什么,因为我真的找不到任何错误?
delta_T=0.1522
n=18
NT=324
NC=162
p=0.264
N=NT+NC
V_T2 = ((NT+NC)/(NT*NC))*(1 + ((n - 1)*p)) +
( delta_T^2 * (
(((N - 2)*(1-p)^2 ) + (n*(N - 2*n)*p^2) +
(2* (N - 2*n) * p * (1 - p)) ) /
(2* (N-2)) * ( (N-2) - (2* (n-1)*p) )
) )
V_T2
# > [1] 11.43653 BUT I expect the answer to be 0.050865
你得到错误答案的原因是,在第二学期,你认为你正在做
numerator
/
denominator
但你实际上在做的是
numerator
/
(2 * (N - 2))
*
((N - 2) - (2 * (n - 1) * p) )
所以,换句话说,你在分母两边缺少括号。
但是,一般来说,在处理复杂的方程时,将代码分解为中间变量会很有帮助,这样更容易调试,并且可以对它们进行健全性检查: