小样本线性回归:从哪里开始

机器算法验证 回归 自习 方法
2022-03-18 05:03:19

完全披露:这是家庭作业。

我得到了一个小数据集(n = 21),数据很混乱,在散点图矩阵中查看它让我几乎没有洞察力。我得到了 8 个变量,这些变量是从纵向研究(BI、CONS、CL、CR、...、VOBI)创建的指标。其他衡量标准是共同基金销售、回报、资产水平、市场份额、销售份额以及销售与资产的比例

替代文字

关联,无处不在。

               BI       CONS           CL          CR         QT        COM        CONV        VOBI          s            r           a          ms         ss       share      share2
BI      1.0000000  0.7620445  0.639830594  0.70384322  0.7741463  0.8451500  0.84704440  0.85003686  0.2106773 -0.238431047  0.36184548  0.40007830  0.4076563  0.31643802 -0.28283564
CONS    0.7620445  1.0000000  0.933595967  0.96979599  0.9892533  0.9069803  0.96781703  0.93416972  0.2316209 -0.074351798  0.31952292  0.40259511  0.4442877  0.24783884 -0.14788906
CL      0.6398306  0.9335960  1.000000000  0.88297431  0.8993748  0.8133169  0.89922684  0.81132166  0.1200420 -0.001107093  0.22132116  0.26729067  0.3033221  0.07650924 -0.25595278
CR      0.7038432  0.9697960  0.882974312  1.00000000  0.9788150  0.8965754  0.92335363  0.90848199  0.2934774 -0.119340914  0.35973640  0.46409570  0.5012178  0.32832247 -0.09005985
QT      0.7741463  0.9892533  0.899374782  0.97881497  1.0000000  0.9216887  0.95458369  0.94848419  0.2826278 -0.108430256  0.35520090  0.43290221  0.4823314  0.31761015 -0.12903075
COM     0.8451500  0.9069803  0.813316918  0.89657544  0.9216887  1.0000000  0.90302002  0.89682825  0.4305866 -0.255581594  0.50724121  0.55718441  0.5773171  0.40378679 -0.12085524
CONV    0.8470444  0.9678170  0.899226843  0.92335363  0.9545837  0.9030200  1.00000000  0.96097892  0.1993837 -0.065237725  0.32010735  0.41843335  0.4531298  0.28873934 -0.19668858
VOBI    0.8500369  0.9341697  0.811321664  0.90848199  0.9484842  0.8968283  0.96097892  1.00000000  0.2424889 -0.087126942  0.30390489  0.40390750  0.4845432  0.36588655 -0.07137107
s       0.2106773  0.2316209  0.120041993  0.29347742  0.2826278  0.4305866  0.19938371  0.24248894  1.0000000 -0.173034217  0.91766914  0.84673519  0.8596887  0.61299987  0.32072790
r      -0.2384310 -0.0743518 -0.001107093 -0.11934091 -0.1084303 -0.2555816 -0.06523773 -0.08712694 -0.1730342  1.000000000 -0.22512978 -0.18337773 -0.1030943 -0.17650579  0.51768144
a       0.3618455  0.3195229  0.221321163  0.35973640  0.3552009  0.5072412  0.32010735  0.30390489  0.9176691 -0.225129778  1.00000000  0.92445370  0.8656139  0.63049461  0.03876774
ms      0.4000783  0.4025951  0.267290668  0.46409570  0.4329022  0.5571844  0.41843335  0.40390750  0.8467352 -0.183377734  0.92445370  1.00000000  0.9572730  0.77582501  0.08435813
ss      0.4076563  0.4442877  0.303322147  0.50121775  0.4823314  0.5773171  0.45312978  0.48454322  0.8596887 -0.103094325  0.86561394  0.95727301  1.0000000  0.83931302  0.24371447
share   0.3164380  0.2478388  0.076509240  0.32832247  0.3176102  0.4037868  0.28873934  0.36588655  0.6129999 -0.176505786  0.63049461  0.77582501  0.8393130  1.00000000  0.20313930
share2 -0.2828356 -0.1478891 -0.255952782 -0.09005985 -0.1290307 -0.1208552 -0.19668858 -0.07137107  0.3207279  0.517681444  0.03876774  0.08435813  0.2437145  0.20313930  1.00000000 

现在,我尝试运行一些“测试”,例如:

summary.lm(share2 ~ BI + ...) 

但是,它们都没有提供任何合理的结果(主要是负调整的 R^2)。

我想知道,如果您的数据看起来没有关系(至少是线性的)。

你的下一步是什么?

PS:我确实尝试了一些包含交互效应的模型公式,并获得了更好的结果(R^2 Ra^2 > 80% 和显着的 f 检验),但并非所有交互效应都显着。

4个回答

我可能会看一下岭回归,或者更好的是套索。当存在多重共线性时,通常会使用这些技术。在 R 中执行此操作有几个选项:请参阅CRAN 上机器学习和统计学习任务视图的正则化和收缩方法部分。

您没有足够的数据来开始考虑该任务视图的其他部分中列出的一些技术。

在我看来,这里唯一值得做的事情就是测试一个非常集中的假设,如果你有的话。但你好像没有。

由于案例如此之少,变量如此之多,其他任何事情(在我看来)都将是一次钓鱼探险。也许,这对于生成一个用新数据进行测试的假设可能有点有用。但是,对这些数据进行多变量非集中分析的任何结果都可能是一个假阳性巧合发现,可能无法与新数据保持一致。

我发现@ucfagls 的想法在这里最合适,因为你的观察很少,变量很多。岭回归应该为预测目的完成它的工作。

分析数据的另一种方法是依靠PLS 回归(在本例中为 PLS1),它对 PCA 分数的回归有一些想法,但在您的情况下似乎更有趣。由于多重共线性可能是一个问题,您可以查看稀疏解决方案(例如,参见splsmixOmics R 包)。

如果您对太多的相关性感到沮丧,并且由于您已经有了协方差矩阵(几乎),您可以进行主成分分析。您最终会得到更少的维度,考虑到您的数据集大小,这可能很好,并且您最终得到的内容将不再相互关联。