我正在使用Python和Numpy来计算任意度数的最佳拟合多项式.我传递了一个x值,y值和我想要拟合的多项式的程度列表(线性,二次等).
这很有用,但我也想计算r(相关系数)和r平方(确定系数).我将我的结果与Excel的最佳拟合趋势线能力以及它计算的r平方值进行比较.使用这个,我知道我正在为线性最佳拟合(度等于1)正确计算r平方.但是,我的函数不适用于度数大于1的多项式.
Excel可以做到这一点.如何使用Numpy计算高阶多项式的r平方?
这是我的功能:
import numpy
# Polynomial Regression
def polyfit(x, y, degree):
results = {}
coeffs = numpy.polyfit(x, y, degree)
# Polynomial Coefficients
results['polynomial'] = coeffs.tolist()
correlation = numpy.corrcoef(x, y)[0,1]
# r
results['correlation'] = correlation
# r-squared
results['determination'] = correlation**2
return results
Run Code Online (Sandbox Code Playgroud) 我安装了Mountain Lion和Xcode 4.5以及Matlab 2012a.我安装并运行了MathWorks网站上提供的补丁但是我仍然收到以下错误:
/Applications/MATLAB_R2012a.app/bin/mex: line 305: llvm-gcc-4.2: command not found
/Applications/MATLAB_R2012a.app/bin/mex: line 1326: llvm-gcc-4.2: command not found
mex: compile of ' "hello.c"' failed.
Error using mex (line 206)
Run Code Online (Sandbox Code Playgroud)
有没有已知的解决方案?
解决方案:打开Xcode - >首选项 - >下载 - >安装"命令行工具"
仍然需要MathWorks补丁.解决了我的问题.