2016-03-29 13 views
0

Wie der Titel suggeriert möchte ich in der Lage sein, eine Regression (nicht nur eine einfache Optimierung) auf die folgenden (eine nicht lineare Schrittfunktion) entweder in R oder in Python (das Problem ist von entscheidender Bedeutung, damit ich bin zu verwenden, je nachdem, welche Software den Job zu erledigen) wird bereit:Regression auf Funktionen mit Schritten (Python/R)

https://beta.postimg.org/image/3pqj0zb1b/

oder in

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

Deshalb möchte ich die leistungsfähigen Werkzeuge Statistiken setzt in Gebrauch verwenden und , hoffentlich durch einen GLM, berechne all die schönen Dinge, die dieses Modell bietet (Ich interessiere mich nicht für Optimierungsprobleme hinsichtlich der Zuverlässigkeit, aber ich werde gerne annehmen, was auch immer funktioniert). Leider habe ich keine Ahnung, wie man ein solches Problem aufbaut - entweder in R oder in Python.

Wie würden Sie darüber gehen?

Antwort

0

Die beste Lösung für Sie ist scipy One mein Beispielcode

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 

Dann erhalten Sie Steigung und Schnittstelle

-1.76630044629 
10061774.6817