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

Ser*_*yro 5 algorithm math statistics data-analysis

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

数据集是二维的.

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

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

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

tem*_*def 9

一种选择是对数据集进行线性回归以获得最佳拟合线.如果数据是线性的,那么你将得到一个非常好的拟合,并且均方误差应该很低.否则,你会得到一个合适的错误和合理的错误.

或者,您可以考虑通过将每个点(x 0,x 1,...,x n,y)转换为(x 0,x 1,...,x n,e y)来转换数据集.如果数据是线性的,那么现在它将是指数级的,如果数据是对数的,现在它将是线性的.现在运行线性回归并获得均方误差将使对数数据具有低误差,并且线性数据具有惊人的巨大误差,因为指数函数非常快速地爆发.

要实际实现回归,一种选择是使用最小二乘回归.除了模型之外,这还可以为您提供相关系数,这也可以用来区分两个数据集.

因为您已经在Java中询问了如何执行此操作,因此快速Google搜索会将此Java代码发送为线性回归.但是,您可能更适合使用Matlab这样的语言,该语言专门针对这些类型的查询进行了优化.例如,在Matlab中,您可以通过编写在一行代码中执行此回归

linearFunction = inputs / outputs
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!