正如标题所示,我希望能够在R或Python中对以下(非线性步骤函数)执行回归(不仅仅是简单的优化)(问题至关重要,所以我愿意使用无论哪个软件完成工作):
https://beta.postimg.org/image/3pqj0zb1b/
或
Y = alpha + beta * Dummy_1 + error_term
where Dummy_1 = 1 if x > gamma * f(x) and if x < theta * f(x)
Parameters: alpha, beta, gamma, theta
所以我想使用强大的工具统计信息投入使用,希望通过GLM,计算这个模型提供的所有好东西(我不关心有关可靠性的优化问题,所以我很乐意接受任何工作)。不幸的是,我不知道如何设置这样一个特定的问题 - 无论是在R还是在Python中。
你会怎么做?
答案 0 :(得分:0)
最适合您的解决方案是scipy
一个我的示例代码
import xlrd
import matplotlib.pyplot
import pylab
from scipy import stats
import numpy as np
import math
cord = xlrd.open_workbook('MT_coordenadas_todas.xls')
id1 = cord.sheet_by_index(0)
values1 = id1.col_values(0)
id2 = cord.sheet_by_index(0)
values2 = id2.col_values(1)
id3 = cord.sheet_by_index(0)
values3 = id3.col_values(2)
print type(values3)
a1= values1[1:16]
a2= values2[1:16]
print a2
a3= values3[1:16]
print a3
slope, intercept, r_value, p_value, std_err = stats.linregress(a2,a3)
print slope
print intercept
然后你得到斜率和界面
-1.76630044629
10061774.6817