统计和大数据

对统计,机器学习,数据分析,数据挖掘和数据可视化感兴趣的人的问答

1
交叉随机效应和不平衡数据
我正在建模一些我认为有两个交叉随机效应的数据。但是数据集不平衡,我不确定需要做些什么来说明它。 我的数据是一组事件。当客户端与提供者会面以执行成功或失败的任务时,将发生事件。有数千个客户和提供者,每个客户和提供者都参与不同数量的事件(大约5到500个)。每个客户和提供者都有一定的技能水平,任务成功的机会取决于两个参与者的技能。客户和提供者之间没有重叠。 我对客户和提供者人数的各自差异感兴趣,因此我们可以知道哪个来源对成功率有更大的影响。我还想知道我们实际拥有数据的客户和提供者之间技能的具体价值,以确定最佳/最差的客户或提供者。 最初,我想假设成功的可能性仅由客户和提供者的综合技能水平决定,而没有其他固定影响。因此,假设x是客户端的一个因素,y是提供者的一个因素,那么在R中(使用程序包lme4),我将模型指定为: glmer( success ~ (1 | x) + (1 | y), family=binomial(), data=events) 一个问题是客户端在提供者之间分布不均。较高技能的客户更有可能与较高技能的提供者匹配。我的理解是,随机效应必须与模型中的任何其他预测变量均不相关,但是我不确定如何对其进行解释。 同样,一些客户和提供者的事件很少(少于10个),而其他事件和事件却很多(最多500个),因此我们在每个参与者上拥有的数据量分布广泛。理想情况下,这将反映在每个参与者技能估计值的“置信区间”中(尽管我认为“置信区间”一词在这里并不十分正确)。 由于数据不平衡,交叉随机效应会成为问题吗?如果是这样,我应该考虑哪些其他方法?

3
线性模型异方差
我有以下线性模型: 为了解决残差的异方差性,我尝试对因变量应用log转换为但我仍然看到对残差具有相同的扇出效果。DV值相对较小,因此在这种情况下,取对数前的+1常数加法可能不合适。日志(是+ 1 )log⁡(Y+1)\log(Y + 1) > summary(Y) Min. :-0.0005647 1st Qu.: 0.0001066 Median : 0.0003060 Mean : 0.0004617 3rd Qu.: 0.0006333 Max. : 0.0105730 NA's :30.0000000 如何转换变量以改善预测误差和方差,尤其是对于最右边的拟合值?


3
如何根据不定期的汇总数据进行预测?
我正在尝试预测自动售货机中产品的销售情况。问题在于,机器的灌装间隔不规则,每次灌装我们只能记录自机器最后一次灌装以来的累计销售额(即我们没有每日销售数据)。因此,基本上我们有不定期的汇总销售数据。间隔通常在2天到3周之间。这是一台自动售货机和一种产品的示例数据: 27/02/2012 48 17/02/2012 24 09/02/2012 16 02/02/2012 7 25/01/2012 12 16/01/2012 16 05/01/2012 16 23/12/2011 4 16/12/2011 14 09/12/2011 4 02/12/2011 2 我们当前的幼稚算法是通过将过去90天内的销售总量除以90来计算每天的平均销售额。 您是否知道如何改善每天的销售预测?我需要预测在下次访问机器时将出售什么。给定数据的性质,是否可以使用某种指数平滑算法? 提前致谢! 更新:非常感谢所有的答案和评论。让我尝试提供更多背景信息(问题背后的业务案例-当然非常简化)。我们有数百台自动售货机。每天我们都必须决定要访问其中的20个以进行补充。为此,我们试图预测计算机的当前状态,并选择“最空”的20台计算机。对于每台机器和产品,我们正在使用上述朴素算法计算每日平均销售量(SPD)。然后,将SPD乘以自上次填充机器以来的天数,结果就是预计的销售量。

1
超越Fisher内核
一段时间以来,Fisher Kernels似乎很受欢迎,因为它们似乎是一种根据概率模型构造核的方法。但是,我很少见到它们在实践中使用过,而且我有很好的权威,认为它们往往效果不佳。他们依靠Fisher信息的计算-引用Wikipedia: Fisher信息相对于f的自然对数θ是二阶导数期望值的负值。信息可以看作是支持曲线的“曲率”在θ的最大似然估计(MLE)附近的度量。 据我所知,这意味着两点之间的核函数就是沿着该曲面的距离-是吗? 但是,这对于在内核方法中使用可能会有问题,因为 对于给定的模型,MLE可能是非常糟糕的估计 MLE周围的支撑曲线的曲率可能无法用于区分实例,例如,如果似然表面非常尖 这似乎抛弃了有关模型的许多信息 如果是这样的话,还有没有更多现代的方法可以从概率方法构造内核?例如,我们可以使用保留集以相同的方式使用MAP估算吗?与概率方法的距离或相似度还有哪些其他概念可以用来构造(有效)内核函数?

