2016-03-29 1 views
0

Comme le suggère le titre que je veux être en mesure d'effectuer une régression (pas seulement une simple optimisation) sur les points suivants (fonction étape non linéaire) soit en R ou en Python (le problème est crucial, donc je suis prêt à utiliser quel que soit le logiciel fait le travail):régressant sur les fonctions avec des étapes (Python/R)

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

ou

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

Je veux utiliser les statistiques puissants outils met en service et , Espérons-le par un GLM, calculer toutes les belles choses ce modèle fournit (je ne je me soucie pas de problèmes d'optimisation concernant la fiabilité encore si volontiers prendre tout ce qui fonctionne). Malheureusement, je ne sais pas comment mettre en place un tel problème particulier - que ce soit en R ou en Python.

Comment vous y prenez-vous?

Répondre

0

La meilleure solution pour vous est scipy mon code Un exemple

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 

Ensuite, vous obtenez la pente et l'interface

-1.76630044629 
10061774.6817