一、matlab、stata代码整理
1)matlab:
1、zscore(x)——标准化
2、scatter(x,y)——散点图
hold on——在此图里继续作图
plot(.......
3、R=cov(X) //计算样本协方差矩阵
[V,D]=eig(R); //计算R的特征值(D)和特征向量(V)
diag(D); //取D对角线即R特征值做一个列向量
lambda(end:-1:1);//列向量颠倒顺序
2)stata
1、reg
sw reg ...... ,pr()
..................,pe()
二、知识点
1)回归中的异常点:
中部方形部分,上边界为上四分位数
下边界为下四分位数
中间线为中位数
而下部的点是异常点
2)回归的模型
1,双曲线模型
若因变量yy随自变量xx的增加(或减少),最初增加(或减少)很快,以后逐渐放慢并趋于稳定,则可以选用双曲线来拟合。双曲线模型形式为
1/y=β0+β1*1/x;
线性化方法:令y′=1/y,x′=1/x
则转换为线性回归方程
y′=β0+β1x′
2、幂函数
y=β0*X1^β1*X2^β2......
使用:
Y′=lny,β′0=lnβ0,x′1=lnX1,⋅⋅⋅,x′k=lnxk
转化为:
y′=β′0+β1x′1+β2x′2+⋅⋅⋅+βkxk
3、指数函数
形如:y=b0*e^b1x
处理方法:
y′=lny,β′0=lnβ0,x′=x
4、对数
y=b0+b1*lnx
处理方法:
y′=y,x′=lnx
3)多重共线性分析
VIF需要用在线性回归之后,若为logistic回归,先替换为线性回归,做完再做vif检验。
一般认为:
VIF≥3,有多重共线性;
VIF≥6,比较严重多重共线性
VIF≥10,非常严重的多重共线性;
4)主成分分析
需要求x矩阵的特征值及对应的特征矩阵
>> X=zscore(x) //标准化x
>> Y=zscore(y); //标准化y
>> R=cov(X) //计算样本协方差矩阵
>> [V,D]=eig(R); //计算R的特征值(D)和特征向量(V)
>> lambda=diag(D); //取D对角线即R特征值做一个列向量
>> lambda=lambda(end:-1:1);//将特征值按从大到小排列(颠倒一下顺序)
>> contribution_rate=lambda/sum(lambda);//求每个特征值所对应的贡献率
>> cum_contribution_rate=cumsum(lambda)/sum(lambda) //求累计贡献率
一般取贡献率较大的特征值所对应的特征矩阵作为主成分Fi=u1*x1+u2*x2……的系数;
因为特征值由大到小,故贡献率是由大到小的,累计贡献率逐渐增大。一般来说,第m个特征值对应的累计贡献率达到大于等于0.8后,取这m个特征值,构成m个主成分。
例:
累计贡献: 0.986 0.9959 0.9991 1
特征向量:0.5016 -0.2371 0.5788 0.5976
0.4998 0.4926 -0.6105 0.3673
0.4980 -0.7069 ………
0.5007 ………
则构成1个主成分
F=0.5016*x1+0.4998*x2+0.498*x3+0.5007*x4
再用标准化的Y和F求回归