首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MATLAB中计算t检验的p值?

如何在MATLAB中计算t检验的p值?
EN

Stack Overflow用户
提问于 2012-05-14 18:24:48
回答 1查看 24.7K关注 0票数 1

在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$.

EN

回答 1

Stack Overflow用户

发布于 2014-06-24 06:35:58

我检查了ttest函数中的p值以及使用此公式计算的p值:

代码语言:javascript
复制
% Let n be your sample size
% Let v be your degrees of freedom

% Then:
pvalues = 2*(1-tcdf(abs(t),n-v)) 

他们是一样的!

Matlab演示数据集示例:

代码语言:javascript
复制
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);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10617050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档