数学建模(NO.9斯皮尔曼相关系数)

article/2025/10/16 14:35:16

斯皮尔曼相关系数

  • 一. 定义
  • 方法一:计算公式法
  • 三.方法二:利用皮尔逊相关系数法
  • 四.Matlab计算
  • 五.斯皮尔曼和皮尔逊对比
  • 六.斯皮尔曼相关系数的假设检验
    • 1.小样本(查表)
    • 2.大样本(计算统计量)
  • 七.两个比较
  • 八.相关代码

一. 定义

在这里插入图片描述

方法一:计算公式法

在这里插入图片描述

三.方法二:利用皮尔逊相关系数法

在这里插入图片描述

四.Matlab计算

在这里插入图片描述

五.斯皮尔曼和皮尔逊对比

在这里插入图片描述

六.斯皮尔曼相关系数的假设检验

1.小样本(查表)

在这里插入图片描述

2.大样本(计算统计量)

在这里插入图片描述
在这里插入图片描述

七.两个比较

在这里插入图片描述

八.相关代码

%% 斯皮尔曼相关系数
X = [3 8 4 7 2]'  % 一定要是列向量哦,一撇'表示求转置
Y = [5 10 9 10 6]'
% 第一种计算方法
1-6*(1+0.25+0.25+1)/5/24% 第二种计算方法
coeff = corr(X , Y , 'type' , 'Spearman')
% 等价于:
RX = [2 5 3 4 1]
RY = [1 4.5 3 4.5 2]
R = corrcoef(RX,RY)% 计算矩阵各列的斯皮尔曼相关系数
R = corr(Test, 'type' , 'Spearman')% 大样本下的假设检验
% 计算检验值
disp(sqrt(590)*0.0301)
% 计算p值
disp((1-normcdf(0.7311))*2) % normcdf用来计算标准正态分布的累积概率密度函数% 直接给出相关系数和p值
[R,P]=corr(Test, 'type' , 'Spearman')
function [p]= calculate_p(r, m, kind)
% % 输入值:% r:斯皮尔曼相关系数% m: 样本个数% kind: 1表示单侧检验 2表示双侧检验
% % 返回值:% p:计算出来的p值z = abs(r) * sqrt(m-1); % 计算检验值  注意这里的相关系数我们先转换为正数再进行计算p = (1 - normcdf(z)) * kind; % 计算p值,双侧检验的p值是单侧检验的2倍end
function [r]= calculate_r(X, Y)
% % 输入值:% X: 列向量% Y: 列向量,且与X同维度
% % 返回值:% r: X和Y的斯皮尔曼相关系数(第一种定义方法)RX = rank_data(X);  % 调用自定义函数 rank_data 来计算X的等级RY = rank_data(Y);  % 调用自定义函数 rank_data 来计算Y的等级d = RX - RY; % 计算X和Y等级差n = size(X,1); % 计算样本个数nr = 1 - (6 * sum(d .* d)) / (n * (n^2-1));  % 利用公式计算斯皮尔曼相关系数end
function [ R , P ]= fun_spearman(X, kind)  
% % 输入值:% X: m*n维数据矩阵,每一行表示一个样本,每一列表示一个指标;且 m >=30 以及 n >= 2 % kind=1: 单侧检验;kind=2: 双侧检验 (不输入默认为2)
% % 返回值:% R: 斯皮尔曼相关系数矩阵(n*n维)% P: 对应的p值矩阵(n*n维)if nargin == 1  % 判断用户输入的参数,如果只输入了一个参数,则默认kind = 2kind = 2;end[m,n] = size(X); % 计算样本个数和指标个数if m < 30  % 判断是否样本数太少disp('样本个数少于30,请直接查临界值表进行假设检验')elseif n <2  % 判断是否指标数太少disp('指标个数太少,无法计算')elseif kind ~= 1 && kind ~= 2 % 判断kind是否为1或者2disp('kind只能取1或者2')else  % 如果上述输入均没问题的话就执行下面的操作R = ones(n); % 初始化R矩阵P = ones(n); % 初始化P矩阵for i = 1: nfor j = (i+1): n   % 这样设置循环只计算主对角线上半部分的值r = calculate_r(X(:, i), X(:, j));  % 用子函数 calculate_r 计算i和j两列的相关系数rp = calculate_p(r, m, kind); % 用子函数 calculate_p 计算p值R(i, j) = r;  R(j, i) = r;  % 把计算出来的相关系数r填充到我们的R矩阵中,注意R矩阵对称P(i, j) = p; P(j, i) = p;  % 把计算出来的p值填充到我们的P矩阵中,注意P矩阵对称endendendend
function [RX]= rank_data(X)
% % 输入值:% X: 列向量
% % 返回值:% RX: 对应的X的等级%  举个例子X = [5 10 9 10 6]'[~ ,index] = sort(X);  % ~表示我们不需要第一个输出值(即我们排序后的X [5 6 9 10 10]% 注意这里的index = [1 5 3 2 4]' 是我们排序后的X在原向量中的位置[~ ,RX] = sort(index);  % 对index进行一次升序,得到的rx就是我们想要的等级 rx = [1 4 3 5 2]'% 但是这个等级还有一点小问题 ,那就是没有考虑到相等取平均值的问题for i = 1:size(X,1)  % 设置一个循环  (假设此时程序运行到了i = 2)position = ( X == X(i) ); % 得到X中与X(i)相等的位置,返回一个列向量,向量值全为10% (i= 2,position = [0 1 0 1 0]' )RX(position == 1) = sum(RX .* position) / sum(position);  % 对RX进行处理 %  rx .* position = [0 4 0 5 0]'   %  那么 sum(rx .* position) / sum(position) = (4+5) / 2 = 4.5%  rx(position == 1)  = 4.5 : 对rx中与position == 1对应位置的元素(即第2和第4个位置)进行赋值操作end
end

