Estratto del documento

Es 1 pulizia dati

  • mask_nam = isnamef(data)
  • mask_inf = isinf(data)
  • mask_neg = data < 0

Genera matrice maschera con 1 nelle posizioni che soddisfano il comando.

  • somma_nam = sum(mask_nam(:))
  • somma_inf = sum(mask_inf(:))
  • somma_neg = sum(mask_neg(:))

Somma la matrice e somma gli 1.

  • data(mask_neg | mask_inf) = nan
  • somma_colonne = sum-(isnan(data))
  • somma_righe = sum(isnan(data), 2)

Sostituisce inf e neg con nan.

Conta i nan per colonna.

Conta i nan per riga.

  • perc_riga = (somma_righe . 100)/size(data, 2)
  • perc_colonna = (somma_colonne . 100)/size(data, 1)

(n riga .100)/n colonne

(n colonna .100)/n righe

  • data_reduced = data(:, perc_colonna < x)
  • data_reduced = data(perc_righe < x, :)

Tengo le colonne con meno di x % nan.

Tengo le righe con meno di x % nan.

Es 2 test statistici

  • kurt = kurtosis(data)
  • skw = skewness(data)
  • (ho, p, stato, indice) = lillietest(data)
  • histogram(data, 20)
  • q-qplot(data)
  • ttest, ttest2, nttest, logrank, ranksum, ztest

Se = 3 gaussianx = 0 gaussiana.

Se p<0,05 non gaussiane.

20 bins mettere le unità di misura.

Se mille stime rag - gaussiane.

In base a una chiusa.

Es 1 pulizia dati

  • mask_nan = isna(data)
  • mask_inf = isinf(data)
  • mask_neg = data < 0

Genera matrice maschera uno 1 nelle posizioni che soddisfano il comando.

  • somma_nan = sum(mask_nan(:))
  • somma_inf = sum(mask_inf(:))
  • somma_neg = sum(mask_neg(:))

Somma la matrice e somma gli 1.

  • data(mask_neg | mask_inf) = nan

Sostituisce inf e neg con nan.

  • somma_colonne = sum(isnan(data))

Conta i nan per colonna.

  • somma_righe = sum(isnan(data),2)

Conta i nan per riga.

  • perc_riga = (somma_righe . 100)/size(data,2)

(n riga . 100) / n colonne

  • perc_colonne = (somma_colonne . 100)/size(data,1)

(n colonna . 100) / n righe

  • data_reduced = data(:, perc_colonne < x)

Tengo le colonne con meno di x % nan.

  • data_reduced = data(perc_righe < x , :)

Tengo le righe con meno di x % nan.

Es 2 test statistici

  • kurt = kurtosis(data)

Se = 3 gaussiane.

  • skew = skewness(data)

Se = 0 gaussiane.

  • [hb, p, stat, critico] = lillietest(data)

Se p<0.05 non gaussiane.

  • histogram(data,20)

20 bins mette le unità di misura.

  • q-q plot(data)

Se sulla stessa riga, gaussiane.

  • ttest, ttest2, signtest, logrank, ranksum, ztest

In base a cosa chiede.

Es 3 regressione lineare

  • y = data(i,1)
  • x_non_intercept = data(:,5)
  • x = [ones(length(x_non_intercept)) x_non_intercept]
  • beta_hat = (x'x)^(-1)(x'y)
  • y_hat = x * beta_hat
  • residui = y - y_hat
  • xtxinv = inv(x'x)
  • o^2_hat = sum(residui.^2) / (size(x,1) - size(x,2))
  • var_beta_hat = diag(o^2_hat * xtxinv)
  • standard_error = sqrt(var_beta_hat)
  • SSE = sum(residui.^2)
  • SST = sum((y - mean(y)).^2)
  • R2 = 1 - SSE/SST
  • RMSE = sqrt(mean(residui.^2))
  • CI_lower = beta_hat - 1.96 standard error
  • CI_upper = beta_hat + 1.96 standard error

Analisi residui

  • skew e kurtosi per normalità
  • histogram e Q-plot
  • plot(y, y_hat)
  • stem(1:length(residui), residui)

xlabel('Indici del soggetti')

ylabel('Residui' unità di misura)

hold on

  • scatter(y_hat, residui)
  • plot([min(y_hat) max(y_hat)], [0,0])
  • mean(residui) per la media nulla

[r.hat - sort, a.sort] = sort(r.hat)

autovar(predizioni[:, sort])

xlabel('sulla seconda il valore predetto')

Collinearità

'autovalori = eig(x'.x)

k = max(autovalori)/min(autovalori)

VIF = 1/(1-R2)

N = size(x,1)

M = size(x,2)

R2_adj = 1 - (N-1)/(N-M) sse/sst R2 adjusted

AIC = N.log(sse) + 2.M minore e meglio

BIC = N.log(sse) + M.log(N) minore e meglio

Regolarizzazione

lambda = come indicato dal problema

[beta_hat, info] = lasso(x,Y,'Intercept',false,'Standardize',true,'Alpha',0 or 1,'Lambda',lambda,'CV',5)

In base a x voglio lasso o Ridge.

[mse_min, i_lambda] = min(info.mse)

Trovo il minimo MSE.

lambda_best = lambda(i_lambda)

lambda equivalente al min MSE.

beta_hat_best = beta_hat(:,i_lambda)

b equivalente al miglior lambda.

intercept_best = info.Intercept(i_lambda)

Es 4a clustering

  • plot dei segnali da mostrare

Si dovrebbe iniziare il numero di cluster ottimo già dal plot.

  • ng(x)

x = numero che da il prof1 stesso.

  • k = x
  • [cluster centroid] = kmeans(eg, k, 'distance', 'sqeuclidean', 'Replicates', x, 'MaxIter', x)

e valori li da il prof1 stesso.

  • sil = silhouette(data, cluster)

Per farlo ci piace tentativi di k uso l'indice di silhouette medio maggiore.

Ciclo FOR

kmeans

memorizzo silhouette

mean(silhouette)

centroidi {2} = centroidi

i numeri dei k

END

  • salgo il k con la silhouette media migliore

Es 5b survival analysis

  • ng(x)

Li da il prof.

  • [km_values, km_t] = cdf(data, 'Censoring', ~c, 'Function', 'survivor')

c pensato al contrario della funzione.

  • censoring_times = data(c==0)

Cerco i punti di S(t) con il tempo censurato.

  • St_censoring = interp1(km_t, km_values, censoring_times, 'previous')
Anteprima
Vedrai una selezione di 1 pagina su 5
Formulario per la parte di Matlab Pag. 1
1 su 5
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/06 Bioingegneria elettronica e informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher StefanoFerri98 di informazioni apprese con la frequenza delle lezioni di Metodi Statistici per la bioingegneria e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Padova o del prof Bertoldo Alessandra.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community