dunque, io con Excel creo un grafico lineare a cui applico una linea di
tendenza con "Tipo di Tendenza: Polinominale", di Ordine 2.
questo perchè su una colonna segno le settimane (quindi, per es, su A1 = 1,
A8= 2, A15 = 3 e così via) mentre sulla seconda colonna ho dei valori,
sempre cresenti, che però non sono presenti sempre (per es. B1 = 5, B2 =
vuoto, B3 = vuoto, B4 = vuoto, B5 = 7, B12 = 10 e così via). Quindi nella
colonna B mancano dei valori che vengono riempiti con la linea di tendenza
che Excel mi crea.
A questo punto viene il difficile ... io ho bisogno di sapere che valori
bisogna inserire nei campi vuoti della colonna B.
Questi dati poi li dovrò esportare in una tabella di Access e utilizzarli
con Visual Basic 6 per creare un grafico.
Questo perchè VB non permette di aggiungere una linea di tendenza con valore
polinominale 2.
Quindi ho bisogno di completarmi i dati mancanti nella colonna B e poi
utilizzarli come meglio mi riesce in VB.
Purtroppo io di Matematica, Funzioni o Formule non so praticamente nulla.
Volevo sapere se per voi è possibile postarmi la funzione che mi permette di
riempire i valori mancanti;
B1 = 16
B2 = vuoto
B3 = vuoto
B4 = 18
per riempire i 2 campi tra B1 e B4 ... COME SI FA ???
Spero possiate essermi utili.
Grazie ancora.
Ciao.
Potresti, ad esempio, utilizzare l'opzione "visualizza equazione": per
visualizzarla ti basta cliccare con il tasto destro sulla linea e poi
selezionare "Formato linea di tendenza" e, quindi sulla linguetta "opzioni".
Una volta visualizzata l'equazione, ti basterà inserirla sul foglio di
lavoro ed inserire dei vaori di x per ottenere i punti che ti servono.
--
Spero d'esserti stato d'aiuto...
Ciao
Franz
----------------------------------------------------------------------------------------
per rispondermi traduci InVento in inglese (no maiuscole)
----------------------------------------------------------------------------------------
visto che non sono molto portato in materia, mi sai dire come applicare
questa funzione ?
immagino che la y sia il primo spazio vuoto, cioè B2.
come X cosa metto ? il primo valore valido? cioè B1 ?
grazie cmq per l'aiuto.
Ciao.
Come valori di x devi prendere i valori dell'asse delle ascisse o asse x
(quelllo che, normalmente, è l'asse orizzontale) in corrispondenza dei quali
ti mancano dei punti del grafico. I valori di y conseguentemente ti daranno
le ordinate dei punti stessi.
Spero d'essere stato abbastanza chiaro, anche se la materia è abbastanza
ostica per chi non ha molto a che fare con la matematica... :-)
Ciao.
Grazie ancora.
y = -0,0008x2 + 0,5773x + 15,731
78 55,8932
79 56,3449
80 16 56,795
81 57,2435
82 57,6904
83 18 58,1357
84 58,5794
85 59,0215
86 20 59,462
87 59,9009
88 60,3382
89 22 60,7739
non so da che parte cominciare.
non è possibile integrare un dato mancante senza
conoscere nulla del fenomeno osservato e delle
leggi che determinano quei valori.
poi:
una curva di interpolazione non è il modo più corretto
per completare dati mancanti. se i tuoi dati non si
adattano perfettamente alla curva, mettere insieme
dati da osservazioni e dati interpolati può portare
a forti oscillazioni.
una polinomiale di secondo grado si adatta
perfettamente ai tuoi dati se, e solo se, hai
3 punti!
nel tuo caso una semplice media
mobile risolve più facilmente il problema ed è, per il
tipo di dati che tratti (serie temporale), la più corretta .
quindi per sostituire un dato mancante, ti basta
fare la media, meglio se ponderata, dei valori
a ridosso del dato mancante
---- puoi saltare ----
es.:
i valori in x sono equidistanti e non è necessario
includerli nelle formule
valore
4
12
?
11
9
il valore mancante ti sarà fornito da
=(4/14+12/7+11/7+9/14)/0,43
ossia 9,83
dove
(4*14+...) è il valore in y noto * il peso
e
0,43 è la somma dei pesi (1/14+1/7+1/7+1/14)
in questo caso ho affidato peso 1/7 alla settimana
immediatamente precedente e successiva e peso
1/14 alla settimana ancora precedente o successiva,
sulla base della distanza in numero di giorni
(più lontano il periodo, minore l'influenza)
1. di solito si usa come peso l'inverso del quadrato
della distanza, quindi 1/14^2, 1/7^2
quindi 10,5
2. puoi fare a meno dei pesi se l'influenza dei dati è
uniforme semplicemente facendo
= media(4;12;11;9)
quindi 9
--- puoi riprendere da qui ---
3. puoi costruire la tua media solo sulla base dei
dati che precedono (e non anche su quelli che
seguono il dato mancante) e quindi integrare i
dati mancanti via via che li incontri in un ciclo
dall'inizio+(serie daconsiderare)+1 alla fine.
es.:
considerando le due settimane che precedono avrai
for j=1+2+1 to n
if isempty(y(j)) then
y(j)=(y(j-2)*1/14^2+y(j-1)*1/7^2)/(1/14^2+1/7^2)
next
[ti consiglio questo metodo, magari esteso a tre settimane]
> Volevo sapere se per voi è possibile postarmi la funzione che mi
> permette di riempire i valori mancanti;
> B1 = 16
> B2 = vuoto
> B3 = vuoto
> B4 = 18
in ogni caso con due valori noti l'unica interpolazione
possibile è la retta
y=(y2-y1)/(x2-x1)*(x-x1)+y1
supponendo quindi
settimana valore
4 16
7 18
avrai
5 =(18-16)/(7-4)*(5-4)+16 quindi 16,6
6 =(18-16)/(7-4)*(6-4)+16 quindi 17,3
[utilizzando excel tutto questo è molto più
semplice perchè hai delle funzioni ad hoc:
TENDENZA() o MATR.SOMMA.PRODOTTO()
o, se proprio insisti con la polinomiale, REGR.LIN().
ho usato i valori perchè mi pare di aver
capito che tu voglia costruire tue funzioni]
.f
fernando cinquegrani
Microsoft MVP
http://www.prodomosua.it
Mi dovresti spiegare meglio quali sono i tuoi valori di X e quali quelli di
Y...
Inoltre, applicando la formula ai valori di X per i quali già possiedi un
valore di Y non puoi apsttarti che venga fuori il valore di Y che già
possiedi, in quanto la linea di tendenza è una linea d'interpolazione, cioè
è la migliore linea che *approssima* i dati; dovrebbe, invece, servirti per
riempire i _buchi_, cioè quei valori di X per i quali non hai il
corrispondente valore di Y.
Spero d'essere stato abbastanza chiaro... :-)
Cmq, se tiservono altri chiarimenti sono qui...
y = -0,0008x2 + 0,5773x + 15,731
se io alla X inizio mettendo il 78, il valore Y è : 55,8932
se io alla X inizio mettendo il 81, il valore Y è : 57,2435
se io alla X inizio mettendo il 84, il valore Y è : 58,5794
e così via. io mi aspettavo dei numeri che si avvicinassero al 16 e al 18,
invece superano il 50 ...
che linea verrebbe fuori con questi valori sballati ?
Spero di essere stato chiaro ...
E grazie ancora ...
78
79
80 16
81
82
83 18
84
85
86 20
87
88
89 22
90
91
92 24
93
94
95 26
96
97
98
99 28
100
101
102 30
103
104
105
106 32
107
108
109 34
110
111
112
113 36
114
115
116
117 38
118
119
120 40
121
122
123
124 42
125
126
127
128
129 44
130
131
132
133 46
134
135
136
137 48
138
139
140
141 50
142
143
144
145
146 52
147
148
149
150 54
151
152
153
154
155 56
156
157
158
159
160 58
161
162
163
164
165 60
166
167
168
169
170 62
171
172
173
174
175 64
176
177
178
179
180 66
181
182
183
184
185 68
186
187
188
189
190 70
191
192
193
194
195
196 72
197
198
199
200
201 74
202
203
204
205
206
207 76
208
209
210
211
212
213 78
214
215
216
217
218 80
219
220
221
222
223
224
225 82
226
227
228
229
230 84
231
232
233
234
235
236 86
237
238
239
240
241
242
243 88
244
245
246
247
248
249 90
250
251
252
253
254
255 92
256
257
258
259
260
261
262 94
263
264
265
266
267
268 96
269
270
271
272
273
274
275 98
276
277
278
279
280
281
282 100
283
284
285
286
287
288
un +1 di troppo
puoi costruire la tua media solo sulla base dei
dati che precedono (e non anche su quelli che
seguono il dato mancante) e quindi integrare i
dati mancanti via via che li incontri in un ciclo
dall'inizio+(serie daconsiderare) alla fine.
es.:
considerando le due settimane che precedono avrai
for j=1+2 to n
if isempty(y(j)) then _
y(j)=(y(j-2)*1/14^2+y(j-1)*1/7^2)/(1/14^2+1/7^2)
next
.f
> eccomi. scusa se non riesco a spiegarmi bene, ma queste cose sono un
> po' fuori dall'ordianrio per me.
> Cmq, quelli a dx sono i valori delle X, cioč i giorni. quelli a sx
> sono i valori delle Y, che come vedi sono saltuari, cioč ci sono solo
Veramente io vedo i valori a sx continui e quelli a dx saltuari, per cui a
questo punto presumo che la X sia a sx e le Y a dx... ;-)
> in alcuni giorni. la formula che mi dŕ Excel č:
>
> y = -0,0008x2 + 0,5773x + 15,731
>
> se io alla X inizio mettendo il 78, il valore Y č : 55,8932
> se io alla X inizio mettendo il 81, il valore Y č : 57,2435
> se io alla X inizio mettendo il 84, il valore Y č : 58,5794
>
> e cosě via. io mi aspettavo dei numeri che si avvicinassero al 16 e
> al 18, invece superano il 50 ...
> che linea verrebbe fuori con questi valori sballati ?
Come ti ho giŕ scritto nel post precedente non puoi aspettarti che i valori
che vengono fuori dall'equazione siano assolutamente coerenti con i tuoi
dati, in quanto una linea d'interpolazione, di qualunque tipo essa sia,
cerca d'*interpretare* i dati, di approssimarli nel modo migliore possibile.
Per riempire i "buchi", forse č meglio che segui il consiglio di Fernando ed
utilizzi una media mobile... -)
Inoltre, se tu ci spiegassi meglio qual č l'ambito del tuo problema, forse
potremmo aiutarti nella maniera piů appropriata... :-)
innanzitutto grazie anche a fernando per la sua disponibilità.
dunque, cercherò di essere il più chiaro possibile ... se mi riesce :-)))
allora, devo creare un grafico di tipo lineare ... in Visual Basic 6.
Purtroppo, con i dati mancanti sono costretto a creare questo tipo di Linea
di Tendenza Polinominale di valore 2, altrimenti la linea mi verrebbe
spezzata, e non è quello che voglio.
In Excel, invece, esiste questa bella funzione che mi permette di riempire
gli spazi vuoti ...
purtroppo, non potendo riportare in VB questa funzione (x' il controllo
MsChart non la prevede) ho avuto la pensata di utilizzare excel per coprire
i dati mancanti, in modo da avere continuità dei valori.
E qui mi sono bloccato, perchè appunto la funzione di Excel mi dava dei
valori di riferimento un po' diversi da quelli presenti ...
insomma, pensavo che ci fossero dei valori più prossimi a quelli esistenti,
tutto qui.
Tutto qui si fa per dire, ovviamente....
E poi, sì, a sx ci sono le X e a dx le Y ...
Grazie ancora.
praticamente ho 240 campi da riempire.
se alla x metto da 0 a 240 ho esattaemnte i valori Y che mi servono !!!
Basta, volevo solo dirvelo e ringraziarvi ancora.
Ciao.