在MATLAB中是否有简单的t检验p值的计算方法?
我发现了类似的东西,但是我认为它没有返回正确的值:
Pval=2*(1-tcdf(abs(t),n-2))
我想为回归的斜率等于0的测试计算p值。因此,我计算标准误差
}^{i+w}{(y_{s}-\widehat{y}s})^2}{(w-2)\sum{s=i-w}^{i+w}{(x_{s}-\bar{x}})^2}}$ { $SE= \sqrt{\\sum_{s=i\sum_
其中$y_s$是时间周期$s$中被分析参数的值,
$\widehat{y}_s$是在时间周期$s$中分析的参数的估计值,
$x_i$是被分析参数的观测值的时间点,
$\bar{x}$是分析期间的时间点的平均值,然后
$t_{score} = (a - a_{0})/SE$,其中$a_{0}$ $a_{0} $$a_{0}= 0$.
发布于 2014-06-24 06:35:58
我检查了ttest函数中的p值以及使用此公式计算的p值:
% Let n be your sample size
% Let v be your degrees of freedom
% Then:
pvalues = 2*(1-tcdf(abs(t),n-v)) 他们是一样的!
Matlab演示数据集示例:
load accidents
x = hwydata(:,2:3);
y = hwydata(:,4);
stats = regstats(y,x,eye(size(x,2)));
fprintf('T stat using built-in function: \t %.4f\n', stats.tstat.t);
fprintf('P value using built-in function: \t %.4f\n', stats.tstat.pval);
fprintf('\n\n');
n = size(x,1);
v = size(x,2);
b = x\y;
se = diag(sqrt(sumsqr(y-x*b)/(n-v)*inv(x'*x)));
t = b./se;
p = 2*(1-tcdf(abs(t),n-v));
fprintf('T stat using own calculation: \t\t %.4f\n', t);
fprintf('P value using own calculation: \t\t %.4f\n', p);https://stackoverflow.com/questions/10617050
复制相似问题