使用步骤回归函数(Python / R)

时间:2016-03-29 12:27:53

标签: python r regression glm

正如标题所示,我希望能够在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中。

你会怎么做?

1 个答案:

答案 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