相、关、系、数等

皮尔逊pearson相关系数和斯皮尔曼spearman等级相关系数

 

相关系数,衡量两个变量之间的相关性大小,根据数据满足的不同条件,选择不同的相关系数进行分析。

一般,都是用pearson相关系数,很少看到后者。

pearson相关系数,就是概率论与数理统计中学到的相关系数

 

 对相关系数的检验

 上面的数据Test如下

 

 

 

 假设检验的知识

 

 

 

 更快的方法

 

 

斯皮尔曼spearman相关系数

实际用的很少

 

 matlab采用的定义

 

 计算相关系数,如下,数据需要满足服从正态分布,因此需要假设检验是否服从正态分布

 知道有这两种相关系数即可,实际使用的还是概率论与数理统计中的皮尔逊相关系数

在典型相关性分析中,用的是皮尔逊相关系数

 

 

 

 

 

因子分析

 

假设检验---概率论与数理统计

 

 

 

 

符号运算

function syms_function_lizi
%不建议使用clc清屏,清除历史数据,不便于回头观察数据输出
%% 符号方程的创建
clear
%符号变量的创建
syms a b c
syms x
%符号方程的传教
y=a*x+x^2
%或者
y=str2sym('a*x+x^2')
% 
% y =
%  
% x^2 + a*x
%  
%  
% y =
%  
% x^2 + a*x
%  
%符号矩阵
clear
syms alpha
M=[cos(alpha),-sin(alpha);
    sin(alpha), cos(alpha)]
% M =
%  
% [ cos(alpha), -sin(alpha)]
% [ sin(alpha),  cos(alpha)]
 
%% 简单运算--结合数学函数
clear
syms a b c d e 
y=a+b
% y =
%  
% a + b
x=c-d
% x =
%  
% c - d
y1=x*y
% y1 =
%  
% (a + b)*(c - d)
y2=y1/y
% y2 =
%  
% c - d
y3=y1^3
% y3 =
%  
% (a + b)^3*(c - d)^3
y4=sqrt(y3)
% y4 =
%  
% ((a + b)^3*(c - d)^3)^(1/2)
y5=exp(y4)
% y5 =
%  
% exp(((a + b)^3*(c - d)^3)^(1/2))


%% 符号表达式的整理,如展开,化简等
clear
syms a
y=(cot(a/2)-tan(a/2))*(1+tan(a)*tan(a/2))
%化简
simplify(y)%2/sin(a)
%因式分解
factor(2/sin(a))%[ 2, 1/sin(a)]
factor(12)%2     2     3
%
syms m n x
y = -24*m^2*x-16*n^2*x
factor(y)%[ -8, x, 3*m^2 + 2*n^2]
y1=m^3-n^3
factor(y1)%[ m - n, m^2 + m*n + n^2]
%多项式展开
syms a x
y=a*(x^2-a)^2+(x-2)%x + a*(- x^2 + a)^2 - 2
expand(y)%a^3 - 2*a^2*x^2 + a*x^4 + x - 2
%合并
syms x y
z=(x+y)^2*y+5*y*x-2*x^3%5*x*y + y*(x + y)^2 - 2*x^3
expand(z)%- 2*x^3 + x^2*y + 2*x*y^2 + 5*x*y + y^3
%y*x^2 - 2*x^3 + (2*y^2 + 5*y)*x + y^3
collect(z,x)%将z的符号表达式按照x为主元的多项式排列
collect(z,y)%y^3 + 2*x*y^2 + (x^2 + 5*x)*y - 2*x^3
% Examples:
%        syms x y
%  
%        collect(x^2*y + y*x - x^2 - 2*x)  returns (y - 1)*x^2 + (y - 2)*x
%  
%        f = -1/4*x*exp(-2*x)+3/16*exp(-2*x)
%        collect(f,exp(-2*x))  returns -(x/4 - 3/16)/exp(2*x)
%  
%        f = x*sin(x) + sin(x) + x*sin(2*x) - sin(2*x)
%        collect(f, 'sin')  returns (x + 1)*sin(x) + (x - 1)*sin(2*x)
%计算分子和分母
[z1,z2] = numden(2.5) % 对常数计算分子与分母
%未定义与 'double' 类型的输入参数相对应的函数 'numden'。
[z1,z2] = numden(sym(2.5)) % 对常数计算分子与分母
% z1 =
%  
% 5
%  
%  
% z2 =
%  
% 2
syms a
[z1,z2] = numden(2/sin(a))
% z1 =
%  
% 2
%  
%  
% z2 =
%  
% sin(a)
syms x y
z=1/x*y+x/(x^2-2*y)
[z1,z2] = numden(z)%z1分子,z2分母
% z1 =
%  
% - x^2*y - x^2 + 2*y^2
%  
%  
% z2 =
%  
% x*(- x^2 + 2*y)
syms x y
M=(1/x*y+x/(x^2-2*y)-x^2/(3+y)^2)^2%(x^2/(y + 3)^2 + x/(- x^2 + 2*y) - y/x)^2
expand(M)%展开
factor(M)%因式分解
[z1,z2] = numden(M)%写成分子分母形式%z1分子,z2分母

