网站建设与设计实习报告,logo免费自动生成器app,网站应急响应机制建设,公司名称大全简单大气四个字第一部分#xff1a;相关系数简介
总体与样本#xff1a; 总体#xff1a;指研究对象的全体#xff0c;比如全国人口普查数据。样本#xff1a;从总体中抽取的一部分个体#xff0c;如通过问卷调查收集的学生数据。
皮尔逊相关系数#xff1a; 总体皮尔逊相关系数相关系数简介
总体与样本 总体指研究对象的全体比如全国人口普查数据。样本从总体中抽取的一部分个体如通过问卷调查收集的学生数据。
皮尔逊相关系数 总体皮尔逊相关系数衡量两个变量之间的线性相关性。它是将两个变量标准化后的协方差消除了量纲的影响。样本皮尔逊相关系数与总体相关系数类似但在计算时分母为(n-1)而不是(n)这是为了更好地估计总体相关系数。
相关性可视化通过绘制散点图来直观展示两个变量之间的相关性。
第二部分皮尔逊相关系数的理解误区
理解误区 非线性相关即使两个变量之间存在强烈的非线性关系皮尔逊相关系数也可能很小。离群点的影响单个离群点可能会导致相关系数的显著变化。相关性不代表因果关系即使两个变量高度相关也不一定存在因果联系。零相关性相关系数为0并不意味着变量之间没有任何关系可能存在着非线性关系。
第三部分皮尔逊相关系数的假设检验
假设检验用于判断两个变量之间的相关性是否显著即是否真的存在线性相关而非偶然出现。 拒绝域在假设检验中如果计算出的统计量落入拒绝域则拒绝原假设。接受域如果统计量落在接受域内则接受原假设。
p值判断法一种更加直观的检验方法通过比较计算出的p值与预设的显著性水平如0.05来判断是否拒绝原假设。
第四部分计算各列之间的相关系数及p值
相关系数表显示了不同变量之间的相关性强度。显著性标记用来表示相关系数的显著性水平如***表示p值小于0.01**表示p值小于0.05等。
第五部分皮尔逊相关系数假设检验的条件
条件 正态分布数据应当成对来自于正态分布的总体。数据差距数据之间的差距不能太大以减少异常值的影响。独立抽样样本之间应该是独立的。
第六部分正态分布检验
JB检验大样本适用于样本量较大的情况通过比较样本的偏度和峰度与正态分布的偏度和峰度来进行检验。Shapiro-Wilk检验小样本适用于较小的样本量通常为3到50用于检验数据是否符合正态分布。Q-Q图通过比较数据点与理论正态分布的分位数来直观判断数据是否接近正态分布。
第七部分操作步骤总结
Excel中的美化步骤 调整单元格格式为正方形。设置文本居中对齐。使用条件格式中的色阶功能来突出相关系数的高低。编辑条件格式规则以实现更精细的控制。
小结
通过上述内容我们可以了解到皮尔逊相关系数的计算和应用以及如何在实际数据分析中使用它来评估变量之间的线性相关性并进行相应的假设检验。此外我们还了解到了如何利用统计软件和Excel来处理数据以及如何通过图形化的方式直观地展示数据和结果。 function [ R , P ] fun_spearman(X, kind)
% % 输入值% X: m*n维数据矩阵每一行表示一个样本每一列表示一个指标且 m 30 以及 n 2 % kind1: 单侧检验kind2: 双侧检验 (不输入默认为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 (i1): 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% % 注意代码文件仅供参考一定不要直接用于自己的数模论文中
% % 国赛对于论文的查重要求非常严格代码雷同也算作抄袭
% % 视频中提到的附件可在售后群购买后收到的那个无忧自动发货的短信中有加入方式的群文件中下载。包括讲义、代码、我视频中推荐的资料等。
% % 关注我的微信公众号《数学建模学习交流》后台发送“软件”两个字可获得常见的建模软件下载方法发送“数据”两个字可获得建模数据的获取方法发送“画图”两个字可获得数学建模中常见的画图方法。另外也可以看看公众号的历史文章里面发布的都是对大家有帮助的技巧。
% % 购买更多优质精选的数学建模资料可关注我的微信公众号《数学建模学习交流》在后台发送“买”这个字即可进入店铺(我的微店地址https://weidian.com/?userid1372657210)进行购买。
% % 视频价格不贵但价值很高。单人购买观看只需要58元三人购买人均仅需46元视频本身也是下载到本地观看的所以请大家不要侵犯知识产权对视频或者资料进行二次销售。
% % 如何修改代码避免查重的方法https://www.bilibili.com/video/av59423231必看
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% % 注意代码文件仅供参考一定不要直接用于自己的数模论文中
% % 国赛对于论文的查重要求非常严格代码雷同也算作抄袭
% % 视频中提到的附件可在售后群购买后收到的那个无忧自动发货的短信中有加入方式的群文件中下载。包括讲义、代码、我视频中推荐的资料等。
% % 关注我的微信公众号《数学建模学习交流》后台发送“软件”两个字可获得常见的建模软件下载方法发送“数据”两个字可获得建模数据的获取方法发送“画图”两个字可获得数学建模中常见的画图方法。另外也可以看看公众号的历史文章里面发布的都是对大家有帮助的技巧。
% % 购买更多优质精选的数学建模资料可关注我的微信公众号《数学建模学习交流》在后台发送“买”这个字即可进入店铺(我的微店地址https://weidian.com/?userid1372657210)进行购买。
% % 视频价格不贵但价值很高。单人购买观看只需要58元三人购买人均仅需46元视频本身也是下载到本地观看的所以请大家不要侵犯知识产权对视频或者资料进行二次销售。
% % 如何修改代码避免查重的方法https://www.bilibili.com/video/av59423231必看
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% % 注意代码文件仅供参考一定不要直接用于自己的数模论文中
% % 国赛对于论文的查重要求非常严格代码雷同也算作抄袭
% % 视频中提到的附件可在售后群购买后收到的那个无忧自动发货的短信中有加入方式的群文件中下载。包括讲义、代码、我视频中推荐的资料等。
% % 关注我的微信公众号《数学建模学习交流》后台发送“软件”两个字可获得常见的建模软件下载方法发送“数据”两个字可获得建模数据的获取方法发送“画图”两个字可获得数学建模中常见的画图方法。另外也可以看看公众号的历史文章里面发布的都是对大家有帮助的技巧。
% % 购买更多优质精选的数学建模资料可关注我的微信公众号《数学建模学习交流》在后台发送“买”这个字即可进入店铺(我的微店地址https://weidian.com/?userid1372657210)进行购买。
% % 视频价格不贵但价值很高。单人购买观看只需要58元三人购买人均仅需46元视频本身也是下载到本地观看的所以请大家不要侵犯知识产权对视频或者资料进行二次销售。
% % 如何修改代码避免查重的方法https://www.bilibili.com/video/av59423231必看
这段代码提供了计算斯皮尔曼相关系数及其对应的p值的功能。下面是代码的详细解释和拓展
主函数 fun_spearman
该函数接收一个数据矩阵 X 和一个可选参数 kind返回斯皮尔曼相关系数矩阵 R 和对应的p值矩阵 P。
参数说明
X: m×n 维数据矩阵每一行表示一个样本每一列表示一个指标。kind: 检验类型1表示单侧检验2表示双侧检验默认为2。
返回值
R: 斯皮尔曼相关系数矩阵n×n维。P: 对应的p值矩阵n×n维。
函数逻辑
参数检查: 如果只输入了一个参数则默认 kind 2。检查样本个数是否至少为30。检查指标个数是否至少为2。检查 kind 是否为1或2。
初始化输出矩阵: 创建 R 和 P 矩阵并将其所有元素初始化为1。
计算相关系数和p值: 遍历所有可能的指标对计算斯皮尔曼相关系数和p值。使用 calculate_r 和 calculate_p 子函数来计算相关系数和p值。将计算结果填入 R 和 P 矩阵中。
子函数 calculate_r
该函数用于计算斯皮尔曼相关系数。
参数说明
X: 列向量。Y: 列向量与 X 同维度。
返回值
r: 斯皮尔曼相关系数。
函数逻辑
计算等级: 使用 rank_data 函数计算 X 和 Y 的等级。
计算等级差: 计算等级之间的差异 d。
计算相关系数: 使用斯皮尔曼相关系数的定义公式计算相关系数 r。
子函数 calculate_p
该函数用于计算p值。
参数说明
r: 斯皮尔曼相关系数。m: 样本个数。kind: 检验类型1表示单侧检验2表示双侧检验。
返回值
p: p值。
函数逻辑
计算检验值: 计算检验值 z其中相关系数 r 被转换为正值。
计算p值: 使用标准正态分布累积分布函数 normcdf 计算单侧p值。对于双侧检验将单侧p值乘以2得到最终的p值。
子函数 rank_data
该函数用于计算向量的等级。
参数说明
data: 输入向量。
返回值
rankedData: 输出等级向量。
函数逻辑
排序: 对输入向量进行排序。
计算等级: 计算每个元素的等级。
使用示例
假设我们有一个数据矩阵 X包含多组观测值。
X [3 5 6 1; 7 8 2 4; 2 4 8 9; 1 3 9 2]; % 示例数据
[R, P] fun_spearman(X);
disp(R); % 显示斯皮尔曼相关系数矩阵
disp(P); % 显示p值矩阵
注意事项
该代码仅供学习参考不应用于正式的研究或竞赛提交以免造成代码雷同。在实际使用时需要自行修改代码以避免与他人雷同。代码中的 rank_data 函数未给出实现细节这里可以使用MATLAB内置的 rank 函数或其他方法来实现。
扩展说明
如果需要对等级进行平局处理例如多个相同数值的等级分配可以在 rank_data 函数中加入相应的逻辑。可以添加更多的错误处理逻辑比如当输入矩阵不是二维时抛出错误。可以增加更多的输出信息如在计算过程中打印进度条等方便用户了解程序运行状态。 在数学建模中相关系数是一种重要的统计工具用于衡量两个变量之间的关联程度。相关系数可以帮助我们理解数据集中的变量是如何相互作用的这对于预测模型的建立和解释是非常有用的。以下是几种常用的相关系数及其在数学建模中的应用说明
1. 皮尔逊相关系数Pearson correlation coefficient
皮尔逊相关系数衡量的是两个变量之间的线性相关性。它的值范围是 ([-1, 1])其中
1 表示完全正相关-1 表示完全负相关0 表示没有线性相关性。
计算公式
[ r \frac{\sum (X_i - \bar{X})(Y_i - \bar{Y})}{\sqrt{\sum (X_i - \bar{X})2 \sum (Y_i - \bar{Y})2}} ] 其中(\bar{X}) 和 (\bar{Y}) 分别是 (X) 和 (Y) 的平均值。
应用场景
用于分析变量间的线性关系。用于特征选择帮助识别哪些变量对预测目标变量最有价值。用于检测模型中的多重共线性问题。
2. 斯皮尔曼等级相关系数Spearmans rank correlation coefficient
斯皮尔曼等级相关系数是一种非参数统计方法用于衡量两个变量之间的单调关系。它适用于数据不是正态分布的情况或当数据以等级形式给出时。
计算公式
[ r_s 1 - \frac{6 \sum d_i2}{n(n2-1)} ] 其中(d_i) 是第 (i) 个观测值中 (X) 和 (Y) 的等级差(n) 是观测值的数量。
应用场景
用于非正态分布的数据。用于数据中存在异常值的情况。用于检测两个变量之间的非线性关系。
3. 肯德尔秩相关系数Kendalls tau correlation coefficient
肯德尔秩相关系数也是衡量两个变量之间顺序关系的一种方法适用于分类变量或等级数据。
计算公式
[ \tau \frac{(\text{number of concordant pairs}) - (\text{number of discordant pairs})}{\frac{1}{2} n(n-1)} ] 其中(n) 是观测值的数量。
应用场景
用于评委对选手的评分等场景。用于医院的尿糖化验报告等场景。
4. 相关系数的假设检验
无论是皮尔逊相关系数还是斯皮尔曼等级相关系数通常都需要进行假设检验来确定相关系数是否显著。常用的假设检验方法包括t检验和秩和检验。
t检验
用于皮尔逊相关系数的假设检验。通常情况下如果p值小于0.05则认为相关系数显著。
秩和检验
用于斯皮尔曼等级相关系数的假设检验。同样如果p值小于0.05则认为相关系数显著。
实现代码示例
以下是一个简单的MATLAB代码示例用于计算斯皮尔曼等级相关系数及其对应的p值
function [ R , P ] fun_spearman(X, kind)
% 输入值
% X: m*n维数据矩阵每一行表示一个样本每一列表示一个指标且 m 30 以及 n 2
% kind1: 单侧检验kind2: 双侧检验 (不输入默认为2)if nargin 1 % 判断用户输入的参数如果只输入了一个参数则默认kind 2kind 2;
end[m,n] size(X); % 计算样本个数和指标个数if m 30 % 判断是否样本数太少error(样本个数少于30请直接查临界值表进行假设检验);elseif n 2 % 判断是否指标数太少error(指标个数太少无法计算);elseif kind ~ 1 kind ~ 2 % 判断kind是否为1或者2error(kind只能取1或者2);else % 如果上述输入均没问题的话就执行下面的操作R ones(n); % 初始化R矩阵P ones(n); % 初始化P矩阵for i 1: nfor j (i1): 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矩阵对称endend
end% 子函数 calculate_r
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); % 计算样本个数n
r 1 - (6 * sum(d .* d)) / (n * (n^2-1)); % 利用公式计算斯皮尔曼相关系数end% 子函数 calculate_p
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% 子函数 rank_data
function rankedData rank_data(data)
% 计算等级
sortedIndices sortrows(data);
ranks (1:size(data,1));
rankedData ranks(sortedIndices);
end
使用示例
假设我们有一组数据 X我们可以这样调用上面定义的函数来计算斯皮尔曼相关系数和p值
X [3 5 6 1; 7 8 2 4; 2 4 8 9; 1 3 9 2]; % 示例数据
[R, P] fun_spearman(X);
disp(R); % 显示斯皮尔曼相关系数矩阵
disp(P); % 显示p值矩阵
通过这种方式你可以轻松地在数学建模项目中应用相关系数分析来探索变量之间的关系。