标签: data-analysis

趋势线的最佳拟合曲线

问题约束

  • 数据集的大小,但不是数据本身,是已知的.
  • 数据集一次增长一个数据点.
  • 趋势线一次绘制一个数据点(使用样条曲线/贝塞尔曲线).

图表

下面的拼贴显示了具有相当准确的趋势线的数据集:

在此输入图像描述

图表是:

  • 左上.按小时计算,有~24个数据点.
  • 右上方.白天一年,有~365个数据点.
  • 左下方.每周一周,有~52个数据点.
  • 右下.按月计算,约有12个数据点.

用户输入

用户可以选择:

  • 时间序列的类型(每小时,每日,每月,每季度,每年); 和
  • 时间序列的开始和结束日期.

例如,用户可以在6月份选择30天的每日报告.

趋势重量

要计算窗口大小(即计算趋势线时要平均的数据点数),使用以下表达式:

data points / trend weight
Run Code Online (Sandbox Code Playgroud)

其中data points,从用户输入获得,trend weight6.4.即使6.4的趋势权重产生良好的拟合,它也是相当随意的,并且可能不适合不同的用户输入.

trend weight考虑到这个问题的限制,应该如何计算?

java math jasper-reports data-analysis ireport

5
推荐指数
1
解决办法
3434
查看次数

确定一组数据是来自线性函数还是对数函数?

我有一组数据点,如果数据代表线性函数或对数函数,我很好奇.

数据集是二维的.

假设一组理想的数据点遵循函数f(x)= x.如果我绘制了数据点,我就能说它是线性的.

类似地,如果数据点遵循函数f(x)= log(x),我将能够直观地告诉它是对数的.

另一方面,让程序确定一组数据是线性的还是对数的是非常重要的.我该如何处理?

algorithm math statistics data-analysis

5
推荐指数
1
解决办法
6531
查看次数

使用Elasticsearch和Rails分析模型数据中的相似性

我想使用Elasticsearch来分析数据并将其显示给用户.

当用户查看模型的记录时,我想在数据库中显示该模型的"相似"记录列表,以及相似性百分比.这将匹配模型上的每个字段.

我知道使用Searchkick gem我可以使用命令查找类似的记录:

product = Product.first
product.similar(fields: ["name"], where: {size: "12 oz"})
Run Code Online (Sandbox Code Playgroud)

我想更进一步,比较整个记录(最终的关联).

在Rails中使用Elasticsearch/Searchkick是可行的,还是应该使用其他方法来分析数据?

postgresql ruby-on-rails data-analysis elasticsearch searchkick

5
推荐指数
1
解决办法
219
查看次数

数据分析中的缺失值

我有一个数据集,其中包含两个级别 Male(M) 和 Female(F) 的变量 GENDER 有很多缺失值。我如何处理缺失值?处理这些缺失值的不同方法是什么。任何帮助,将不胜感激。

machine-learning data-analysis method-missing missing-data

5
推荐指数
2
解决办法
2670
查看次数

对数据框中列中的数据进行分类

我的数据框中有一列数字,我想将这些数字分类为例如高、低、排除。我如何做到这一点。我一无所知,我尝试查看剪切函数和类别数据类型。

python machine-learning data-analysis pandas

5
推荐指数
1
解决办法
2万
查看次数

为什么我在 QDA 中名次不足