%% 一元函数的导数
clear
syms x
y=x^4-5*x^2+6%x^4 - 5*x^2 + 6
diff(y)%4*x^3 - 10*x%一阶导
diff(y,2)%求二阶导%12*x^2 - 10
diff(y,3)%求三阶导%24*x

y=cos(x)*tan(x)
dy=diff(y,10)%求10阶导
simplify(dy)%-sin(x)

y=sin(x)*tan(x)
dy=diff(y,10)
simplify(dy)%-sin(x)

%% 多元函数的导数%%偏导
syms x1 x2 x3
y1 = x1^5*x2+x2*x3-x1^2*x3
py1 = diff(y1,x1,1) % 对x1求一阶偏导
py2 = diff(y1,x1,2) % 对x1求二阶偏导
py3 = diff(y1,x1,x2) % 先对x1求偏导,再对x2求偏导
py4 = diff(y1,x2,x1) % 先对x2求偏导,再对x1求偏导

%% 注意,如果diff函数作用的对象不是符号函数,而是矩阵,那么对应的功能是求差分。
A=[4 5 6 3 2 1];
diff(A) % 求向量A的一阶差分 1 1 -3 -1 -1
diff(A,2) % 在一阶差分的基础上再差分一次 0 -4 2 0

A=[4 5 6; 
 7 4 2;
 5 6 2]
A1=diff(A) % 下一行减去上一行求一阶差分
A2=diff(A,2) % 下一行减去上一行求二阶差分(在一阶差分的基础上再差分一次)
A3=diff(A,2,1) % 最后面的1表示在行上进行差分(在列的方向上进行差分)
A4=diff(A,1,2) % 后一列减去前一列求一阶差分, 
%最后面的2表示在列上进行差分(在行的方向上进行差分)
A4=diff(A,2,2) % 后一列减去前一列求二阶差分

%%不定积分
clear
syms x
y = x^2
int(y,x)%x^3/3%注意,Matlab计算时不会给我们加上常数C

syms x
y = 1/x
int(y,x)%注意,Matlab计算1/x形式的不定积分时不会给我们加上绝对值~

syms x
y = x^2 / (1+x^2)
int(y,x)

syms x
y = 1/(exp(x)+1)
int(y,x)

syms x a
y = 1/sqrt(x^2-a^2)
int(y,x)

%%定积分
syms x
y = sin(x)
int(y,x,0,pi/2)%1

syms x a b
y = exp(x)
int(y,x,a,b)

syms x
y = (sin(x))^2 / x^2
b=int(y,x,0,+inf)

% 注意,不是所有的函数都可以利用int函数计算出最后的结果,例如:
syms x
y = 1 / exp(x) * log(x+2*x^2+sin(x))
int(y,x,0,4)

% 我们可以计算数值积分:数值积分可用于求定积分的近似值。
%在数值分析中,数值积分是计算定积分数值的方法和理论。
% 在数学分析中,给定函数的定积分的计算不总是可行的,
%许多定积分不能用已知的积分公式得到精确值。
% 注意,写成函数句柄时,要用点乘或者点除
y = @(x) 1 ./ exp(x) .* log(x+2.*x.^2+sin(x)) 
integral(y,0,4)

xx = 0:0.1:4;
yy = 1 ./ exp(xx) .* log(xx+2*xx.^2+sin(xx));
plot(xx,yy,'-')


clear;clc
syms x
answ = solve(sin(x) == 1, x) 
% 注意:这里的等号一定要有两个,一个等号表示赋值,两个等号才表示左右两边相等