http://chatgpt.dhexx.cn/article/92MaFWEt.shtml

相关文章

【FinE】统计与计量指标计算(Matlab)

导航 CDF函数(normal distribution)CDF函数(t-location-scale distribution)CAPM模型 β \beta β计算误差项 ε i \varepsilon_i εi​计算correlation and covariance t t t分布拟合序列Generalized Hyperbolic Distributionapproximation method 1approximation method 2 Go…

【概率论与数理统计】python实验

实验一抛硬币试验的模拟 利用python产生一系列0和1的随机数&#xff0c;模拟抛硬币试验。验证抛一枚质地均匀的硬币&#xff0c;正面向上的频率的稳定值为0.5。 实验步骤 &#xff08;1&#xff09;生成0和1的随机数序列&#xff0c;将其放入列表count中&#xff1b;也可用函数…

matlab 数理统计,概率论和数理统计(matlab应用)1

概率论和数理统计(matlab应用)1 (2006-04-29 08:53:49) 12.1 概 述 自然界和社会上会发生各种各样的现象&#xff0c;其中有的现象在一定条件下是一定要发生的&#xff0c;有的则表现出一定的随机性&#xff0c;但总体上又有一定的规律可循。一般称前者为确定性事件&#xff0c…

正态分布中normpdf和normcdf的区别

同时&#xff0c;也可以扩展为其它函数的区别&#xff0c;即pdf与cdf

matlab中normcdf函数用法,Matlab中标准正态分布的密度函数是normcdf(x,0,1)

中标准正属于项目资本现金流量表中现金流出构成的是() 态分USCI模块中的波特率由分频器和调制器共同作用生成。 在MSP430F66xx时钟设置中XT1的XIN和XOUT引脚接32768Hz低频晶振&#xff0c;密度则UCSCTL6的UCSCTL6 & ~XT1OFF表示使能XT1&#xff0c;UCSCTL6 | XCAP_3表示选择…

matlab中normcdf和normpdf区别

最近准备参加个数学建模&#xff0c;其中校赛题目是有关于正态分布的排队论&#xff0c;在做的时候总是发现有问题&#xff0c;后来仔细研究才发现在matlab中关于正态分布有两个函数normcdf和normpdf。

【Matlab】正态分布常用函数normpdf_normcdf_norminv_normrnd_normfit

1.normpdf 功能&#xff1a;正态分布概率密度函数 用法 Y normpdf(X,mu,sigma) Y normpdf(X) % (mu 0, sigma 1) Y normpdf(X,mu) % (sigma 1)例子 % code1 % 画标准正态分布概率密度函数 x -10:0.01:10; y normpdf(x, 0, 1); plot(x,y); grid on;结果&#xff1a…

firefox iMacros

iMacros是一个基于firefox的插件&#xff0c;它可以帮助你自动填写表单&#xff0c;自动提交&#xff0c;自动上传下载等 iMacros就是一个可以帮助你实现自动化重复性的任务。无论你对Firefox做什么&#xff0c;iMacros可以自动执行它。网络设计人员可以使用的功能测试和回归测…

