我从马里兰州生物流调查中提取了一些数据,以进行多元回归分析。数据因变量是每75米长的水流中长鼻鱼(Rhinichthys cataractae)的数量。自变量是河流流失的面积(英亩);氧浓度(毫克/升);水流段的最大深度(以厘米为单位);硝酸盐浓度(毫克/升);硫酸盐浓度(毫克/升);以及采样日期的水温(以摄氏度为单位)。
数据集包含多个数值变量时,最好查看这些变量之间的相关性。原因之一是,可以轻松查看哪些自变量与该因变量相关。第二个原因是,如果要构建多元回归模型,则添加高度相关的自变量不太可能对模型有很大的改进。
最后,值得看一下数字变量的分布。如果分布差异很大,则使用Kendall或Spearman相关性可能更合适。同样,如果自变量与因变量的分布不同,则可能需要对自变量进行转换。
Data = read.table(textConnection(Input),header=TRUE)
Data.num =
select(Data,
Longnose,
Acerage,
DO2,
Maxdepth,
NO3,
SO4,
Temp)
headtail(Data.num)
Longnose Acerage DO2 Maxdepth NO3 SO4 Temp
1 13 2528 9.6 80 2.28 16.75 15.3
2 12 3333 8.5 83 5.34 7.74 19.4
3 54 19611 8.3 96 0.99 10.92 19.5
66 20 4106 10.0 96 2.62 5.45 15.4
67 38 10274 9.3 90 5.45 24.76 15.0
68 19 510 6.7 82 5.25 14.19 26.5
corr.test(Data.num,
use = "pairwise",
method="pearson",
adjust="none", # 可以调整p值
alpha=.05)
Correlation matrix
Longnose Acerage DO2 Maxdepth NO3 SO4 Temp
Longnose 1.00 0.35 0.14 0.30 0.31 -0.02 0.14
Acerage 0.35 1.00 -0.02 0.26 -0.10 0.05 0.00
DO2 0.14 -0.02 1.00 -0.06 0.27 -0.07 -0.32
Maxdepth 0.30 0.26 -0.06 1.00 0.04 -0.05 0.00
NO3 0.31 -0.10 0.27 0.04 1.00 -0.09 0.00
SO4 -0.02 0.05 -0.07 -0.05 -0.09 1.00 0.08
Temp 0.14 0.00 -0.32 0.00 0.00 0.08 1.00
Sample Size
Probability values (Entries above the diagonal are adjusted for multiple tests.)
Longnose Acerage DO2 Maxdepth NO3 SO4 Temp
Longnose 0.00 0.00 0.27 0.01 0.01 0.89 0.26
Acerage 0.00 0.00 0.86 0.03 0.42 0.69 0.98
DO2 0.27 0.86 0.00 0.64 0.02 0.56 0.01
Maxdepth 0.01 0.03 0.64 0.00 0.77 0.69 0.97
NO3 0.01 0.42 0.02 0.77 0.00 0.48 0.99
SO4 0.89 0.69 0.56 0.69 0.48 0.00 0.52
Temp 0.26 0.98 0.01 0.97 0.99 0.52 0.00
R语言逻辑回归(Logistic Regression)、回归决策树、随机森林信用卡违约分析信贷数据集
01
02
03
04
使用AIC(赤池信息标准)作为选择标准。可以使用选项k = log(n) 代替BIC。
Longnose ~ 1
Df Sum of Sq RSS AIC
+ Acerage 1 17989.6 131841 518.75
+ NO3 1 14327.5 135503 520.61
+ Maxdepth 1 13936.1 135894 520.81
<none> 149831 525.45
+ Temp 1 2931.0 146899 526.10
+ DO2 1 2777.7 147053 526.17
+ SO4 1 45.3 149785 527.43
.
.
< snip... more steps >
.
.
Longnose ~ Acerage + NO3 + Maxdepth
Df Sum of Sq RSS AIC
<none> 107904 509.13
+ Temp 1 2948.0 104956 509.24
+ DO2 1 669.6 107234 510.70
- Maxdepth 1 6058.4 113962 510.84
+ SO4 1 5.9 107898 511.12
- Acerage 1 14652.0 122556 515.78
- NO3 1 16489.3 124393 516.80
Call:
lm(formula = Longnose ~ Acerage + NO3 + Maxdepth, data = Data)
Coefficients:
(Intercept) Acerage NO3 Maxdepth
-23.829067 0.001988 8.673044 0.336605
summary(model.final) # 显示系数,R平方和总体p值
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.383e+01 1.527e+01 -1.560 0.12367
Acerage 1.988e-03 6.742e-04 2.948 0.00446 **
Maxdepth 3.366e-01 1.776e-01 1.896 0.06253 .
NO3 8.673e+00 2.773e+00 3.127 0.00265 **
Multiple R-squared: 0.2798, Adjusted R-squared: 0.2461
F-statistic: 8.289 on 3 and 64 DF, p-value: 9.717e-05
Anova Table (Type II tests)
Response: Longnose
Sum Sq Df F value Pr(>F)
Acerage 14652 1 8.6904 0.004461 **
Maxdepth 6058 1 3.5933 0.062529 .
NO3 16489 1 9.7802 0.002654 **
Residuals 107904 64
**
**
线性模型中残差的直方图。这些残差的分布应近似正态。
残差与预测值的关系图。残差应无偏且均等。
模型拟合标准可用于确定最合适的模型。使用AIC或可选的BIC。AICc是对AIC的一种调整,它更适合于观测值相对较少的数据集。AIC,AICc和BIC越小越好。
在下面的例子中,我们只讨论了显著相关的种植面积,MAXDEPTH和NO3 。
$Models
Formula
1 "Longnose ~ Acerage"
2 "Longnose ~ Maxdepth"
3 "Longnose ~ NO3"
4 "Longnose ~ Acerage + Maxdepth"
5 "Longnose ~ Acerage + NO3"
6 "Longnose ~ Maxdepth + NO3"
7 "Longnose ~ Acerage + Maxdepth + NO3"
8 "Longnose ~ Acerage + Maxdepth + NO3 + DO2"
9 "Longnose ~ Acerage + Maxdepth + NO3 + SO4"
10 "Longnose ~ Acerage + Maxdepth + NO3 + Temp"
$Fit.criteria
Rank Df.res AIC AICc BIC R.squared Adj.R.sq p.value Shapiro.W Shapiro.p
1 2 66 713.7 714.1 720.4 0.12010 0.10670 3.796e-03 0.7278 6.460e-10
2 2 66 715.8 716.2 722.4 0.09301 0.07927 1.144e-02 0.7923 2.115e-08
3 2 66 715.6 716.0 722.2 0.09562 0.08192 1.029e-02 0.7361 9.803e-10
4 3 65 711.8 712.4 720.6 0.16980 0.14420 2.365e-03 0.7934 2.250e-08
5 3 65 705.8 706.5 714.7 0.23940 0.21600 1.373e-04 0.7505 2.055e-09
6 3 65 710.8 711.4 719.6 0.18200 0.15690 1.458e-03 0.8149 8.405e-08
7 4 64 704.1 705.1 715.2 0.27980 0.24610 9.717e-05 0.8108 6.511e-08
8 5 63 705.7 707.1 719.0 0.28430 0.23890 2.643e-04 0.8041 4.283e-08
9 5 63 706.1 707.5 719.4 0.27990 0.23410 3.166e-04 0.8104 6.345e-08
10 5 63 704.2 705.6 717.5 0.29950 0.25500 1.409e-04 0.8225 1.371e-07
几个模型的AICc(修改后的Akaike信息标准)图。模型7最小化了AICc,因此被选为该模型中的最佳模型。
将模型与 平方和检验或似然比检验进行比较,以查看是否有其他项显着减少平方误差和 。
Analysis of Variance Table
Model 1: Longnose ~ Acerage + Maxdepth + NO3
Model 2: Longnose ~ Acerage + Maxdepth
Res.Df RSS Df Sum of Sq F Pr(>F)
1 64 107904
2 65 124393 -1 -16489 9.7802 0.002654 **
Likelihood ratio test
Model 1: Longnose ~ Acerage + Maxdepth + NO3
Model 2: Longnose ~ Acerage + Maxdepth
#Df LogLik Df Chisq Pr(>Chisq)
1 5 -347.05
2 4 -351.89 -1 9.6701 0.001873 **
Model 1: Longnose ~ Acerage + Maxdepth + NO3 + DO2
Model 2: Longnose ~ Acerage + Maxdepth + NO3 + SO4
Model 3: Longnose ~ Acerage + Maxdepth + NO3 + Temp
Model A: Longnose ~ Acerage + Maxdepth + NO3
DfO RSSO DfA RSSA Df SS F Pr(>F)
1vA 63 107234.38 64 107903.97 -1 -669.59 0.3934 0.5328
2vA 63 107898.06 64 107903.97 -1 -5.91 0.0035 0.9533
3vA 63 104955.97 64 107903.97 -1 -2948.00 1.7695 0.1882
Model 1: Longnose ~ Acerage + Maxdepth + NO3 + DO2
Model 2: Longnose ~ Acerage + Maxdepth + NO3 + SO4
Model 3: Longnose ~ Acerage + Maxdepth + NO3 + Temp
Model A: Longnose ~ Acerage + Maxdepth + NO3
DfO logLikO DfA logLikA Df logLik Chisq Pr(>Chisq)
1vA 63 -346.83881 64 -347.05045 -1 0.21164 0.4233 0.5153
2vA 63 -347.04859 64 -347.05045 -1 0.00186 0.0037 0.9513
3vA 63 -346.10863 64 -347.05045 -1 0.94182 1.8836 0.1699
本文选自《R语言逐步多元回归模型分析长鼻鱼密度影响因素》。
点击标题查阅往期内容
PYTHON用户流失数据挖掘:建立逻辑回归、XGBOOST、随机森林、决策树、支持向量机、朴素贝叶斯和KMEANS聚类用户画像
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
R语言集成模型:提升树boosting、随机森林、约束最小二乘法加权平均模型融合分析时间序列数据
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化
R语言基于树的方法:决策树,随机森林,Bagging,增强树
python在Scikit-learn中用决策树和随机森林预测NBA获胜者
python中使用scikit-learn和pandas决策树进行iris鸢尾花数据分类建模和交叉验证
R语言里的非线性模型:多项式回归、局部样条、平滑样条、 广义相加模型GAM分析
R语言用标准最小二乘OLS,广义相加模型GAM ,样条函数进行逻辑回归LOGISTIC分类
R语言用泊松Poisson回归、GAM样条曲线模型预测骑自行车者的数量
R语言分位数回归、GAM样条曲线、指数平滑和SARIMA对电力负荷时间序列预测
R语言样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化
R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测
R语言基于Bagging分类的逻辑回归(Logistic Regression)、决策树、森林分析心脏病患者
R语言基于树的方法:决策树,随机森林,Bagging,增强树
R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间
R语言样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析
R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化