1
SEM建模帮助(OpenMx,polycor)
我尝试将SEM应用于一个数据集时遇到很多问题。 我们假设存在5个潜在因子A,B,C,D,E,分别具有指标。A1至A5(有序因子),B1至B3(定量),C1,D1,E1(所有后三个有序因子,E1只有2个水平。我们对所有因子之间的协方差很感兴趣。 我曾尝试OpenMx这样做。这是我的一些尝试: 我首先尝试对所有有序因子使用阈值矩阵,但是收敛失败。 我决定hetcor通过库中的函数使用多色/多序列相关性来代替原始数据polycor(我计划自举样本以获得置信区间)。它也无法收敛! 我试图限制个人使用完整的数据,但是它也失败了! 我的第一个问题是:是否有一种自然的方式来解释这些故障? 我的第二个问题是:我该怎么办??? 编辑:对于将来可能遇到相同问题的读者,在阅读完polycor... 中的功能代码后,解决方案仅是hetcor()与option 一起使用std.err=FALSE。这给出的估计与StasK给出的估计非常相似。我现在没有时间去更好地了解这里发生的事情!StasK很好地回答了以下问题。 我还有其他问题,但在此之前,这里是一个带有RData文件的URL,该文件包含一个L1仅包含完整数据的数据框:data_sem.RData 这里的几行代码显示的失败hetcor。 > require("OpenMx") > require("polycor") > load("data_sem.RData") > hetcor(L1) Erreur dans cut.default(scale(x), c(-Inf, row.cuts, Inf)) : 'breaks' are not unique De plus : Il y a eu 11 avis (utilisez warnings() pour les visionner) > head(L1) A1 A2 …

1
处理非常大的时间序列数据集
我可以访问非常大的数据集。数据来自四种类型之一的人们在听音乐摘录时的MEG录音。数据如下: 6个科目 3次实验重复(时期) 每个时期120次试用 275个MEG通道在500Hz(= 4000个样本)下每次试验8秒的数据 因此,这里的每个“示例”都是一个大小为[4000x275]的矩阵,并且有2160个此类示例,并且在进行任何特征提取之前。目的是根据大脑信号(4类分类)预测类型。 显然,这里存在一些具有挑战性的问题,即: 数据集不适合内存 数据中将存在很强的时间相关性,并且受试者间的差异将很大。结果,如何分割数据并不明显 信噪比非常低 目前尚不清楚分类器的正确功能是什么 依次进行以下操作: 一个人可以做很多事情。首先,我们可以安全地将采样频率从500Hz降低到200Hz,因为即使考虑到奈奎斯特极限,大脑活动也不会真正发生在100Hz以上。我们也可以从一组渠道中进行抽样(例如,在听觉区域上方居中),但我们不愿先验,因为在其他区域(额叶等)可能会有一些有趣的活动。我们可能还可以删除一部分时间窗口。也许只有前2个对任务很重要?这不是真的。当然每个人都会大喊“ 降维!”,但这也不是一件容易的事。首先,我们必须非常小心地进行训练/测试拆分(请参阅2.),并且在生成特征之前还是之后也不很明显。其次,除了昂贵之外交叉验证或艰苦的视觉检查,没有明显的方法来选择合适的方法或合适的尺寸,我们当然可以仅使用PCA,ICA或随机投影,并希望获得最好的结果。 这很棘手。如果我们在训练集中有连续的样本,我们可能会过度拟合训练集,而如果我们将连续的样本分成训练和测试集,则我们可能会不足以适应训练集,但仍然可能会过度拟合测试集。这里似乎有多种选择: 单科目分类。各个科目各取所需,并根据时代划分。这应该是最简单的任务,因为我们没有试图跨大脑进行预测。在这个范围内,可以使用两个剩余的时期进行交叉验证。为了完整性,应该旋转所有组合。我们只报告所有主题的平均准确性。当然,我们不会期望这些模型能很好地推广。 学科内分类。将所有主题放在一起,并根据时代划分。实际上,这可能是最简单的任务,因为我们将看到所有受训的对象。但是,我们可能不会期望这些模型能很好地推广到新主题。在这个范围内,可以使用两个剩余的时期进行交叉验证。为了完整性,应该旋转所有组合。 学科间分类。也称为“留一法”,其中将单个科目作为测试数据,其余的用于训练。然后,我们将轮流浏览所有主题。然后将对主题执行交叉验证。我们希望这将是一个更加困难的任务,因为我们每次都试图在一个“新大脑”上进行预测。尽管存在重测信度(即时间相关性导致多少过度拟合)的问题,但我们希望模型能够很好地推广到更大的人群。 这是一个典型的“大海捞针”问题-与音乐体裁或任何体裁特定处理有关的实际信号与大脑活动的“汤”相比可能微不足道。还有一些伪造品,只能被部分去除(主要与移动有关)。我们从数据中得出的任何特征以及处理数据的任何方式都应避免破坏部分感兴趣的信号。 在这里可以想象做各种事情。第一种是简单地将原始数据(连接到向量中)用作特征向量。我不确定这会带来多大的收获-我认为这些向量本质上可能是统一随机的。这确实是一个信号处理问题,但是可以遵循一些一般准则。一种方法是在滑动窗口上进行标准傅里叶分析,从中可以将分量分成不同的频带(α/β/γ等),并将这些统计量(平均值,标准偏差)用作特征。或者可以使用小波,希尔伯特变换,甚至尝试寻找混沌吸引子。当然,我们可以选择内核(线性,多项式,RBF等),以乘以排列的数量。也许最好的做法是生成尽可能多的不同功能集,然后使用MKL或增强方法将它们组合在一起。 您将如何处理这种数据集(如果不是专门的话)?一路上我有什么想念的吗?如果不花费大量的研究时间和计算资源,最可能成功的策略是什么?

3
从庞大的数据集中学习的方法?
基本上,有两种学习大型数据集的常用方法(当您面临时间/空间限制时): 作弊:)-仅使用“可管理”子集进行训练。由于收益递减规律,准确性的损失可以忽略不计-模型的预测性能通常在将所有训练数据纳入模型之前就已经趋于平缓。 并行计算-将问题分解为较小的部分,并在单独的计算机/处理器上解决每个问题。虽然您需要算法的并行版本,但是好消息是,许多常见算法自然是并行的:最近邻居,决策树等。 还有其他方法吗?何时使用它们有什么经验法则吗?每种方法的缺点是什么?