SEO必备的利器–iMacros

Via http://www.snailtoday.com/2012/02/imacros/ 今天向大家介绍一个做SEO必备的利器–iMacros&#xff0c;我们可以用它来自动发布博客评论、自动注册论坛账号、自动发布文章等&#xff0c;几乎可以和一些SEO软件相媲美。其实在之前翻译的一篇文章《10000美元/天是这样炼成的…

imacros:使用外部编辑器

2019独角兽企业重金招聘Python工程师标准>>> 在imacros中&#xff0c;右击iim文件&#xff0c;选择编辑宏&#xff0c;会调用imacros自带的编辑器进行编辑。 其实也可以自定义&#xff1a; 在Paths选项卡中选择外部编辑器&#xff1a; 转载于:https://my.oschina.ne…

FF的插件iMacros简单交流

今天组织了公司第一次软件测试沙龙&#xff0c;主题是自动化测试插件--iMacros&#xff0c;公司的一位同事分享了他关于iMacros使用的一些心得给我们分享&#xff0c;现小小总结一下&#xff1a; iMacros是一款功能比较强的FF插件&#xff08;当然也有IE和chrome的版本&#xf…

imacros:初次尝试

2019独角兽企业重金招聘Python工程师标准>>> 安装 打开火狐插件管理页面&#xff0c;搜索、安装&#xff1a; 当然&#xff0c;用的免费版本。 安装后&#xff0c;工具栏出现&#xff1a; 示例 VERSION BUILD9030808 RECORDERFX TAB T1 TAB CLOSEALLOTHERS URL GOT…

imacros:运行javascript

2019独角兽企业重金招聘Python工程师标准>>> 将#Current.iim重命名为js后缀的文件&#xff0c;例如test.js。注意&#xff0c;每次录制时都会有新的#Current.iim产生&#xff0c;若无则会新建&#xff0c;有则覆盖内容。 运行test.js&#xff1a; 这里的js有较多的限…

如何使用iMacros进行web程序中页面加载的性能测试

iMacros 的官方简介如下&#xff0c;这里就不做翻译了&#xff0c;本人觉得还是看原汁原味的介绍好。 iMacros is an extension for the Mozilla Firefox web browsers which adds record and replay functionality similar to that found in web testing and form filler sof…

火狐浏览器Firefox 如何使用iMacros 自动填写网页表单

1 我们首先访问一个想要自动填写表单的网站。我们以百度为例&#xff0c;右侧有登录窗口。 2 然后我们点开刚安装上的iMacros插件&#xff0c;一般安装之后就会自动出现在浏览器的某个地方&#xff0c;点击记录选项卡&#xff0c;再点击记录。 3 iMacros将立即开始记录宏命令…

如何使用iMacros自动化重复的网页浏览器任务

如何使用iMacros自动化重复的网页浏览器任务 计算机应该自动重复任务- 如果你发现自己提交或者重复地导航网站&#xff0c;试试 iMacros 。 是 easy-to-use - 你只需要做一次动作。 iMacros对于任何在web浏览器中执行重复任务的人都是理想的&#xff0c;无论是否重复提交复杂的…

使用 iMacros 来自动化日常的工作

不管在哪一个行业&#xff0c;测试已经成为制造&#xff0c;开发流程中&#xff0c;一个必要的环节。特别是指软件行业。 近年来由于 Web Application 的开发&#xff0c;是市场上热门的显学&#xff0c;虽然不到汉武帝“独尊儒术”的一统天下&#xff0c;但是根据有效的问卷调…

iMacros使用技巧

众所周知&#xff0c;iMacros是一款优秀的Chrome插件&#xff0c;可以方便的录制、运行浏览器宏命令&#xff0c;是抢课截胡的神器&#xff08;手动滑稽&#xff09;&#xff0c;在此简单记录一下它的使用技巧。 技巧一&#xff1a;合理使用WAIT SECONDS命令 WAIT SECONDS 等待…

imacros

为什么80%的码农都做不了架构师&#xff1f;>>> 软件测试 imacros Firefox火狐扩展iMacro脚本入门教程 http://macrotea.iteye.com/blog/1702554 转载于:https://my.oschina.net/lsjun/blog/335799

imacros自动跑代码_如何使用iMacros自动执行重复的Web浏览器任务

imacros自动跑代码 Computers are supposed to automate repetitive tasks – if you find yourself submitting forms over and over or repeatedly navigating a website by hand, try iMacros. It’s easy-to-use – all you have to do is perform an action once. 计算机应…