% 也可以这样写
clear
syms x
eqn = (sin(x) == 1); % eqn = sin(x) == 1; 
answ = solve(eqn, x)

% 因为三角函数是周期函数,如果要得到所有的解,则需要加上条件
[answ, params, condions] = solve(eqn, x, 'ReturnConditions', true)


%% 例题2: 多变量方程求解
clear
syms a b c x
eqn = (a*x^2 + b*x + c == 0);
answ1 = solve(eqn, x) % 将x视为未知数求解
answ2 = solve(eqn, a) % 将a视为未知数求解

%% 例题3:方程组求解
clear
syms u v a
eqn = [2*u + v == a, u - v == 1];
answ = solve(eqn, [u, v])
answ.u,answ.v

[answ_u, answ_v] = solve(eqn, [u, v])

%% solve 可能会警告
syms x
eqn = (sin(x) == x^2 - 1);
% 警告: Cannot solve symbolically. Returning a numeric approximation instead. 
solve(eqn, x) 
% 画图看看
fplot(sin(x), [-2 2]) % fplot函数可绘制表达式的图形
hold on
fplot(x^2 - 1, [-2 2]) 

%% vpasolve函数求解
% 用vpasolve函数指定求[0 2]上的解
syms x
eqn = sin(x) == x^2 - 1;
vpasolve(eqn, x, [0 2])
vpasolve(eqn, x, [-1 0])

vpasolve(eqn, x, [-10 10])

% vpasolve returns all solutions only for polynomial equations. 
% For nonpolynomial equations, there is no general method of finding all solutions.
% When you look for numerical solutions of a nonpolynomial equation or system that has several solutions,
% then, by default, vpasolve returns only one solution, if any. 
% To find more than just one solution, set random to true. 
% Now, calling vpasolve repeatedly might return several different solutions.
vpasolve(eqn, x, 'random', true) %多运行几次,每次结果可能不同


vpasolve(eqn, x, -5) % 给定搜索的起始点


%% 来看一个更复杂的例子
syms x y
eqn = [x^2 - 2*x - 3*x*y == 10, y^4 == exp(-2*x/3*y)]
[answ_x, answ_y] = vpasolve(eqn, [x, y], 'random', true)%多运行几次,每次结果可能不同
figure
ezplot(x^2 - 2*x - 3*x*y == 10, [-10 10])
hold on
ezplot(y^4 == exp(-2*x/3*y), [-10 10])

% ezplot函数比较鸡肋,下面这个函数比较厉害哦
figure
fimplicit(x^2 - 2*x - 3*x*y == 10, [-10 10],'r') % R2016b版本之后才有
hold on
fimplicit(y^4 == exp(-2*x/3*y), [-10 10],'b') % R2016b版本之后才有
[answ_x, answ_y] = vpasolve(eqn, [x, y],[-4 -1;1 5]) % 指定搜索的范围:x位于[-4 -1], y位于[1 5]
hold on
plot(answ_x, answ_y,'ko', 'MarkerSize',10) 

%**************************************my_fun函数还没有定义,查看help文档
%% fsolve函数(求解功能最为强大哦)
% fsolve是Matlab优化工具箱中的一个函数,可专门用来求解特别复杂的方程和方程组
x0 = [0,0]; % 初始值
result_x = fsolve(@my_fun,x0)


% 当然你也可以用vpasolve函数试试
clear
syms x1 x2
eqn = [exp(-exp(-(x1+x2))) - x2*(1+x1^2) == 0, x1*cos(x2) + x2*sin(x1) - 0.5 == 0]
[answ_x1, answ_x2] = vpasolve(eqn, [x1, x2], [0 0])



极大似然估计

极大似然估计,也叫最大似然估计,基本思想是,基于“概率”最大的事件最可能出现的最大似然原理。(概率最大的事件发生的可能性最大,密切接触者感染的可能性最大)

举个栗子,假如某随机试验有若干可能出现的结果A,B,C,...,若在某次试验中,结果A出现了,那么,认为P(A)是最大的。再如,医生给病人看病,在问清楚症状之后做诊断时,总是优先考虑直接引发这些症状的疾病;机器发生故障时,修理技工总是从易损部件或者薄弱环节排查;公安人员侦破案件时,一般先从与被害人有密切来往且有作案嫌疑的对象中排查。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值