我正在研究来自 Kaggle ( https://www.kaggle.com/c/titanic/data )的泰坦尼克号泰坦尼克号数据集,我正在尝试将各种模型应用于该数据集。

在这样做之前,我已经对数据集进行了以下修改:

df.train <- dplyr::select(df.train,-PassengerId,-Name,-Ticket,-Cabin)
df.train$Survived <- factor(df.train$Survived)
df.train$Pclass <- factor(df.train$Pclass)
df.train$Parch <- factor(df.train$Parch)
df.train$SibSp <- factor(df.train$SibSp)
Run Code Online (Sandbox Code Playgroud)

我也设定了年龄,我们处于这样的情况

anyNA(df.train) == F

因此,当我进行逻辑回归和 LDA 时,一切正常(即使令人惊讶的是它们提供了完全相同的结果),但是当我尝试时:

qda.model <- qda(Survived~. , data = df.train)
Run Code Online (Sandbox Code Playgroud)

我得到:

qda.default(x, grouping, ...) 中的错误:groupe 0 n'est pas de rang plein

据我所知,这意味着我有一个等级不足。

一些在线研究将我带到这里:https : //stats.stackexchange.com/questions/35071/what-is-rank-deficiency-and-how-to-deal-with-it

但我真的不明白数据有什么问题,我有 8 个预测变量和 891 个观察值,没有一个预测变量似乎是其他变量的线性组合。

你能解释一下这个 QDA 有什么问题吗?

非常感谢!

r machine-learning data-analysis

5
推荐指数
1
解决办法
3762
查看次数

是否可以在Python中执行glmm?

是否可以在Python中执行glmm(例如SPSS中的GENLINMIXED分析)?我是statsmodels的忠实拥护者,但该库似乎不支持glmm ...是否有其他选择?

-编辑-

决定用R和r2py来做...

def RunAnalyseMLMlogit(dataset, outcomevars, meeneemvars, randintercept, randslope):

    from rpy2.robjects import pandas2ri
    from rpy2.robjects.packages import importr
    base = importr('base')
    stats = importr('stats')
    lme4 = importr('lme4')

    #data
    with SavReaderNp(dataset) as reader_np:
        array = reader_np.to_structured_array()

    df = pd.DataFrame(array)

    variabelen = ' '.join(outcomevars) + ' ~ ' + '+'.join(meeneemvars)
    randintercept2 = ['(1|'+i+')' for i in randintercept]
    intercept = '+'.join(randintercept2)
    randslope2 = ['(1+'+meeneemvars[0]+'|'+i+')' for i in randslope]
    slope = ' '.join(randslope2)

    pandas2ri.activate()
    r_df = pandas2ri.py2ri(df)

    #model
    #random intercepts + random slopes
    if …
Run Code Online (Sandbox Code Playgroud)

python spss data-analysis

5
推荐指数
1
解决办法
950
查看次数

替代 scipy.cluster.hierarchy.cut_tree()

我在 Python 3 中做了一个凝聚层次聚类实验,我发现scipy.cluster.hierarchy.cut_tree()没有为某些输入链接矩阵返回请求的聚类数。所以,现在我知道有在一个bug cut_tree()函数(如描述在这里)。

但是,我需要能够获得平面聚类,并k为我的数据点分配不同的标签。您知道k从任意输入链接矩阵中获得带有标签的平面聚类的算法Z吗?我的问题归结为:如何cut_tree()在没有错误的情况下从头开始计算什么?

您可以使用此数据集测试您的代码。

from scipy.cluster.hierarchy import linkage, is_valid_linkage
from scipy.spatial.distance import pdist

## Load dataset
X = np.load("dataset.npy")

## Hierarchical clustering
dists = pdist(X)
Z = linkage(dists, method='centroid', metric='euclidean')

print(is_valid_linkage(Z))

## Now let's say we want the flat cluster assignement with 10 clusters.
#  If cut_tree() was working we would do
from scipy.cluster.hierarchy import cut_tree
cut = cut_tree(Z, 10)
Run Code Online (Sandbox Code Playgroud)

旁注:另一种方法也许可以是使用 …

python numpy hierarchical-clustering data-analysis scipy

5
推荐指数
1
解决办法
2596
查看次数

如何使用 Python Pandas 在特定切片中制作 DataFrame 切片和“fillna”?

问题:让我们从 Kaggle 中获取 Titanic 数据集。我有包含“Pclass”、“Sex”和“Age”列的数据框。我需要在“年龄”列中用某个组的中位数填充 NaN。如果是 1st class 的女性,我想用 1st class 女性的中位数填充她的年龄,而不是整个 Age 列的中位数。

问题是如何在某个切片中进行这种更改?

我试过:

data['Age'][(data['Sex'] == 'female')&(data['Pclass'] == 1)&(data['Age'].isnull())].fillna(median)
Run Code Online (Sandbox Code Playgroud)

“中位数”是我的价值,但没有任何变化“就地=真”没有帮助。

非常感谢!

python data-analysis dataframe pandas

5
推荐指数
1
解决办法
2111
查看次数

在 python pandas 数据框中获取非空最新值

我想在所有变量中获取最新的非空值。例如,在这个数据集中,我们有 3 个服务日期。

import pandas as pd
df =pd.DataFrame( {'PatientID': [1, 1, 1], 
'Date': ['01/01/2018', '01/15/2018','01/20/2018'],
'Height': ['Null', '178', 'Null'],
'Weight': ['Null', '182', '190'],
'O2 Level': ['95', '99', '92'],
'BPS': ['120', 'Null', 'Null'],
'DPS': ['80', 'Null', 'Null']})
Run Code Online (Sandbox Code Playgroud)

示例数据集

作为输出,我需要这样的东西:

df = pd.DataFrame( {'PatientID': [1], 
'Height': ['178'],
'Weight': ['190'],
'O2 Level': ['92'],
'BPS': ['120'],
'DPS': ['80']})
Run Code Online (Sandbox Code Playgroud)

预期产出

我的原始数据集有数千名患者和 100 多个协变量。目前我正在使用三重循环来完成这项任务,效率非常低。我正在寻找更有效的解决方案。

python data-analysis pandas

5
推荐指数
1
解决办法
1400
查看次数