3
自动数据清理
ML的一个常见问题是数据质量差:特征值错误,实例分类错误等。 解决此问题的一种方法是手动检查数据并检查,但是还有其他技术吗?(我敢打赌!) 哪个更好,为什么?

1
MFCC是向检索系统表示音乐的最佳方法吗?
信号处理技术(梅尔频率倒谱)通常用于从音乐作品中提取信息,以用于机器学习任务。该方法给出了短期功率谱,并且将系数用作输入。 在设计音乐检索系统时,这些系数被认为是乐曲的特征(显然不一定是唯一的,而是有区别的)。有没有更适合通过网络学习的特征?诸如Elman网络之类的乐器所使用的随时间变化的特征(例如低音效果)会更有效吗? 哪些特征将构成可以进行何种分类的足够广泛的集合?

3
当lm的预测值无方差时,为什么会有R ^ 2值(由它决定)?
考虑以下R代码: example <- function(n) { X <- 1:n Y <- rep(1,n) return(lm(Y~X)) } #(2.13.0, i386-pc-mingw32) summary(example(7)) #R^2 = .1963 summary(example(62)) #R^2 = .4529 summary(example(4540)) #R^2 = .7832 summary(example(104))) #R^2 = 0 #I did a search for n 6:10000, the result for R^2 is NaN for #n = 2, 4, 16, …
10 r  regression 

3
重复测量结构方程建模
我需要分析临床康复数据的数据集。我对量化“输入”(治疗量)与健康状况变化之间由假设驱动的关系感兴趣。尽管数据集相对较小(n〜70),但我们有重复的数据反映了两者的时间变化。我熟悉R中的非线性混合效应建模,但是对此处输入和输出之间的潜在“因果”关系感兴趣,因此正在考虑SEM的重复测量应用 我希望您能就R中的任何SEM软件包(sam,lavaan,openmx?)最适合重复测量数据提出建议,尤其是针对教科书的建议(该领域是否有“ Pinheiro和Bates”?),我对此表示赞赏。 。

4
有没有一种方法可以使用交叉验证在R中进行变量/特征选择?
我有一个约70个要减少的变量的数据集。我想要做的是使用CV以下列方式查找最有用的变量。 1)随机选择说20个变量。 2)使用stepwise/ LASSO/ lars/ etc选择最重要的变量。 3)重复〜50x,查看最常选择(未消除)的变量。 这与a的randomForest做法类似,但是该rfVarSel软件包似乎仅适用于因子/分类,我需要预测一个连续的因变量。 我正在使用R,因此任何建议都可以在此处理想地实现。

4
统计模拟说明
我不是统计学家。所以,请忍受我的错误。 您能以简单的方式说明仿真是如何完成的吗?我知道它会从正态分布中抽取一些随机样本并用于模拟。但是,不清楚。
10 simulation 

2
卡方的置信区间
我正在尝试找到一种解决方案,以比较两个“拟合优度卡方”检验。更准确地说,我想比较两个独立实验的结果。在这些实验中,作者使用拟合优度卡方比较随机猜测(预期频率)与观测频率。两次实验的参与者人数相同,实验步骤相同,只是刺激改变了。这两个实验结果表明存在显着的卡方(实验1:X 2(18)= 45; p <.0005;实验2:X 2(18)= 79; p <.0001)。 现在,我要做的就是测试这两个结果之间是否存在差异。我认为解决方案可能是使用置信区间,但是我不知道如何仅根据这些结果来计算这些置信区间。或者也许是一个比较效果大小的测试(科恩的w)? 有人有解决办法吗? 非常感谢! FD

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.